home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / DIGSIM.EXE / ControlPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-05-21  |  5.5 KB  |  236 lines

  1. import java.awt.Canvas;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Event;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.MediaTracker;
  9. import java.util.Vector;
  10.  
  11. class ControlPanel extends Canvas {
  12.    Vector buttons;
  13.    DigSim applet;
  14.    Image ImageBuffer;
  15.    Image CopyImage;
  16.    Graphics cig;
  17.    int ButtonOffset;
  18.    ImageButton PressedButton;
  19.    boolean ImageButtonsDisabled = false;
  20.  
  21.    public ControlPanel(DigSim var1) {
  22.       this.applet = var1;
  23.       this.buttons = new Vector();
  24.       this.LoadButtonsImage();
  25.       this.buttons.addElement(new ImageButton("New", 0));
  26.       this.buttons.addElement(new ImageButton("Open", 24));
  27.       this.buttons.addElement(new ImageButton("Save", 48));
  28.       this.buttons.addElement(new ImageButton("Cut", 80));
  29.       this.buttons.addElement(new ImageButton("Copy", 104));
  30.       this.buttons.addElement(new ImageButton("Paste", 128));
  31.       this.buttons.addElement(new ImageButton("Pointer", 160));
  32.       this.buttons.addElement(new ImageButton("Wire", 184));
  33.       this.buttons.addElement(new ImageButton("Junction", 208));
  34.       this.buttons.addElement(new ImageButton("Text", 232));
  35.       this.buttons.addElement(new ImageButton("Simulate", 264));
  36.       this.buttons.addElement(new ImageButton("Help", 296));
  37.       if (this.ImageButtonsDisabled) {
  38.          ((Component)this).resize(((Component)this).size().width, 36);
  39.       } else {
  40.          ((Component)this).resize(((Component)this).size().width, 4);
  41.       }
  42.    }
  43.  
  44.    public Dimension preferredSize() {
  45.       int var1 = this.applet.size().width;
  46.       return this.ImageButtonsDisabled ? new Dimension(var1, 4) : new Dimension(var1, 36);
  47.    }
  48.  
  49.    public ImageButton getButton(String var1) {
  50.       for(int var3 = 0; var3 < this.buttons.size(); ++var3) {
  51.          ImageButton var2 = (ImageButton)this.buttons.elementAt(var3);
  52.          if (var2.getName().equals(var1)) {
  53.             return var2;
  54.          }
  55.       }
  56.  
  57.       return null;
  58.    }
  59.  
  60.    public void EnableButton(String var1) {
  61.       ImageButton var2 = this.getButton(var1);
  62.       if (var2 != null) {
  63.          var2.Enable();
  64.       }
  65.  
  66.       ((Component)this).repaint();
  67.    }
  68.  
  69.    public void DisableButton(String var1) {
  70.       ImageButton var2 = this.getButton(var1);
  71.       if (var2 != null) {
  72.          var2.Disable();
  73.       }
  74.  
  75.       ((Component)this).repaint();
  76.    }
  77.  
  78.    public void SelectButton(String var1) {
  79.       ImageButton var2 = this.getButton(var1);
  80.       if (var2 != null) {
  81.          var2.Select();
  82.       }
  83.  
  84.       ((Component)this).repaint();
  85.    }
  86.  
  87.    public void UnselectButton(String var1) {
  88.       ImageButton var2 = this.getButton(var1);
  89.       if (var2 != null) {
  90.          var2.Unselect();
  91.       }
  92.  
  93.       ((Component)this).repaint();
  94.    }
  95.  
  96.    public void EnableAllButtons() {
  97.       this.EnableButton("Pointer");
  98.       this.EnableButton("Wire");
  99.       this.EnableButton("Junction");
  100.       this.EnableButton("Text");
  101.       this.EnableButton("Help");
  102.       this.EnableButton("Simulate");
  103.       this.EnableButton("New");
  104.       if (this.applet.EnableFileOperations) {
  105.          this.EnableButton("Open");
  106.          this.EnableButton("Save");
  107.       }
  108.  
  109.       this.SelectButton("Pointer");
  110.    }
  111.  
  112.    public void DrawButtons(Graphics var1) {
  113.       this.ButtonOffset = (((Component)this).size().width - this.CopyImage.getWidth(this)) / 2;
  114.  
  115.       for(int var3 = 0; var3 < this.buttons.size(); ++var3) {
  116.          ImageButton var2 = (ImageButton)this.buttons.elementAt(var3);
  117.          var2.Draw(this.cig);
  118.       }
  119.  
  120.       Graphics var4 = this.ImageBuffer.getGraphics();
  121.       var4.drawImage(this.CopyImage, 0, 0, this);
  122.       var1.drawImage(this.ImageBuffer, this.ButtonOffset, 4, this);
  123.    }
  124.  
  125.    public boolean mouseDown(Event var1, int var2, int var3) {
  126.       var2 -= this.ButtonOffset;
  127.       var3 -= 4;
  128.  
  129.       for(int var5 = 0; var5 < this.buttons.size(); ++var5) {
  130.          ImageButton var4 = (ImageButton)this.buttons.elementAt(var5);
  131.          if (var4.CheckIfPressed(var2, var3)) {
  132.             this.PressedButton = var4;
  133.             ((Component)this).repaint();
  134.             return true;
  135.          }
  136.       }
  137.  
  138.       return true;
  139.    }
  140.  
  141.    public boolean mouseUp(Event var1, int var2, int var3) {
  142.       if (this.PressedButton != null) {
  143.          this.PressedButton.Select();
  144.          ((Component)this).repaint();
  145.          this.ButtonPressed(this.PressedButton.getName());
  146.          this.PressedButton = null;
  147.       }
  148.  
  149.       return true;
  150.    }
  151.  
  152.    public synchronized void update(Graphics var1) {
  153.       var1.setColor(Color.gray);
  154.       var1.drawLine(0, 0, ((Component)this).size().width, 0);
  155.       if (!this.ImageButtonsDisabled) {
  156.          var1.drawLine(0, 30, ((Component)this).size().width, 30);
  157.       }
  158.  
  159.       var1.setColor(Color.white);
  160.       var1.drawLine(0, 1, ((Component)this).size().width, 1);
  161.       if (!this.ImageButtonsDisabled) {
  162.          var1.drawLine(0, 31, ((Component)this).size().width, 31);
  163.       }
  164.  
  165.       if (this.CopyImage != null && !this.ImageButtonsDisabled) {
  166.          this.DrawButtons(var1);
  167.       }
  168.  
  169.    }
  170.  
  171.    public synchronized void paint(Graphics var1) {
  172.       this.update(var1);
  173.    }
  174.  
  175.    public void LoadButtonsImage() {
  176.       MediaTracker var2 = new MediaTracker(this);
  177.       Image var1 = this.applet.getImage(this.applet.getDocumentBase(), "images/allbuttons.gif");
  178.       var2.addImage(var1, 0);
  179.  
  180.       try {
  181.          Thread.currentThread().setPriority(1);
  182.          var2.waitForAll();
  183.       } catch (Exception var6) {
  184.          String var4 = ((Throwable)var6).toString();
  185.          String[] var5 = new String[]{"OK"};
  186.          new SimpleDialog((DigSimFrame)null, "Reading imagebuttons", var4, var5, 1, 0, 0, 1);
  187.          return;
  188.       }
  189.  
  190.       if (var2.isErrorAny()) {
  191.          this.ImageButtonsDisabled = true;
  192.          String var3 = "Can't read images/allbuttons.gif ImageButtons will be disabled";
  193.          String[] var7 = new String[]{"OK"};
  194.          new SimpleDialog((DigSimFrame)null, "Error while reading imagebuttons", var3, var7, 1, 0, 0, 1);
  195.       } else {
  196.          this.ImageBuffer = this.applet.createImage(var1.getWidth(this), 24);
  197.          this.CopyImage = this.applet.createImage(var1.getWidth(this), var1.getHeight(this));
  198.          this.cig = this.CopyImage.getGraphics();
  199.          this.cig.drawImage(var1, 0, 0, this);
  200.       }
  201.    }
  202.  
  203.    public void ButtonPressed(String var1) {
  204.       if (!this.ImageButtonsDisabled) {
  205.          if (var1.equals("Pointer")) {
  206.             this.applet.UserWantsPointer();
  207.          } else if (var1.equals("Wire")) {
  208.             this.applet.UserWantsWireDrawing();
  209.          } else if (var1.equals("Junction")) {
  210.             this.applet.UserWantsJunctionDrawing();
  211.          } else if (var1.equals("Text")) {
  212.             this.applet.UserWantsTextDrawing();
  213.          } else if (var1.equals("Help")) {
  214.             this.applet.UserWantsHelp();
  215.          } else if (var1.equals("Simulate")) {
  216.             this.applet.UserWantsSimulate();
  217.          } else if (var1.equals("New")) {
  218.             this.applet.UserWantsNewSchematic();
  219.          } else if (var1.equals("Open")) {
  220.             this.applet.UserWantsOpenSchematic();
  221.          } else if (var1.equals("Save")) {
  222.             this.applet.UserWantsSaveSchematic();
  223.          } else if (var1.equals("Copy")) {
  224.             this.applet.UserWantsCopySchematic();
  225.          } else if (var1.equals("Paste")) {
  226.             this.applet.UserWantsPasteSchematic();
  227.          } else {
  228.             if (var1.equals("Cut")) {
  229.                this.applet.UserWantsCutSchematic();
  230.             }
  231.  
  232.          }
  233.       }
  234.    }
  235. }
  236.