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

  1. package com.sfs.awt.treeview;
  2.  
  3. import com.sfs.util.Insertionsort;
  4. import com.sfs.util.Sortable;
  5. import java.awt.FontMetrics;
  6. import java.util.Vector;
  7.  
  8. public class RootFolder extends Folder implements Sortable {
  9.    public Vector Rows;
  10.    // $FF: renamed from: fm java.awt.FontMetrics
  11.    public FontMetrics field_0;
  12.    TreeView View;
  13.    Vector Selection;
  14.    Item caretItem;
  15.    protected Insertionsort Sorter;
  16.  
  17.    public Item prevVisibleItem(int var1) {
  18.       Item var2 = null;
  19.  
  20.       do {
  21.          --var1;
  22.          if (var1 <= -1) {
  23.             break;
  24.          }
  25.  
  26.          var2 = this.getItemAt(var1);
  27.       } while(!var2.isVisible());
  28.  
  29.       return var1 == -1 ? null : var2;
  30.    }
  31.  
  32.    public String toString() {
  33.       String var1 = "RootFolder ->\n";
  34.  
  35.       for(int var2 = 0; var2 < this.Rows.size(); ++var2) {
  36.          Item var3 = (Item)this.Rows.elementAt(var2);
  37.          String var4 = var3.getName();
  38.          int var5 = var3.getSpaces();
  39.  
  40.          for(var1 = var1 + Integer.toString(var2) + "\t:"; var5-- > 0; var1 = var1 + " ") {
  41.          }
  42.  
  43.          var1 = var1 + var4 + "\n";
  44.       }
  45.  
  46.       var1 = var1 + "_________________________________________________\n";
  47.       return var1;
  48.    }
  49.  
  50.    public Item visibleItemAt(int var1) {
  51.       Item var2 = null;
  52.  
  53.       while(var1 < this.Rows.size()) {
  54.          var2 = this.getItemAt(var1);
  55.          ++var1;
  56.          if (var2.isVisible()) {
  57.             break;
  58.          }
  59.       }
  60.  
  61.       return var1 > this.Rows.size() ? null : var2;
  62.    }
  63.  
  64.    public Item getItemAt(int var1) {
  65.       try {
  66.          return (Item)this.Rows.elementAt(var1);
  67.       } catch (ArrayIndexOutOfBoundsException var2) {
  68.          return null;
  69.       }
  70.    }
  71.  
  72.    public Item getLastSelectedItem() {
  73.       return this.Selection.size() == 0 ? null : (Item)this.Selection.lastElement();
  74.    }
  75.  
  76.    public void removeItem(Item var1) {
  77.       this.removeItemAt(this.indexOf(var1));
  78.    }
  79.  
  80.    public synchronized void setSorter(Sortable var1) {
  81.       this.Sorter = new Insertionsort(var1);
  82.    }
  83.  
  84.    public void clearSelection() {
  85.       while(this.Selection.size() > 0) {
  86.          ((Item)this.Selection.elementAt(0)).setSelected(false);
  87.       }
  88.  
  89.    }
  90.  
  91.    public int indexOf(Item var1) {
  92.       return this.Rows.indexOf(var1);
  93.    }
  94.  
  95.    public void removeItemAt(int var1) {
  96.       Item var2 = (Item)this.Rows.elementAt(var1);
  97.       int var3 = var2.getSpaces();
  98.  
  99.       do {
  100.          this.Rows.removeElementAt(var1);
  101.       } while(this.Rows.size() > var1 && ((Item)this.Rows.elementAt(var1)).getSpaces() > var3);
  102.  
  103.    }
  104.  
  105.    protected void removeSelectedItem(Item var1) {
  106.       this.Selection.removeElement(var1);
  107.    }
  108.  
  109.    protected boolean isSelectedItem(Item var1) {
  110.       return this.Selection.contains(var1);
  111.    }
  112.  
  113.    public Item getCaretItem() {
  114.       return this.caretItem;
  115.    }
  116.  
  117.    protected void setCaretItem(Item var1) {
  118.       this.caretItem = var1;
  119.    }
  120.  
  121.    protected void AdjustScrollbars() {
  122.       if (this.field_0 != null) {
  123.          int var1 = 0;
  124.          int var2 = 0;
  125.          Item var3 = this.visibleItemAt(0);
  126.          int var4 = this.indexOf(var3);
  127.  
  128.          while(true) {
  129.             int var5 = var3.getSpaces() * 17 + 16 + this.field_0.stringWidth(var3.getName());
  130.             if (var5 > var2) {
  131.                var2 = var5;
  132.             }
  133.  
  134.             ++var1;
  135.             var3 = this.nextVisibleItem(var4);
  136.             if (var3 == null) {
  137.                if (this.View != null) {
  138.                   this.View.setScrollbars(var1, var2 / 17);
  139.                }
  140.  
  141.                return;
  142.             }
  143.  
  144.             var4 = this.indexOf(var3);
  145.          }
  146.       }
  147.    }
  148.  
  149.    public int compare(Object var1, Object var2) {
  150.       return 0;
  151.    }
  152.  
  153.    public Vector getSelection() {
  154.       return this.Selection;
  155.    }
  156.  
  157.    public int getHeight() {
  158.       int var1 = 0;
  159.       int var2 = this.Rows.size();
  160.  
  161.       while(var2-- > 0) {
  162.          if (this.getItemAt(var2).isVisible()) {
  163.             ++var1;
  164.          }
  165.       }
  166.  
  167.       return var1;
  168.    }
  169.  
  170.    public RootFolder(TreeView var1, String var2, Object var3) {
  171.       this((TreeView)null, var2, var3, 0);
  172.       this.View = var1;
  173.    }
  174.  
  175.    RootFolder(TreeView var1, String var2, Object var3, int var4) {
  176.       super((RootFolder)null, (Folder)null, var2, var3, var4);
  177.       this.Rows = new Vector();
  178.       super.Owner = this;
  179.       this.Selection = new Vector();
  180.       ((Folder)this).setOpen(true);
  181.       this.insertItem(this);
  182.       this.Sorter = new Insertionsort(this);
  183.    }
  184.  
  185.    protected void addSelectedItem(Item var1) {
  186.       this.Selection.addElement(var1);
  187.    }
  188.  
  189.    public void insertItem(Item var1) {
  190.       Folder var2 = var1.getParent();
  191.       int var3 = 0;
  192.       if (var2 != null) {
  193.          if (var2.Root.size() == 1) {
  194.             var3 = this.indexOf(var2) + 1;
  195.          } else if (var2.Root.indexOf(var1) == var2.Root.size() - 1) {
  196.             var3 = this.indexOf(var2) + var2.size();
  197.             if (var2.size() > 0) {
  198.                for(int var4 = ((Item)var2).getSpaces(); var3 < this.Rows.size() && (this.getItemAt(var3).getSpaces() > var4 || this.getItemAt(var3).getParent() == var2); ++var3) {
  199.                }
  200.             }
  201.          } else {
  202.             var3 = this.indexOf(var2.getItem(var2.Root.indexOf(var1) + 1));
  203.          }
  204.       }
  205.  
  206.       this.Rows.insertElementAt(var1, var3);
  207.       this.AdjustScrollbars();
  208.    }
  209.  
  210.    public Item nextVisibleItem(int var1) {
  211.       Item var2 = null;
  212.  
  213.       do {
  214.          ++var1;
  215.          if (var1 >= this.Rows.size()) {
  216.             break;
  217.          }
  218.  
  219.          var2 = this.getItemAt(var1);
  220.       } while(!var2.isVisible());
  221.  
  222.       return var1 == this.Rows.size() ? null : var2;
  223.    }
  224. }
  225.