home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / JTree$DynamicUtilTreeNode.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  2.0 KB  |  79 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.swing.tree.DefaultMutableTreeNode;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6. import java.util.Vector;
  7.  
  8. public class JTree$DynamicUtilTreeNode extends DefaultMutableTreeNode {
  9.    protected boolean hasChildren;
  10.    protected Object childValue;
  11.    protected boolean loadedChildren = false;
  12.  
  13.    public static void createChildren(DefaultMutableTreeNode var0, Object var1) {
  14.       if (var1 instanceof Vector) {
  15.          Vector var6 = (Vector)var1;
  16.          int var8 = 0;
  17.  
  18.          for(int var10 = var6.size(); var8 < var10; ++var8) {
  19.             var0.add(new JTree$DynamicUtilTreeNode(var6.elementAt(var8), var6.elementAt(var8)));
  20.          }
  21.  
  22.       } else if (var1 instanceof Hashtable) {
  23.          Hashtable var5 = (Hashtable)var1;
  24.          Enumeration var7 = var5.keys();
  25.  
  26.          while(var7.hasMoreElements()) {
  27.             Object var9 = var7.nextElement();
  28.             var0.add(new JTree$DynamicUtilTreeNode(var9, var5.get(var9)));
  29.          }
  30.  
  31.       } else {
  32.          if (var1 instanceof Object[]) {
  33.             Object[] var2 = var1;
  34.             int var3 = 0;
  35.  
  36.             for(int var4 = var2.length; var3 < var4; ++var3) {
  37.                var0.add(new JTree$DynamicUtilTreeNode(var2[var3], var2[var3]));
  38.             }
  39.          }
  40.  
  41.       }
  42.    }
  43.  
  44.    public JTree$DynamicUtilTreeNode(Object var1, Object var2) {
  45.       super(var1);
  46.       this.childValue = var2;
  47.       if (var2 != null) {
  48.          if (var2 instanceof Vector) {
  49.             ((DefaultMutableTreeNode)this).setAllowsChildren(true);
  50.          } else if (var2 instanceof Hashtable) {
  51.             ((DefaultMutableTreeNode)this).setAllowsChildren(true);
  52.          } else if (var2 instanceof Object[]) {
  53.             ((DefaultMutableTreeNode)this).setAllowsChildren(true);
  54.          } else {
  55.             ((DefaultMutableTreeNode)this).setAllowsChildren(false);
  56.          }
  57.       } else {
  58.          ((DefaultMutableTreeNode)this).setAllowsChildren(false);
  59.       }
  60.    }
  61.  
  62.    public boolean isLeaf() {
  63.       return !((DefaultMutableTreeNode)this).getAllowsChildren();
  64.    }
  65.  
  66.    public int getChildCount() {
  67.       if (!this.loadedChildren) {
  68.          this.loadChildren();
  69.       }
  70.  
  71.       return super.getChildCount();
  72.    }
  73.  
  74.    protected void loadChildren() {
  75.       this.loadedChildren = true;
  76.       createChildren(this, this.childValue);
  77.    }
  78. }
  79.