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

  1. import java.awt.Component;
  2. import java.awt.Event;
  3. import java.awt.FontMetrics;
  4. import java.awt.Graphics;
  5.  
  6. public class TreeEdit extends TreeBrowse {
  7.    static final String sVersion = "TreeEdit 1.3";
  8.    static final String sError = "TreeEdit error: ";
  9.    String sImage = "item.gif";
  10.    // $FF: renamed from: ac AppletControl
  11.    AppletControl field_0;
  12.    // $FF: renamed from: dc DataControl
  13.    DataControl field_1;
  14.    int markLine;
  15.  
  16.    public void init() {
  17.       super.init();
  18.       this.field_0 = new AppletControl(this);
  19.       this.field_0.setTitle("TreeEdit 1.3 - Applet Control");
  20.       this.field_0.pack();
  21.       this.field_1 = new DataControl(this);
  22.       this.field_1.setTitle("TreeEdit 1.3 - Data Control");
  23.       this.field_1.pack();
  24.       this.updateDC();
  25.    }
  26.  
  27.    public void updateDC() {
  28.       this.field_1.updateInfo(super.display.getLine(this.markLine));
  29.       this.field_1.outData(super.tree);
  30.    }
  31.  
  32.    public void update(Graphics var1) {
  33.       super.update(var1);
  34.       var1.setXORMode(super.color.base);
  35.       var1.setColor(super.color.highLight);
  36.       ((TreeBrowse)this).myDrawRect(var1, 0, this.markLine * super.dy, super.dim.width, super.dy);
  37.    }
  38.  
  39.    public void paint(Graphics var1) {
  40.       super.paint(var1);
  41.       var1.setXORMode(super.color.base);
  42.       var1.setColor(super.color.highLight);
  43.       ((TreeBrowse)this).myDrawRect(var1, 0, this.markLine * super.dy, super.dim.width, super.dy);
  44.    }
  45.  
  46.    public synchronized boolean mouseDown(Event var1, int var2, int var3) {
  47.       if (super.lastType == 1) {
  48.          TreeNode var4 = super.display.getLine(super.lastLine);
  49.          var4.data.open = !var4.data.open;
  50.          super.display.updateDisplay(super.tree);
  51.          this.update(((Component)this).getGraphics());
  52.          this.field_1.updateInfo(super.display.getLine(this.markLine));
  53.          this.field_1.outData(super.tree);
  54.       } else if (super.lastType == 2) {
  55.          TreeNode var6 = super.open;
  56.          this.updateURL(super.display.getLine(super.lastLine));
  57.          if (super.control != null && var6 != super.open) {
  58.             super.control.addItem(super.open);
  59.          }
  60.       } else {
  61.          int var7 = (var3 - 4) / super.dy;
  62.          if (var7 != this.markLine) {
  63.             Graphics var5 = ((Component)this).getGraphics();
  64.             var5.setXORMode(super.color.base);
  65.             var5.setColor(super.color.highLight);
  66.             ((TreeBrowse)this).myDrawRect(var5, 0, this.markLine * super.dy, super.dim.width, super.dy);
  67.             ((TreeBrowse)this).myDrawRect(var5, 0, var7 * super.dy, super.dim.width, super.dy);
  68.             this.field_1.updateInfo(super.display.getLine(var7));
  69.             this.markLine = var7;
  70.          }
  71.       }
  72.  
  73.       return true;
  74.    }
  75.  
  76.    public void addSame() {
  77.       TreeNode var1 = super.display.getLine(this.markLine);
  78.       TreeNode var2 = var1.nextNode;
  79.       TreeNode var3 = new TreeNode();
  80.       TreeNodeData var4 = new TreeNodeData();
  81.       var4.level = var1.data.level;
  82.       var4.name = "";
  83.       var4.open = false;
  84.       var4.sWidth = 0;
  85.       var4.image = super.itemImage;
  86.       var3.data = var4;
  87.       var1.nextNode = var3;
  88.       var3.lastNode = var1;
  89.       if (var2 != null) {
  90.          var3.nextNode = var2;
  91.          var2.lastNode = var3;
  92.       }
  93.  
  94.       ++super.num;
  95.       super.display = new TreeDisplay(super.num);
  96.       super.display.updateDisplay(super.tree);
  97.    }
  98.  
  99.    public void addNext() {
  100.       TreeNode var1 = super.display.getLine(this.markLine);
  101.       TreeNode var2 = new TreeNode();
  102.       TreeNodeData var3 = new TreeNodeData();
  103.       var3.level = var1.data.level + 1;
  104.       var3.name = "";
  105.       var3.open = false;
  106.       var3.sWidth = 0;
  107.       var3.image = super.itemImage;
  108.       var2.data = var3;
  109.       var1.data.open = true;
  110.       if (var1.subNode != null) {
  111.          TreeNode var4 = var1.subNode;
  112.          var2.nextNode = var4;
  113.          var4.lastNode = var2;
  114.       }
  115.  
  116.       var1.subNode = var2;
  117.       var2.lastNode = var1;
  118.       super.maxLevel = var3.level > super.maxLevel ? var3.level : super.maxLevel;
  119.       ++super.num;
  120.       super.display = new TreeDisplay(super.num);
  121.       super.display.updateDisplay(super.tree);
  122.    }
  123.  
  124.    public void addRoot() {
  125.       TreeNode var1 = super.tree.getRoot();
  126.       TreeNode var2 = new TreeNode();
  127.       TreeNode var3 = var1.subNode;
  128.       TreeNodeData var4 = new TreeNodeData();
  129.       var4.level = 0;
  130.       var4.name = "";
  131.       var4.open = true;
  132.       var4.sWidth = 0;
  133.       var4.image = super.itemImage;
  134.       var2.data = var4;
  135.       var1.nextNode = var2;
  136.       var1.subNode = null;
  137.       var2.subNode = var3;
  138.       var3.lastNode = var2;
  139.       var2.lastNode = var1;
  140.       ++super.num;
  141.       super.display = new TreeDisplay(super.num);
  142.       super.display.updateDisplay(super.tree);
  143.       this.field_1.markNode = super.display.getLine(this.markLine);
  144.    }
  145.  
  146.    public void del() {
  147.       if (this.markLine == 0) {
  148.          TreeNode var1 = super.tree.getRoot();
  149.          if (super.tree.rootItem()) {
  150.             var1.subNode = var1.nextNode.subNode;
  151.             var1.nextNode = null;
  152.          } else {
  153.             var1.subNode = var1.subNode.nextNode;
  154.          }
  155.       } else {
  156.          TreeNode var4 = super.display.getLine(this.markLine);
  157.          TreeNode var2 = var4.lastNode;
  158.          TreeNode var3 = var4.nextNode;
  159.          if (var2.subNode == var4) {
  160.             var2.subNode = var3;
  161.          } else {
  162.             var2.nextNode = var3;
  163.          }
  164.  
  165.          if (var3 != null) {
  166.             var3.lastNode = var2;
  167.          }
  168.       }
  169.  
  170.       --super.num;
  171.       super.display = new TreeDisplay(super.num);
  172.       super.display.updateDisplay(super.tree);
  173.       this.field_1.markNode = super.display.getLine(this.markLine);
  174.    }
  175.  
  176.    public void updateTree(TreeNode var1, FontMetrics var2) {
  177.       if (var1 != null && var1.data != null) {
  178.          if (var1.data.name != null) {
  179.             var1.data.sWidth = var2.stringWidth(var1.data.name);
  180.             if (var1.data.sImage == null) {
  181.                var1.data.image = super.itemImage;
  182.             }
  183.          }
  184.  
  185.          this.updateTree(var1.subNode, var2);
  186.          this.updateTree(var1.nextNode, var2);
  187.       }
  188.    }
  189.  
  190.    public void updateURL(TreeNode var1) {
  191.       super.tree.updateNodes(super.open, var1);
  192.       super.open = var1;
  193.       ((Component)this).repaint();
  194.    }
  195.  
  196.    public void start() {
  197.       super.start();
  198.       this.field_0.show();
  199.       this.field_1.show();
  200.    }
  201.  
  202.    public void stop() {
  203.       super.stop();
  204.       this.field_0.hide();
  205.       this.field_1.hide();
  206.    }
  207.  
  208.    public String getAppletInfo() {
  209.       return "TreeEdit 1.3 by Stanley Poon - 12 April 1996";
  210.    }
  211. }
  212.