home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.util.Vector;
-
- class ControlPanel extends Canvas {
- Vector buttons;
- DigSim applet;
- Image ImageBuffer;
- Image CopyImage;
- Graphics cig;
- int ButtonOffset;
- ImageButton PressedButton;
- boolean ImageButtonsDisabled = false;
-
- public ControlPanel(DigSim var1) {
- this.applet = var1;
- this.buttons = new Vector();
- this.LoadButtonsImage();
- this.buttons.addElement(new ImageButton("New", 0));
- this.buttons.addElement(new ImageButton("Open", 24));
- this.buttons.addElement(new ImageButton("Save", 48));
- this.buttons.addElement(new ImageButton("Cut", 80));
- this.buttons.addElement(new ImageButton("Copy", 104));
- this.buttons.addElement(new ImageButton("Paste", 128));
- this.buttons.addElement(new ImageButton("Pointer", 160));
- this.buttons.addElement(new ImageButton("Wire", 184));
- this.buttons.addElement(new ImageButton("Junction", 208));
- this.buttons.addElement(new ImageButton("Text", 232));
- this.buttons.addElement(new ImageButton("Simulate", 264));
- this.buttons.addElement(new ImageButton("Help", 296));
- if (this.ImageButtonsDisabled) {
- ((Component)this).resize(((Component)this).size().width, 36);
- } else {
- ((Component)this).resize(((Component)this).size().width, 4);
- }
- }
-
- public Dimension preferredSize() {
- int var1 = this.applet.size().width;
- return this.ImageButtonsDisabled ? new Dimension(var1, 4) : new Dimension(var1, 36);
- }
-
- public ImageButton getButton(String var1) {
- for(int var3 = 0; var3 < this.buttons.size(); ++var3) {
- ImageButton var2 = (ImageButton)this.buttons.elementAt(var3);
- if (var2.getName().equals(var1)) {
- return var2;
- }
- }
-
- return null;
- }
-
- public void EnableButton(String var1) {
- ImageButton var2 = this.getButton(var1);
- if (var2 != null) {
- var2.Enable();
- }
-
- ((Component)this).repaint();
- }
-
- public void DisableButton(String var1) {
- ImageButton var2 = this.getButton(var1);
- if (var2 != null) {
- var2.Disable();
- }
-
- ((Component)this).repaint();
- }
-
- public void SelectButton(String var1) {
- ImageButton var2 = this.getButton(var1);
- if (var2 != null) {
- var2.Select();
- }
-
- ((Component)this).repaint();
- }
-
- public void UnselectButton(String var1) {
- ImageButton var2 = this.getButton(var1);
- if (var2 != null) {
- var2.Unselect();
- }
-
- ((Component)this).repaint();
- }
-
- public void EnableAllButtons() {
- this.EnableButton("Pointer");
- this.EnableButton("Wire");
- this.EnableButton("Junction");
- this.EnableButton("Text");
- this.EnableButton("Help");
- this.EnableButton("Simulate");
- this.EnableButton("New");
- if (this.applet.EnableFileOperations) {
- this.EnableButton("Open");
- this.EnableButton("Save");
- }
-
- this.SelectButton("Pointer");
- }
-
- public void DrawButtons(Graphics var1) {
- this.ButtonOffset = (((Component)this).size().width - this.CopyImage.getWidth(this)) / 2;
-
- for(int var3 = 0; var3 < this.buttons.size(); ++var3) {
- ImageButton var2 = (ImageButton)this.buttons.elementAt(var3);
- var2.Draw(this.cig);
- }
-
- Graphics var4 = this.ImageBuffer.getGraphics();
- var4.drawImage(this.CopyImage, 0, 0, this);
- var1.drawImage(this.ImageBuffer, this.ButtonOffset, 4, this);
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- var2 -= this.ButtonOffset;
- var3 -= 4;
-
- for(int var5 = 0; var5 < this.buttons.size(); ++var5) {
- ImageButton var4 = (ImageButton)this.buttons.elementAt(var5);
- if (var4.CheckIfPressed(var2, var3)) {
- this.PressedButton = var4;
- ((Component)this).repaint();
- return true;
- }
- }
-
- return true;
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- if (this.PressedButton != null) {
- this.PressedButton.Select();
- ((Component)this).repaint();
- this.ButtonPressed(this.PressedButton.getName());
- this.PressedButton = null;
- }
-
- return true;
- }
-
- public synchronized void update(Graphics var1) {
- var1.setColor(Color.gray);
- var1.drawLine(0, 0, ((Component)this).size().width, 0);
- if (!this.ImageButtonsDisabled) {
- var1.drawLine(0, 30, ((Component)this).size().width, 30);
- }
-
- var1.setColor(Color.white);
- var1.drawLine(0, 1, ((Component)this).size().width, 1);
- if (!this.ImageButtonsDisabled) {
- var1.drawLine(0, 31, ((Component)this).size().width, 31);
- }
-
- if (this.CopyImage != null && !this.ImageButtonsDisabled) {
- this.DrawButtons(var1);
- }
-
- }
-
- public synchronized void paint(Graphics var1) {
- this.update(var1);
- }
-
- public void LoadButtonsImage() {
- MediaTracker var2 = new MediaTracker(this);
- Image var1 = this.applet.getImage(this.applet.getDocumentBase(), "images/allbuttons.gif");
- var2.addImage(var1, 0);
-
- try {
- Thread.currentThread().setPriority(1);
- var2.waitForAll();
- } catch (Exception var6) {
- String var4 = ((Throwable)var6).toString();
- String[] var5 = new String[]{"OK"};
- new SimpleDialog((DigSimFrame)null, "Reading imagebuttons", var4, var5, 1, 0, 0, 1);
- return;
- }
-
- if (var2.isErrorAny()) {
- this.ImageButtonsDisabled = true;
- String var3 = "Can't read images/allbuttons.gif ImageButtons will be disabled";
- String[] var7 = new String[]{"OK"};
- new SimpleDialog((DigSimFrame)null, "Error while reading imagebuttons", var3, var7, 1, 0, 0, 1);
- } else {
- this.ImageBuffer = this.applet.createImage(var1.getWidth(this), 24);
- this.CopyImage = this.applet.createImage(var1.getWidth(this), var1.getHeight(this));
- this.cig = this.CopyImage.getGraphics();
- this.cig.drawImage(var1, 0, 0, this);
- }
- }
-
- public void ButtonPressed(String var1) {
- if (!this.ImageButtonsDisabled) {
- if (var1.equals("Pointer")) {
- this.applet.UserWantsPointer();
- } else if (var1.equals("Wire")) {
- this.applet.UserWantsWireDrawing();
- } else if (var1.equals("Junction")) {
- this.applet.UserWantsJunctionDrawing();
- } else if (var1.equals("Text")) {
- this.applet.UserWantsTextDrawing();
- } else if (var1.equals("Help")) {
- this.applet.UserWantsHelp();
- } else if (var1.equals("Simulate")) {
- this.applet.UserWantsSimulate();
- } else if (var1.equals("New")) {
- this.applet.UserWantsNewSchematic();
- } else if (var1.equals("Open")) {
- this.applet.UserWantsOpenSchematic();
- } else if (var1.equals("Save")) {
- this.applet.UserWantsSaveSchematic();
- } else if (var1.equals("Copy")) {
- this.applet.UserWantsCopySchematic();
- } else if (var1.equals("Paste")) {
- this.applet.UserWantsPasteSchematic();
- } else {
- if (var1.equals("Cut")) {
- this.applet.UserWantsCutSchematic();
- }
-
- }
- }
- }
- }
-