home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / tree / DefaultTreeModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  5.6 KB  |  311 lines

  1. package javax.swing.tree;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;
  7. import java.util.EventListener;
  8. import java.util.Vector;
  9. import javax.swing.event.EventListenerList;
  10. import javax.swing.event.TreeModelEvent;
  11. import javax.swing.event.TreeModelListener;
  12.  
  13. public class DefaultTreeModel implements Serializable, TreeModel {
  14.    protected TreeNode root;
  15.    protected EventListenerList listenerList;
  16.    protected boolean asksAllowsChildren;
  17.    // $FF: synthetic field
  18.    static Class class$javax$swing$event$TreeModelListener;
  19.  
  20.    public DefaultTreeModel(TreeNode var1) {
  21.       this(var1, false);
  22.    }
  23.  
  24.    public DefaultTreeModel(TreeNode var1, boolean var2) {
  25.       this.listenerList = new EventListenerList();
  26.       if (var1 == null) {
  27.          throw new IllegalArgumentException("root is null");
  28.       } else {
  29.          this.root = var1;
  30.          this.asksAllowsChildren = var2;
  31.       }
  32.    }
  33.  
  34.    public void setAsksAllowsChildren(boolean var1) {
  35.       this.asksAllowsChildren = var1;
  36.    }
  37.  
  38.    public boolean asksAllowsChildren() {
  39.       return this.asksAllowsChildren;
  40.    }
  41.  
  42.    public void setRoot(TreeNode var1) {
  43.       if (var1 == null) {
  44.          throw new IllegalArgumentException("Root of tree is not allowed to be null");
  45.       } else {
  46.          this.root = var1;
  47.          this.nodeStructureChanged(var1);
  48.       }
  49.    }
  50.  
  51.    public Object getRoot() {
  52.       return this.root;
  53.    }
  54.  
  55.    public int getIndexOfChild(Object var1, Object var2) {
  56.       return var1 != null && var2 != null ? ((TreeNode)var1).getIndex((TreeNode)var2) : -1;
  57.    }
  58.  
  59.    public Object getChild(Object var1, int var2) {
  60.       return ((TreeNode)var1).getChildAt(var2);
  61.    }
  62.  
  63.    public int getChildCount(Object var1) {
  64.       return ((TreeNode)var1).getChildCount();
  65.    }
  66.  
  67.    public boolean isLeaf(Object var1) {
  68.       if (this.asksAllowsChildren) {
  69.          return !((TreeNode)var1).getAllowsChildren();
  70.       } else {
  71.          return ((TreeNode)var1).isLeaf();
  72.       }
  73.    }
  74.  
  75.    public void reload() {
  76.       this.reload(this.root);
  77.    }
  78.  
  79.    public void valueForPathChanged(TreePath var1, Object var2) {
  80.       MutableTreeNode var3 = (MutableTreeNode)var1.getLastPathComponent();
  81.       var3.setUserObject(var2);
  82.       this.nodeChanged(var3);
  83.    }
  84.  
  85.    public void insertNodeInto(MutableTreeNode var1, MutableTreeNode var2, int var3) {
  86.       var2.insert(var1, var3);
  87.       int[] var4 = new int[]{var3};
  88.       this.nodesWereInserted(var2, var4);
  89.    }
  90.  
  91.    public void removeNodeFromParent(MutableTreeNode var1) {
  92.       MutableTreeNode var2 = (MutableTreeNode)var1.getParent();
  93.       if (var2 == null) {
  94.          throw new IllegalArgumentException("node does not have a parent.");
  95.       } else {
  96.          int[] var3 = new int[1];
  97.          Object[] var4 = new Object[1];
  98.          var3[0] = var2.getIndex(var1);
  99.          var2.remove(var3[0]);
  100.          var4[0] = var1;
  101.          this.nodesWereRemoved(var2, var3, var4);
  102.       }
  103.    }
  104.  
  105.    public void nodeChanged(TreeNode var1) {
  106.       if (this.listenerList != null && var1 != null) {
  107.          TreeNode var2 = var1.getParent();
  108.          if (var2 != null) {
  109.             int var3 = var2.getIndex(var1);
  110.             if (var3 != -1) {
  111.                int[] var4 = new int[]{var3};
  112.                this.nodesChanged(var2, var4);
  113.             }
  114.          } else if (var1 == this.getRoot()) {
  115.             this.nodesChanged(var1, (int[])null);
  116.          }
  117.       }
  118.  
  119.    }
  120.  
  121.    public void reload(TreeNode var1) {
  122.       if (var1 != null) {
  123.          this.fireTreeStructureChanged(this, this.getPathToRoot(var1), (int[])null, (Object[])null);
  124.       }
  125.  
  126.    }
  127.  
  128.    public void nodesWereInserted(TreeNode var1, int[] var2) {
  129.       if (this.listenerList != null && var1 != null && var2 != null && var2.length > 0) {
  130.          int var3 = var2.length;
  131.          Object[] var4 = new Object[var3];
  132.  
  133.          for(int var5 = 0; var5 < var3; ++var5) {
  134.             var4[var5] = var1.getChildAt(var2[var5]);
  135.          }
  136.  
  137.          this.fireTreeNodesInserted(this, this.getPathToRoot(var1), var2, var4);
  138.       }
  139.  
  140.    }
  141.  
  142.    public void nodesWereRemoved(TreeNode var1, int[] var2, Object[] var3) {
  143.       if (var1 != null && var2 != null) {
  144.          this.fireTreeNodesRemoved(this, this.getPathToRoot(var1), var2, var3);
  145.       }
  146.  
  147.    }
  148.  
  149.    public void nodesChanged(TreeNode var1, int[] var2) {
  150.       if (var1 != null) {
  151.          if (var2 != null) {
  152.             int var3 = var2.length;
  153.             if (var3 > 0) {
  154.                Object[] var4 = new Object[var3];
  155.  
  156.                for(int var5 = 0; var5 < var3; ++var5) {
  157.                   var4[var5] = var1.getChildAt(var2[var5]);
  158.                }
  159.  
  160.                this.fireTreeNodesChanged(this, this.getPathToRoot(var1), var2, var4);
  161.             }
  162.          } else if (var1 == this.getRoot()) {
  163.             this.fireTreeNodesChanged(this, this.getPathToRoot(var1), (int[])null, (Object[])null);
  164.          }
  165.       }
  166.  
  167.    }
  168.  
  169.    public void nodeStructureChanged(TreeNode var1) {
  170.       if (var1 != null) {
  171.          this.fireTreeStructureChanged(this, this.getPathToRoot(var1), (int[])null, (Object[])null);
  172.       }
  173.  
  174.    }
  175.  
  176.    public TreeNode[] getPathToRoot(TreeNode var1) {
  177.       return this.getPathToRoot(var1, 0);
  178.    }
  179.  
  180.    protected TreeNode[] getPathToRoot(TreeNode var1, int var2) {
  181.       TreeNode[] var3;
  182.       if (var1 == null) {
  183.          if (var2 == 0) {
  184.             return null;
  185.          }
  186.  
  187.          var3 = new TreeNode[var2];
  188.       } else {
  189.          ++var2;
  190.          if (var1 == this.root) {
  191.             var3 = new TreeNode[var2];
  192.          } else {
  193.             var3 = this.getPathToRoot(var1.getParent(), var2);
  194.          }
  195.  
  196.          var3[var3.length - var2] = var1;
  197.       }
  198.  
  199.       return var3;
  200.    }
  201.  
  202.    public void addTreeModelListener(TreeModelListener var1) {
  203.       this.listenerList.add(class$javax$swing$event$TreeModelListener == null ? (class$javax$swing$event$TreeModelListener = class$("javax.swing.event.TreeModelListener")) : class$javax$swing$event$TreeModelListener, var1);
  204.    }
  205.  
  206.    public void removeTreeModelListener(TreeModelListener var1) {
  207.       this.listenerList.remove(class$javax$swing$event$TreeModelListener == null ? (class$javax$swing$event$TreeModelListener = class$("javax.swing.event.TreeModelListener")) : class$javax$swing$event$TreeModelListener, var1);
  208.    }
  209.  
  210.    protected void fireTreeNodesChanged(Object var1, Object[] var2, int[] var3, Object[] var4) {
  211.       Object[] var5 = this.listenerList.getListenerList();
  212.       TreeModelEvent var6 = null;
  213.  
  214.       for(int var7 = var5.length - 2; var7 >= 0; var7 -= 2) {
  215.          if (var5[var7] == (class$javax$swing$event$TreeModelListener == null ? (class$javax$swing$event$TreeModelListener = class$("javax.swing.event.TreeModelListener")) : class$javax$swing$event$TreeModelListener)) {
  216.             if (var6 == null) {
  217.                var6 = new TreeModelEvent(var1, var2, var3, var4);
  218.             }
  219.  
  220.             ((TreeModelListener)var5[var7 + 1]).treeNodesChanged(var6);
  221.          }
  222.       }
  223.  
  224.    }
  225.  
  226.    protected void fireTreeNodesInserted(Object var1, Object[] var2, int[] var3, Object[] var4) {
  227.       Object[] var5 = this.listenerList.getListenerList();
  228.       TreeModelEvent var6 = null;
  229.  
  230.       for(int var7 = var5.length - 2; var7 >= 0; var7 -= 2) {
  231.          if (var5[var7] == (class$javax$swing$event$TreeModelListener == null ? (class$javax$swing$event$TreeModelListener = class$("javax.swing.event.TreeModelListener")) : class$javax$swing$event$TreeModelListener)) {
  232.             if (var6 == null) {
  233.                var6 = new TreeModelEvent(var1, var2, var3, var4);
  234.             }
  235.  
  236.             ((TreeModelListener)var5[var7 + 1]).treeNodesInserted(var6);
  237.          }
  238.       }
  239.  
  240.    }
  241.  
  242.    protected void fireTreeNodesRemoved(Object var1, Object[] var2, int[] var3, Object[] var4) {
  243.       Object[] var5 = this.listenerList.getListenerList();
  244.       TreeModelEvent var6 = null;
  245.  
  246.       for(int var7 = var5.length - 2; var7 >= 0; var7 -= 2) {
  247.          if (var5[var7] == (class$javax$swing$event$TreeModelListener == null ? (class$javax$swing$event$TreeModelListener = class$("javax.swing.event.TreeModelListener")) : class$javax$swing$event$TreeModelListener)) {
  248.             if (var6 == null) {
  249.                var6 = new TreeModelEvent(var1, var2, var3, var4);
  250.             }
  251.  
  252.             ((TreeModelListener)var5[var7 + 1]).treeNodesRemoved(var6);
  253.          }
  254.       }
  255.  
  256.    }
  257.  
  258.    protected void fireTreeStructureChanged(Object var1, Object[] var2, int[] var3, Object[] var4) {
  259.       Object[] var5 = this.listenerList.getListenerList();
  260.       TreeModelEvent var6 = null;
  261.  
  262.       for(int var7 = var5.length - 2; var7 >= 0; var7 -= 2) {
  263.          if (var5[var7] == (class$javax$swing$event$TreeModelListener == null ? (class$javax$swing$event$TreeModelListener = class$("javax.swing.event.TreeModelListener")) : class$javax$swing$event$TreeModelListener)) {
  264.             if (var6 == null) {
  265.                var6 = new TreeModelEvent(var1, var2, var3, var4);
  266.             }
  267.  
  268.             ((TreeModelListener)var5[var7 + 1]).treeStructureChanged(var6);
  269.          }
  270.       }
  271.  
  272.    }
  273.  
  274.    public EventListener[] getListeners(Class var1) {
  275.       return this.listenerList.getListeners(var1);
  276.    }
  277.  
  278.    private void writeObject(ObjectOutputStream var1) throws IOException {
  279.       Vector var2 = new Vector();
  280.       var1.defaultWriteObject();
  281.       if (this.root != null && this.root instanceof Serializable) {
  282.          var2.addElement("root");
  283.          var2.addElement(this.root);
  284.       }
  285.  
  286.       var1.writeObject(var2);
  287.    }
  288.  
  289.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  290.       var1.defaultReadObject();
  291.       Vector var2 = (Vector)var1.readObject();
  292.       int var3 = 0;
  293.       int var4 = var2.size();
  294.       if (var3 < var4 && var2.elementAt(var3).equals("root")) {
  295.          ++var3;
  296.          this.root = (TreeNode)var2.elementAt(var3);
  297.          ++var3;
  298.       }
  299.  
  300.    }
  301.  
  302.    // $FF: synthetic method
  303.    static Class class$(String var0) {
  304.       try {
  305.          return Class.forName(var0);
  306.       } catch (ClassNotFoundException var2) {
  307.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  308.       }
  309.    }
  310. }
  311.