home *** CD-ROM | disk | FTP | other *** search
/ Java by Example / jbecd.bin / JBE-CD / Mje / VGridLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-04-08  |  2.5 KB  |  114 lines

  1. import java.awt.Component;
  2. import java.awt.Container;
  3. import java.awt.Dimension;
  4. import java.awt.Insets;
  5. import java.awt.LayoutManager;
  6. import java.util.Hashtable;
  7.  
  8. public class VGridLayout implements LayoutManager {
  9.    Insets insets;
  10.    int interval;
  11.    int notUsed;
  12.    Hashtable constraints = new Hashtable();
  13.  
  14.    public VGridLayout(Insets var1, int var2, int var3) {
  15.       this.insets = var1;
  16.       this.interval = var2;
  17.       this.notUsed = var3;
  18.    }
  19.  
  20.    public void addLayoutComponent(String var1, Component var2) {
  21.    }
  22.  
  23.    public void removeLayoutComponent(Component var1) {
  24.    }
  25.  
  26.    public Dimension preferredLayoutSize(Container var1) {
  27.       return this.minimumLayoutSize(var1);
  28.    }
  29.  
  30.    public Dimension minimumLayoutSize(Container var1) {
  31.       int var2 = 0;
  32.       int var3 = 0;
  33.       int var4 = var1.countComponents();
  34.       int[] var5 = new int[var4];
  35.       int[] var6 = new int[var4];
  36.       double var7 = (double)0.0F;
  37.       Object var9 = null;
  38.       Object var10 = null;
  39.       Insets var11 = var1.insets();
  40.  
  41.       for(int var12 = 0; var12 < var4; ++var12) {
  42.          Component var17 = var1.getComponent(var12);
  43.          Dimension var18 = var17.preferredSize();
  44.          var5[var12] = var18.height;
  45.          var6[var12] = (Integer)this.constraints.get(var17);
  46.          if (var6[var12] != 0) {
  47.             double var13 = (double)var18.height / (double)var6[var12];
  48.             if (var7 < var13) {
  49.                var7 = var13;
  50.             }
  51.          }
  52.  
  53.          if (var2 < var18.width) {
  54.             var2 = var18.width;
  55.          }
  56.       }
  57.  
  58.       for(int var20 = 0; var20 < var4; ++var20) {
  59.          if (var6[var20] == 0) {
  60.             var3 += var5[var20];
  61.          } else {
  62.             var3 += (int)((double)var6[var20] * var7);
  63.          }
  64.       }
  65.  
  66.       var2 += var11.left + var11.right + this.insets.left + this.insets.right;
  67.       var3 += var11.top + this.insets.top + this.interval * (var4 - 1) + this.insets.bottom + var11.bottom;
  68.       Dimension var19 = new Dimension(var2, var3);
  69.       return var19;
  70.    }
  71.  
  72.    public void setConstraints(Component var1, int var2) {
  73.       this.constraints.put(var1, new Integer(var2));
  74.    }
  75.  
  76.    public void layoutContainer(Container var1) {
  77.       int var2 = var1.countComponents();
  78.       Component[] var5 = new Component[var2];
  79.       int[] var6 = new int[var2];
  80.       int[] var7 = new int[var2];
  81.       Insets var8 = var1.insets();
  82.       Dimension var9 = ((Component)var1).size();
  83.       int var10 = var9.width - var8.left - var8.right - this.insets.left - this.insets.right;
  84.       int var11 = var9.height;
  85.       int var12 = var11 - var8.top - var8.bottom - this.insets.top - this.insets.bottom - (var2 - 1) * this.interval;
  86.       int var13 = this.notUsed * var12 / 100;
  87.       var12 -= var13;
  88.       int var14 = 0;
  89.  
  90.       for(int var15 = 0; var15 < var2; ++var15) {
  91.          var5[var15] = var1.getComponent(var15);
  92.          var6[var15] = (Integer)this.constraints.get(var5[var15]);
  93.          var7[var15] = var5[var15].preferredSize().height;
  94.          if (var6[var15] == 0) {
  95.             var14 += var7[var15];
  96.          }
  97.       }
  98.  
  99.       var12 -= var14;
  100.       int var3 = var8.left + this.insets.left;
  101.       int var4 = var8.top + this.insets.top + var13;
  102.  
  103.       for(int var16 = 0; var16 < var2; ++var16) {
  104.          if (var6[var16] != 0) {
  105.             var7[var16] = var12 * var6[var16] / 100;
  106.          }
  107.  
  108.          var5[var16].reshape(var3, var4, var10, var7[var16]);
  109.          var4 += var7[var16] + this.interval;
  110.       }
  111.  
  112.    }
  113. }
  114.