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

  1. import java.awt.Button;
  2. import java.awt.Component;
  3. import java.awt.Container;
  4. import java.awt.Event;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Frame;
  8. import java.awt.GridBagConstraints;
  9. import java.awt.GridBagLayout;
  10. import java.awt.Label;
  11. import java.awt.MediaTracker;
  12. import java.awt.Panel;
  13. import java.awt.TextArea;
  14. import java.awt.TextField;
  15. import java.net.URL;
  16.  
  17. public class DataControl extends Frame {
  18.    TreeEdit treeEdit;
  19.    TextArea textArea;
  20.    TextField tf_level;
  21.    TextField tf_name;
  22.    TextField tf_url;
  23.    TextField tf_image;
  24.    String level = "";
  25.    String name = "";
  26.    String url = "";
  27.    String image = "";
  28.    String output = "";
  29.    Button b_addNext;
  30.    Button b_addSame;
  31.    Button b_addRoot;
  32.    Button b_del;
  33.    String s_addSame = "Add Item at Same Level";
  34.    String s_addNext = "Add Item at Next Level";
  35.    String s_addRoot = "Add Root";
  36.    String s_del = "Delete Item";
  37.    TreeNode markNode;
  38.  
  39.    public DataControl(TreeEdit var1) {
  40.       this.treeEdit = var1;
  41.       GridBagLayout var2 = new GridBagLayout();
  42.       GridBagConstraints var3 = new GridBagConstraints();
  43.       ((Component)this).setFont(new Font("Helvetica", 0, 12));
  44.       ((Container)this).setLayout(var2);
  45.       Panel var4 = new Panel();
  46.       GridBagLayout var5 = new GridBagLayout();
  47.       ((Container)var4).setLayout(var5);
  48.       var3.weightx = (double)1.0F;
  49.       var3.fill = 2;
  50.       var3.gridwidth = 0;
  51.       ((Container)var4).add(new Label("Level:", 2));
  52.       this.tf_level = new TextField(this.level);
  53.       this.tf_level.setEditable(false);
  54.       var5.setConstraints(this.tf_level, var3);
  55.       ((Container)var4).add(this.tf_level);
  56.       ((Container)var4).add(new Label("Name:", 2));
  57.       this.tf_name = new TextField(this.name);
  58.       var5.setConstraints(this.tf_name, var3);
  59.       ((Container)var4).add(this.tf_name);
  60.       ((Container)var4).add(new Label("URL:", 2));
  61.       this.tf_url = new TextField(this.url);
  62.       var5.setConstraints(this.tf_url, var3);
  63.       ((Container)var4).add(this.tf_url);
  64.       ((Container)var4).add(new Label("Image:", 2));
  65.       this.tf_image = new TextField(this.image);
  66.       var5.setConstraints(this.tf_image, var3);
  67.       ((Container)var4).add(this.tf_image);
  68.       var2.setConstraints(var4, var3);
  69.       ((Container)this).add(var4);
  70.       var3.gridwidth = 1;
  71.       this.b_addSame = new Button(this.s_addSame);
  72.       var2.setConstraints(this.b_addSame, var3);
  73.       ((Container)this).add(this.b_addSame);
  74.       var3.gridwidth = 0;
  75.       this.b_addNext = new Button(this.s_addNext);
  76.       var2.setConstraints(this.b_addNext, var3);
  77.       ((Container)this).add(this.b_addNext);
  78.       this.b_addRoot = new Button(this.s_addRoot);
  79.       var2.setConstraints(this.b_addRoot, var3);
  80.       ((Container)this).add(this.b_addRoot);
  81.       this.b_del = new Button(this.s_del);
  82.       var2.setConstraints(this.b_del, var3);
  83.       ((Container)this).add(this.b_del);
  84.       this.textArea = new TextArea(this.output, 8, 48);
  85.       this.textArea.setEditable(false);
  86.       var3.fill = 1;
  87.       var3.weighty = (double)1.0F;
  88.       var2.setConstraints(this.textArea, var3);
  89.       ((Container)this).add(this.textArea);
  90.    }
  91.  
  92.    public void updateInfo(TreeNode var1) {
  93.       if (this.treeEdit.tree.rootItem()) {
  94.          this.b_addRoot.disable();
  95.       } else {
  96.          this.b_addRoot.enable();
  97.       }
  98.  
  99.       if (var1 != null) {
  100.          this.markNode = var1;
  101.          TreeNodeData var2 = var1.data;
  102.          this.b_addNext.enable();
  103.          TreeNode var3 = this.treeEdit.tree.getRoot();
  104.          if (this.markNode == var3.nextNode) {
  105.             this.b_addSame.disable();
  106.          } else {
  107.             this.b_addSame.enable();
  108.          }
  109.  
  110.          if (this.markNode != var3.nextNode && this.markNode != var3.subNode) {
  111.             this.b_del.enable();
  112.          } else if (var3.nextNode != null) {
  113.             if (var3.nextNode.nextNode == null && var3.nextNode.subNode == null) {
  114.                this.b_del.disable();
  115.             } else {
  116.                this.b_del.enable();
  117.             }
  118.          } else if (var3.subNode.nextNode != null) {
  119.             this.b_del.enable();
  120.          } else {
  121.             this.b_del.disable();
  122.          }
  123.  
  124.          this.tf_level.enable();
  125.          this.tf_name.enable();
  126.          this.tf_url.enable();
  127.          this.tf_image.enable();
  128.          this.tf_level.setText(String.valueOf(var2.level));
  129.          this.tf_name.setText(var2.name);
  130.          if (var2.url != null) {
  131.             this.tf_url.setText(var2.url.toString());
  132.          } else {
  133.             this.tf_url.setText("");
  134.          }
  135.  
  136.          if (var2.sImage != null) {
  137.             this.tf_image.setText(var2.sImage.toString());
  138.          } else if (var2.image == this.treeEdit.itemImage) {
  139.             this.tf_image.setText(this.treeEdit.sImage);
  140.          } else {
  141.             this.tf_image.setText("");
  142.          }
  143.       } else {
  144.          this.markNode = null;
  145.          this.b_addNext.disable();
  146.          this.b_addSame.disable();
  147.          this.b_del.disable();
  148.          this.tf_level.setText("");
  149.          this.tf_name.setText("");
  150.          this.tf_url.setText("");
  151.          this.tf_image.setText("");
  152.          this.tf_level.disable();
  153.          this.tf_name.disable();
  154.          this.tf_url.disable();
  155.          this.tf_image.disable();
  156.       }
  157.    }
  158.  
  159.    public void outData(Tree var1) {
  160.       this.textArea.setText("");
  161.       this.outDataLoop(var1.getRoot());
  162.    }
  163.  
  164.    public void outDataLoop(TreeNode var1) {
  165.       if (var1 != null && var1.data != null) {
  166.          TreeNodeData var2 = var1.data;
  167.          if (var2.name != null) {
  168.             this.textArea.appendText(var2.level + " \"" + var2.name + "\" \"");
  169.             if (var2.url != null) {
  170.                this.textArea.appendText(var2.url.toString() + "\" ");
  171.             } else {
  172.                this.textArea.appendText("\" ");
  173.             }
  174.  
  175.             this.textArea.appendText((var2.open ? 1 : 0) + "");
  176.             if (var2.image != this.treeEdit.itemImage) {
  177.                this.textArea.appendText(" \"" + var2.sImage + "\"");
  178.             }
  179.  
  180.             this.textArea.appendText("\n");
  181.          }
  182.  
  183.          this.outDataLoop(var1.subNode);
  184.          this.outDataLoop(var1.nextNode);
  185.       }
  186.    }
  187.  
  188.    public boolean action(Event var1, Object var2) {
  189.       if (var1.target == this.b_addSame) {
  190.          this.treeEdit.addSame();
  191.          this.updateInfo(this.markNode);
  192.       } else if (var1.target == this.b_addNext) {
  193.          this.treeEdit.addNext();
  194.          this.updateInfo(this.markNode);
  195.       } else if (var1.target == this.b_addRoot) {
  196.          this.treeEdit.addRoot();
  197.          this.updateInfo(this.markNode);
  198.       } else if (var1.target == this.b_del) {
  199.          this.treeEdit.del();
  200.          this.updateInfo(this.markNode);
  201.       } else if (this.markNode != null) {
  202.          MediaTracker var3 = new MediaTracker(this);
  203.          TreeNodeData var4 = this.markNode.data;
  204.          var4.name = this.tf_name.getText();
  205.          if (!this.tf_url.getText().equals("")) {
  206.             var4.url = this.tf_url.getText();
  207.          } else {
  208.             var4.url = null;
  209.          }
  210.  
  211.          try {
  212.             if (!this.tf_image.getText().equals("")) {
  213.                var4.sImage = this.tf_image.getText();
  214.                var4.image = this.treeEdit.getImage(new URL(this.treeEdit.imageSource, var4.sImage));
  215.                if (var4.image == this.treeEdit.itemImage) {
  216.                   var4.sImage = null;
  217.                }
  218.             } else {
  219.                var4.sImage = null;
  220.                var4.image = this.treeEdit.itemImage;
  221.             }
  222.  
  223.             var3.addImage(var4.image, 1);
  224.             var3.waitForID(1);
  225.             if (var3.isErrorID(1)) {
  226.                var4.image = this.treeEdit.getImage(new URL(this.treeEdit.getCodeBase(), "defItem.gif"));
  227.                var3.addImage(var4.image, 2);
  228.                var3.waitForID(2);
  229.                if (var3.isErrorID(2)) {
  230.                   this.treeEdit.showError("Load default image error");
  231.                }
  232.             }
  233.          } catch (Exception var6) {
  234.          }
  235.  
  236.          FontMetrics var5 = ((Component)this).getFontMetrics(this.treeEdit.font);
  237.          var4.sWidth = var5.stringWidth(var4.name);
  238.       }
  239.  
  240.       this.treeEdit.update(this.treeEdit.getGraphics());
  241.       this.outData(this.treeEdit.tree);
  242.       this.treeEdit.showStatus("Updating, please wait.");
  243.       return true;
  244.    }
  245.  
  246.    public synchronized boolean handleEvent(Event var1) {
  247.       if (var1.id == 201) {
  248.          ((Frame)this).dispose();
  249.       }
  250.  
  251.       return super.handleEvent(var1);
  252.    }
  253. }
  254.