home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / Folder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-18  |  3.7 KB  |  167 lines

  1. package com.sfs.awt.treeview;
  2.  
  3. import com.sfs.debug.Debug;
  4. import java.util.StringTokenizer;
  5. import java.util.Vector;
  6.  
  7. public class Folder extends Item {
  8.    public Vector Root;
  9.    protected RootFolder Owner;
  10.  
  11.    public void setOpen(boolean var1) {
  12.       if (((Item)this).isOpen() != var1) {
  13.          super.setOpen(var1);
  14.          if (((Item)this).isOpen()) {
  15.             for(Folder var2 = super.Parent; var2 != null; var2 = var2.Parent) {
  16.                if (!((Item)var2).isOpen()) {
  17.                   var2.setOpen(true);
  18.                   return;
  19.                }
  20.             }
  21.          }
  22.       }
  23.  
  24.    }
  25.  
  26.    public Item getItem(int var1) {
  27.       return (Item)this.Root.elementAt(var1);
  28.    }
  29.  
  30.    public String toString() {
  31.       String var1 = "[" + super.Name + "] = {";
  32.  
  33.       for(int var2 = 0; var2 < this.Root.size(); ++var2) {
  34.          var1 = var1 + this.Root.elementAt(var2) + ", ";
  35.       }
  36.  
  37.       return var1 + "}\n";
  38.    }
  39.  
  40.    protected boolean isLastElement(Item var1) {
  41.       Debug.Info(var1.getName() + " is " + (this.Root.lastElement() == var1 ? "last" : "not last") + " element of " + ((Item)this).getName());
  42.       return this.Root.lastElement() == var1;
  43.    }
  44.  
  45.    protected synchronized void add(Item var1) throws TreeViewException {
  46.       for(int var2 = 0; var2 < this.Root.size(); ++var2) {
  47.          if (var1.getName().equals(((Item)this.Root.elementAt(var2)).getName())) {
  48.             throw new TreeViewException(2);
  49.          }
  50.       }
  51.  
  52.       this.Owner.Sorter.doInsertionsort(this.Root, var1);
  53.       this.Owner.insertItem(var1);
  54.    }
  55.  
  56.    public Item getItem(String var1) throws TreeViewException {
  57.       if (var1.equals("/")) {
  58.          return this;
  59.       } else {
  60.          StringTokenizer var2 = new StringTokenizer(var1, "/");
  61.          return this.Search(var2, this.Root);
  62.       }
  63.    }
  64.  
  65.    public void removeItem(String var1) throws TreeViewException {
  66.       int var2 = var1.lastIndexOf(47);
  67.       Folder var3;
  68.       String var4;
  69.       if (var2 != -1) {
  70.          var4 = var1.substring(var2 + 1);
  71.          var1 = var1.substring(0, var2);
  72.          StringTokenizer var5 = new StringTokenizer(var1, "/");
  73.  
  74.          try {
  75.             var3 = (Folder)this.Search(var5, this.Root);
  76.          } catch (TreeViewException var9) {
  77.             throw var9;
  78.          }
  79.       } else {
  80.          var3 = this;
  81.          var4 = var1;
  82.       }
  83.  
  84.       try {
  85.          this.Owner.removeItem(var3.getItem(var4));
  86.          var3.Root.removeElement(var3.getItem(var4));
  87.       } catch (TreeViewException var8) {
  88.          Debug.Info(var8.getMessage());
  89.       }
  90.    }
  91.  
  92.    public Item Search(StringTokenizer var1, Vector var2) throws TreeViewException {
  93.       String var3 = var1.nextToken();
  94.  
  95.       for(int var4 = 0; var4 < var2.size(); ++var4) {
  96.          Item var5 = (Item)var2.elementAt(var4);
  97.          if (var5 instanceof Folder) {
  98.             if (var3.equals(((Folder)var5).getName())) {
  99.                if (var1.countTokens() > 0) {
  100.                   return this.Search(var1, ((Folder)var5).Root);
  101.                }
  102.  
  103.                return var5;
  104.             }
  105.          } else if (var3.equals(var5.getName())) {
  106.             return var5;
  107.          }
  108.       }
  109.  
  110.       throw new TreeViewException(3);
  111.    }
  112.  
  113.    public int size() {
  114.       return this.Root.size();
  115.    }
  116.  
  117.    public Item addItem(String var1, Object var2, int var3) throws TreeViewException {
  118.       Item var4;
  119.       this.add(var4 = new Item(this.Owner, this, var1, var2, var3));
  120.       return var4;
  121.    }
  122.  
  123.    public Item addItem(String var1, Object var2) throws TreeViewException {
  124.       Object var3 = null;
  125.       Item var4;
  126.       this.add(var4 = new Item(this.Owner, this, var1, var2));
  127.       return var4;
  128.    }
  129.  
  130.    public Folder addFolder(String var1, Object var2, int var3) throws TreeViewException {
  131.       Object var4 = null;
  132.       Folder var5;
  133.       this.add(var5 = new Folder(this.Owner, this, var1, var2, var3));
  134.       return var5;
  135.    }
  136.  
  137.    public Folder addFolder(String var1, Object var2) throws TreeViewException {
  138.       Object var3 = null;
  139.       Folder var4;
  140.       this.add(var4 = new Folder(this.Owner, this, var1, var2));
  141.       return var4;
  142.    }
  143.  
  144.    protected Folder(RootFolder var1, Folder var2, String var3, Object var4) {
  145.       this(var1, var2, var3, var4, 0);
  146.    }
  147.  
  148.    protected Folder(RootFolder var1, Folder var2, String var3, Object var4, int var5) {
  149.       super(var1, var2, var3, var4);
  150.       this.Root = new Vector();
  151.       super.iconType = 0;
  152.       this.Owner = var1;
  153.       super.iconType = var5;
  154.    }
  155.  
  156.    public Item lookup(String var1) {
  157.       for(int var2 = 0; var2 < this.Root.size(); ++var2) {
  158.          Item var3 = (Item)this.Root.elementAt(var2);
  159.          if (var3.getName().equals(var1)) {
  160.             return var3;
  161.          }
  162.       }
  163.  
  164.       return null;
  165.    }
  166. }
  167.