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

  1. package com.sfs.awt.treeview;
  2.  
  3. import com.sfs.debug.Debug;
  4. import java.awt.FontMetrics;
  5. import java.awt.Scrollbar;
  6. import java.util.Vector;
  7.  
  8. class PositionMap {
  9.    Vector Rows = new Vector();
  10.    // $FF: renamed from: fm java.awt.FontMetrics
  11.    public FontMetrics field_0;
  12.    public Scrollbar Ver;
  13.    public Scrollbar Hor;
  14.    int height;
  15.  
  16.    public void setVerticalScrollbar(int var1, int var2, int var3) {
  17.       this.Ver.setMaximum(var1);
  18.       this.Ver.setUnitIncrement(var2);
  19.       this.Ver.setBlockIncrement(var3);
  20.       Debug.Info("Ver = " + this.Ver.toString());
  21.    }
  22.  
  23.    public String toString() {
  24.       String var1 = "PositionMap ->\n";
  25.  
  26.       for(int var2 = 0; var2 < this.Rows.size(); ++var2) {
  27.          Item var3 = (Item)this.Rows.elementAt(var2);
  28.          String var4 = var3.getName();
  29.          int var5 = var3.getSpaces();
  30.  
  31.          for(var1 = var1 + Integer.toString(var2) + "\t:"; var5-- > 0; var1 = var1 + " ") {
  32.          }
  33.  
  34.          var1 = var1 + var4 + "\n";
  35.       }
  36.  
  37.       return var1;
  38.    }
  39.  
  40.    public Item getItemAt(int var1) {
  41.       try {
  42.          return (Item)this.Rows.elementAt(var1);
  43.       } catch (ArrayIndexOutOfBoundsException var4) {
  44.          Debug.Info("PositionMap.getItemAt(...) -> y invalid: " + ((Throwable)var4).getMessage());
  45.          return null;
  46.       }
  47.    }
  48.  
  49.    public void removeItem(Item var1) {
  50.       this.removeItemAt(this.indexOf(var1));
  51.    }
  52.  
  53.    public void setHorizontalScrollbar(int var1, int var2, int var3) {
  54.       this.Hor.setMaximum(var1);
  55.       this.Hor.setUnitIncrement(var2);
  56.       this.Hor.setBlockIncrement(var3);
  57.       Debug.Info("Hor = " + this.Hor.toString());
  58.    }
  59.  
  60.    public int indexOf(Item var1) {
  61.       return this.Rows.indexOf(var1);
  62.    }
  63.  
  64.    public void removeItemAt(int var1) {
  65.       Item var2 = (Item)this.Rows.elementAt(var1);
  66.       int var3 = var2.getSpaces();
  67.  
  68.       do {
  69.          this.Rows.removeElementAt(var1);
  70.       } while(this.Rows.size() < var1 && ((Item)this.Rows.elementAt(var1)).getSpaces() > var3);
  71.  
  72.    }
  73.  
  74.    protected void AdjustScrollbars() {
  75.       if (this.field_0 != null && this.Ver != null && this.Hor != null) {
  76.          int var1 = 0;
  77.          int var2 = 0;
  78.          Item var3 = this.getItemAt(0);
  79.  
  80.          for(int var4 = 0; var4 < this.Rows.size(); ++var1) {
  81.             Item var5 = this.getItemAt(var4);
  82.             int var6 = var5.getSpaces() * 17 + 16 + this.field_0.stringWidth(var5.getName());
  83.             if (var6 > var2) {
  84.                var2 = var6;
  85.                var3 = var5;
  86.             }
  87.  
  88.             Debug.Info("actWidth = " + Integer.toString(var6));
  89.             if (var5 instanceof Folder && !var5.isOpen()) {
  90.                int var7 = var5.getSpaces();
  91.                Debug.Info("processing Folder " + var5.getName());
  92.  
  93.                while(var4 + 1 < this.Rows.size() && this.getItemAt(var4 + 1).getSpaces() > var7) {
  94.                   ++var4;
  95.                   Debug.Info("don't count" + this.getItemAt(var4).getName());
  96.                }
  97.             }
  98.  
  99.             Debug.Info("height = " + Integer.toString(var1));
  100.             ++var4;
  101.          }
  102.  
  103.          this.height = var1;
  104.          this.setVerticalScrollbar(var1 * 17, var1 * 17 / 100, var1 * 17 / 10);
  105.          this.setHorizontalScrollbar(var2, var2 / 100, var2 / 10);
  106.          Debug.Info("endg├╝ltig height = " + Integer.toString(var1));
  107.          Debug.Info("largest item= " + var3.getName() + "-> width = " + Integer.toString(var2));
  108.       }
  109.    }
  110.  
  111.    public int getHeight() {
  112.       return this.height;
  113.    }
  114.  
  115.    public void insertItem(Item var1) {
  116.       Folder var2 = var1.getParent();
  117.       int var3 = 0;
  118.       if (var2 != null) {
  119.          var3 = this.indexOf(var2) + var2.size() + 1;
  120.          if (var2.size() > 0) {
  121.             Debug.Info("adding" + var1.getName());
  122.  
  123.             for(int var4 = ((Item)var2).getSpaces(); var3 < this.Rows.size() && this.getItemAt(var3).getSpaces() >= var4; ++var3) {
  124.                Debug.Info("fsdf");
  125.             }
  126.          }
  127.       }
  128.  
  129.       Debug.Info("insert at pos: " + Integer.toString(var3));
  130.       this.Rows.insertElementAt(var1, var3);
  131.       this.AdjustScrollbars();
  132.    }
  133. }
  134.