home *** CD-ROM | disk | FTP | other *** search
/ MACD 7 / MACD7.iso / www / weirdscience / classes / appletcontrol.class (.txt) next >
Encoding:
Java Class File  |  1997-06-14  |  10.8 KB  |  355 lines

  1. import java.awt.Button;
  2. import java.awt.Checkbox;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Event;
  8. import java.awt.Font;
  9. import java.awt.Frame;
  10. import java.awt.GridBagConstraints;
  11. import java.awt.GridBagLayout;
  12. import java.awt.Image;
  13. import java.awt.Label;
  14. import java.awt.MediaTracker;
  15. import java.awt.Panel;
  16. import java.awt.TextArea;
  17. import java.awt.TextComponent;
  18. import java.awt.TextField;
  19. import java.awt.Window;
  20. import java.awt.image.ImageObserver;
  21. import java.io.InputStream;
  22. import java.net.URL;
  23.  
  24. public class AppletControl extends Frame {
  25.    TreeEdit treeEdit;
  26.    TextArea textArea;
  27.    TextField tf_imageSource;
  28.    TextField tf_fontName;
  29.    TextField tf_fontSize;
  30.    TextField tf_target;
  31.    TextField tf_colorBase;
  32.    TextField tf_colorLine;
  33.    TextField tf_colorCloseText;
  34.    TextField tf_colorOpenText;
  35.    TextField tf_colorHighlight;
  36.    TextField tf_itemImage;
  37.    TextField tf_nodeImage;
  38.    TextField tf_wall;
  39.    TextField tf_open;
  40.    TextField tf_data;
  41.    Checkbox cb_bold;
  42.    Checkbox cb_italic;
  43.    Checkbox cb_control;
  44.    Button b_colorBase;
  45.    Button b_colorLine;
  46.    Button b_colorCloseText;
  47.    Button b_colorOpenText;
  48.    Button b_colorHighlight;
  49.    final String imageSource = "";
  50.    final String fontName = "TimesRoman";
  51.    final String fontSize = "16";
  52.    final String target = "";
  53.    final String colorBase = "192,192,192";
  54.    final String colorLine = "0,20,50";
  55.    final String colorCloseText = "0,0,50";
  56.    final String colorOpenText = "0,50,180";
  57.    final String colorHighlight = "180,40,40";
  58.    final String itemImage = "item.gif";
  59.    final String nodeImage = "node.gif";
  60.    final String wall = "";
  61.    final String open = "";
  62.    final String data = "tree.dat";
  63.    String oldData = "tree.dat";
  64.    final String start = "<applet code=\"TreeBrowse.class\" width=300 height=600>\n";
  65.    final String end = "</applet>";
  66.    final String param = "<param name=";
  67.    final String value = " value=\"";
  68.    final String pend = "\">\n";
  69.    String output = "<applet code=\"TreeBrowse.class\" width=300 height=600>\n</applet>";
  70.    // $FF: renamed from: c0 ColorContainer
  71.    ColorContainer field_0;
  72.    // $FF: renamed from: c1 ColorContainer
  73.    ColorContainer field_1;
  74.    // $FF: renamed from: c2 ColorContainer
  75.    ColorContainer field_2;
  76.    // $FF: renamed from: c3 ColorContainer
  77.    ColorContainer field_3;
  78.    // $FF: renamed from: c4 ColorContainer
  79.    ColorContainer field_4;
  80.  
  81.    public AppletControl(TreeEdit var1) {
  82.       this.treeEdit = var1;
  83.       GridBagLayout var2 = new GridBagLayout();
  84.       GridBagConstraints var3 = new GridBagConstraints();
  85.       ((Container)this).setLayout(var2);
  86.       ((Component)this).setFont(new Font("Helvetica", 0, 12));
  87.       Panel var4 = new Panel();
  88.       Panel var5 = new Panel();
  89.       GridBagLayout var6 = new GridBagLayout();
  90.       GridBagLayout var7 = new GridBagLayout();
  91.       ((Container)var4).setLayout(var6);
  92.       ((Container)var5).setLayout(var7);
  93.       var3.weightx = (double)1.0F;
  94.       var3.fill = 2;
  95.       var3.gridwidth = 0;
  96.       this.tf_fontName = this.createInput(var4, "Font Name:", "TimesRoman", var6, var3);
  97.       this.tf_fontSize = this.createInput(var4, "Font Size:", "16", var6, var3);
  98.       ((Container)var4).add(new Label("Font Style:", 2));
  99.       this.cb_bold = new Checkbox("Bold");
  100.       ((Container)var4).add(this.cb_bold);
  101.       this.cb_italic = new Checkbox("Italic");
  102.       var6.setConstraints(this.cb_italic, var3);
  103.       ((Container)var4).add(this.cb_italic);
  104.       this.b_colorBase = new Button("Background Color:");
  105.       this.tf_colorBase = this.createColor(var4, this.b_colorBase, "192,192,192", var6, var3);
  106.       this.b_colorLine = new Button("Line Color:");
  107.       this.tf_colorLine = this.createColor(var4, this.b_colorLine, "0,20,50", var6, var3);
  108.       this.b_colorCloseText = new Button("Closed Item Text Color:");
  109.       this.tf_colorCloseText = this.createColor(var4, this.b_colorCloseText, "0,0,50", var6, var3);
  110.       this.b_colorOpenText = new Button("Opened Item Text Color:");
  111.       this.tf_colorOpenText = this.createColor(var4, this.b_colorOpenText, "0,50,180", var6, var3);
  112.       this.b_colorHighlight = new Button("Highlight Color:");
  113.       this.tf_colorHighlight = this.createColor(var4, this.b_colorHighlight, "180,40,40", var6, var3);
  114.       this.tf_data = this.createInput(var5, "Data File:", "tree.dat", var7, var3);
  115.       this.tf_target = this.createInput(var5, "Target Window:", "", var7, var3);
  116.       this.tf_imageSource = this.createInput(var5, "Image Location:", "", var7, var3);
  117.       this.tf_itemImage = this.createInput(var5, "Item Image:", "item.gif", var7, var3);
  118.       this.tf_nodeImage = this.createInput(var5, "Node Image:", "node.gif", var7, var3);
  119.       this.tf_wall = this.createInput(var5, "Wall Paper:", "", var7, var3);
  120.       this.tf_open = this.createInput(var5, "Item to Open at Start-up:", "", var7, var3);
  121.       ((Container)var5).add(new Label("Control Window:", 2));
  122.       this.cb_control = new Checkbox("On/Off");
  123.       var7.setConstraints(this.cb_control, var3);
  124.       ((Container)var5).add(this.cb_control);
  125.       var3.gridwidth = 1;
  126.       var2.setConstraints(var4, var3);
  127.       ((Container)this).add(var4);
  128.       var3.gridwidth = 0;
  129.       var2.setConstraints(var5, var3);
  130.       ((Container)this).add(var5);
  131.       this.textArea = new TextArea(this.output, 8, 48);
  132.       this.textArea.setEditable(false);
  133.       var3.fill = 1;
  134.       var3.weighty = (double)1.0F;
  135.       var2.setConstraints(this.textArea, var3);
  136.       ((Container)this).add(this.textArea);
  137.    }
  138.  
  139.    TextField createInput(Panel var1, String var2, String var3, GridBagLayout var4, GridBagConstraints var5) {
  140.       ((Container)var1).add(new Label(var2, 2));
  141.       TextField var6 = new TextField(var3);
  142.       var4.setConstraints(var6, var5);
  143.       ((Container)var1).add(var6);
  144.       return var6;
  145.    }
  146.  
  147.    TextField createColor(Panel var1, Button var2, String var3, GridBagLayout var4, GridBagConstraints var5) {
  148.       var5.gridwidth = 1;
  149.       var4.setConstraints(var2, var5);
  150.       ((Container)var1).add(var2);
  151.       TextField var6 = new TextField(var3);
  152.       var5.gridwidth = 0;
  153.       var4.setConstraints(var6, var5);
  154.       ((Container)var1).add(var6);
  155.       return var6;
  156.    }
  157.  
  158.    void outParam(String var1, TextField var2, String var3) {
  159.       if (!var1.equals(((TextComponent)var2).getText())) {
  160.          String var10001 = this.output;
  161.          this.output = var10001 + "<param name=" + var3 + " value=\"" + ((TextComponent)var2).getText() + "\">\n";
  162.       }
  163.  
  164.    }
  165.  
  166.    Dimension getImageDimensions(Image var1) {
  167.       return new Dimension(var1.getWidth((ImageObserver)null), var1.getHeight((ImageObserver)null));
  168.    }
  169.  
  170.    public boolean action(Event var1, Object var2) {
  171.       MediaTracker var3 = new MediaTracker(this);
  172.       this.output = "<applet code=\"TreeBrowse.class\" width=300 height=600>\n";
  173.       this.outParam("tree.dat", this.tf_data, "data");
  174.       this.outParam("", this.tf_imageSource, "imageSource");
  175.       this.outParam("TimesRoman", this.tf_fontName, "fontName");
  176.       this.outParam("16", this.tf_fontSize, "fontSize");
  177.       int var4 = 0;
  178.       if (this.cb_bold.getState() || this.cb_italic.getState()) {
  179.          String var10001 = this.output;
  180.          this.output = var10001 + "<param name=fontStyle value=\"";
  181.          if (this.cb_bold.getState()) {
  182.             var10001 = this.output;
  183.             this.output = var10001 + "BOLD";
  184.             ++var4;
  185.          }
  186.  
  187.          if (this.cb_bold.getState() && this.cb_italic.getState()) {
  188.             var10001 = this.output;
  189.             this.output = var10001 + "|";
  190.          }
  191.  
  192.          if (this.cb_italic.getState()) {
  193.             var10001 = this.output;
  194.             this.output = var10001 + "ITALIC";
  195.             var4 += 2;
  196.          }
  197.  
  198.          var10001 = this.output;
  199.          this.output = var10001 + "\">\n";
  200.       }
  201.  
  202.       this.outParam("", this.tf_target, "target");
  203.       this.outParam("192,192,192", this.tf_colorBase, "baseColor");
  204.       this.outParam("0,20,50", this.tf_colorLine, "lineColor");
  205.       this.outParam("0,0,50", this.tf_colorCloseText, "closeTextColor");
  206.       this.outParam("0,50,180", this.tf_colorOpenText, "openTextColor");
  207.       this.outParam("180,40,40", this.tf_colorHighlight, "highLightColor");
  208.       this.outParam("item.gif", this.tf_itemImage, "itemImage");
  209.       this.outParam("node.gif", this.tf_nodeImage, "nodeImage");
  210.       this.outParam("", this.tf_wall, "wallPaper");
  211.       this.outParam("", this.tf_open, "open");
  212.       if (this.cb_control.getState()) {
  213.          String var17 = this.output;
  214.          this.output = var17 + "<param name=control value=\"true\">\n";
  215.       }
  216.  
  217.       String var18 = this.output;
  218.       this.output = var18 + "</applet>";
  219.       this.textArea.setText(this.output);
  220.       this.treeEdit.font = new Font(this.tf_fontName.getText(), var4, Integer.parseInt(this.tf_fontSize.getText()));
  221.       this.treeEdit.offgraphics.setFont(this.treeEdit.font);
  222.       TreeColorInfo var5 = this.treeEdit.color;
  223.       var5.base = TreeColorInfo.getColor(this.tf_colorBase.getText());
  224.       var5.line = TreeColorInfo.getColor(this.tf_colorLine.getText());
  225.       var5.closeText = TreeColorInfo.getColor(this.tf_colorCloseText.getText());
  226.       var5.openText = TreeColorInfo.getColor(this.tf_colorOpenText.getText());
  227.       var5.highLight = TreeColorInfo.getColor(this.tf_colorHighlight.getText());
  228.       Object var6 = null;
  229.  
  230.       try {
  231.          URL var11;
  232.          if ("".equals(this.tf_imageSource.getText())) {
  233.             var11 = this.treeEdit.getDocumentBase();
  234.          } else {
  235.             var11 = new URL(this.treeEdit.getDocumentBase(), this.tf_imageSource.getText() + "/");
  236.          }
  237.  
  238.          this.treeEdit.sImage = this.tf_itemImage.getText();
  239.          this.treeEdit.itemImage = this.treeEdit.getImage(new URL(var11, this.tf_itemImage.getText()));
  240.          this.treeEdit.nodeImage = this.treeEdit.getImage(new URL(var11, this.tf_nodeImage.getText()));
  241.          var3.addImage(this.treeEdit.itemImage, 1);
  242.          var3.waitForID(1);
  243.          if (var3.isErrorID(1)) {
  244.             this.treeEdit.itemImage = this.treeEdit.getImage(new URL(this.treeEdit.getCodeBase(), "defItem.gif"));
  245.             var3.addImage(this.treeEdit.itemImage, 2);
  246.             var3.waitForID(2);
  247.             if (var3.isErrorID(2)) {
  248.                this.treeEdit.showError("Load default image error");
  249.             }
  250.          }
  251.  
  252.          var3.addImage(this.treeEdit.nodeImage, 3);
  253.          var3.waitForID(3);
  254.          if (var3.isErrorID(3)) {
  255.             this.treeEdit.nodeImage = this.treeEdit.getImage(new URL(this.treeEdit.getCodeBase(), "defNode.gif"));
  256.             var3.addImage(this.treeEdit.nodeImage, 4);
  257.             var3.waitForID(4);
  258.             if (var3.isErrorID(4)) {
  259.                this.treeEdit.showError("Load default image error");
  260.             }
  261.          }
  262.  
  263.          this.treeEdit.imageDim = this.getImageDimensions(this.treeEdit.itemImage);
  264.          Dimension var10000 = this.treeEdit.imageDim;
  265.          var10000.width /= 2;
  266.          this.treeEdit.nodeDim = this.getImageDimensions(this.treeEdit.nodeImage);
  267.          var10000 = this.treeEdit.nodeDim;
  268.          var10000.width /= 2;
  269.          if ("".equals(this.tf_wall.getText())) {
  270.             this.treeEdit.wall = null;
  271.          } else {
  272.             this.treeEdit.wall = this.treeEdit.getImage(new URL(var11, this.tf_wall.getText()));
  273.             var3.addImage(this.treeEdit.wall, 5);
  274.             var3.waitForID(5);
  275.             if (var3.isErrorID(5)) {
  276.                this.treeEdit.wall = null;
  277.             } else {
  278.                this.treeEdit.wallDim = this.getImageDimensions(this.treeEdit.wall);
  279.             }
  280.          }
  281.       } catch (Exception var10) {
  282.       }
  283.  
  284.       TreeNode var7 = this.treeEdit.tree.getRoot();
  285.  
  286.       try {
  287.          if (!this.oldData.equals(this.tf_data.getText())) {
  288.             this.treeEdit.tree = new Tree();
  289.             InputStream var8 = (new URL(this.treeEdit.getDocumentBase(), this.tf_data.getText())).openStream();
  290.             this.treeEdit.buildTree(var8, -1);
  291.             this.treeEdit.display = new TreeDisplay(this.treeEdit.num);
  292.             this.treeEdit.display.updateDisplay(this.treeEdit.tree);
  293.             this.treeEdit.open = null;
  294.             this.oldData = this.tf_data.getText();
  295.          }
  296.       } catch (Exception var9) {
  297.          this.treeEdit.tree.root = var7;
  298.       }
  299.  
  300.       if (this.cb_control.getState()) {
  301.          if (this.treeEdit.control == null) {
  302.             this.treeEdit.control();
  303.             this.treeEdit.control.show();
  304.          }
  305.       } else if (this.treeEdit.control != null) {
  306.          this.treeEdit.control.dispose();
  307.          this.treeEdit.control = null;
  308.       }
  309.  
  310.       this.treeEdit.newTreeInit();
  311.       this.treeEdit.updateTree(this.treeEdit.tree.getRoot(), ((Component)this).getFontMetrics(this.treeEdit.font));
  312.       this.treeEdit.updateDC();
  313.       this.treeEdit.repaint();
  314.       this.treeEdit.showStatus("Updating, please wait.");
  315.       return true;
  316.    }
  317.  
  318.    public void updateColor(TextField var1, Color var2) {
  319.       ((TextComponent)var1).setText(Integer.toString(var2.getRed()) + "," + Integer.toString(var2.getGreen()) + "," + Integer.toString(var2.getBlue()));
  320.       this.action((Event)null, (Object)null);
  321.    }
  322.  
  323.    public synchronized boolean handleEvent(Event var1) {
  324.       ColorContainer var2 = null;
  325.       if (var1.target == this.b_colorBase) {
  326.          this.b_colorBase.disable();
  327.          var2 = this.field_0 = new ColorContainer("Background Color", this, this.tf_colorBase, this.b_colorBase);
  328.       } else if (var1.target == this.b_colorLine) {
  329.          this.b_colorLine.disable();
  330.          var2 = this.field_1 = new ColorContainer("Line Color", this, this.tf_colorLine, this.b_colorLine);
  331.       } else if (var1.target == this.b_colorCloseText) {
  332.          this.b_colorCloseText.disable();
  333.          var2 = this.field_2 = new ColorContainer("Closed Text Color", this, this.tf_colorCloseText, this.b_colorCloseText);
  334.       } else if (var1.target == this.b_colorOpenText) {
  335.          this.b_colorOpenText.disable();
  336.          var2 = this.field_3 = new ColorContainer("Opened Text Color", this, this.tf_colorOpenText, this.b_colorOpenText);
  337.       } else if (var1.target == this.b_colorHighlight) {
  338.          this.b_colorHighlight.disable();
  339.          var2 = this.field_4 = new ColorContainer("Highlight Color", this, this.tf_colorHighlight, this.b_colorHighlight);
  340.       }
  341.  
  342.       if (var2 != null) {
  343.          ((Window)var2).pack();
  344.          ((Window)var2).show();
  345.          return true;
  346.       } else {
  347.          if (var1.id == 201) {
  348.             ((Frame)this).dispose();
  349.          }
  350.  
  351.          return super.handleEvent(var1);
  352.       }
  353.    }
  354. }
  355.