home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / sun / awt / VariableGridLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.4 KB  |  138 lines

  1. package sun.awt;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.GridLayout;
  7. import java.awt.Insets;
  8.  
  9. public class VariableGridLayout extends GridLayout {
  10.    double[] rowFractions;
  11.    double[] colFractions;
  12.    int rows;
  13.    int cols;
  14.    int hgap;
  15.    int vgap;
  16.  
  17.    public VariableGridLayout(int var1, int var2) {
  18.       this(var1, var2, 0, 0);
  19.       if (var1 != 0) {
  20.          this.stdRowFractions(var1);
  21.       }
  22.  
  23.       if (var2 != 0) {
  24.          this.stdColFractions(var2);
  25.       }
  26.  
  27.    }
  28.  
  29.    public VariableGridLayout(int var1, int var2, int var3, int var4) {
  30.       super(var1, var2, var3, var4);
  31.       this.rows = var1;
  32.       this.cols = var2;
  33.       this.hgap = var3;
  34.       this.vgap = var4;
  35.       if (var1 != 0) {
  36.          this.stdRowFractions(var1);
  37.       }
  38.  
  39.       if (var2 != 0) {
  40.          this.stdColFractions(var2);
  41.       }
  42.  
  43.    }
  44.  
  45.    void stdRowFractions(int var1) {
  46.       this.rowFractions = new double[var1];
  47.  
  48.       for(int var2 = 0; var2 < var1; ++var2) {
  49.          this.rowFractions[var2] = (double)1.0F / (double)var1;
  50.       }
  51.  
  52.    }
  53.  
  54.    void stdColFractions(int var1) {
  55.       this.colFractions = new double[var1];
  56.  
  57.       for(int var2 = 0; var2 < var1; ++var2) {
  58.          this.colFractions[var2] = (double)1.0F / (double)var1;
  59.       }
  60.  
  61.    }
  62.  
  63.    public void setRowFraction(int var1, double var2) {
  64.       this.rowFractions[var1] = var2;
  65.    }
  66.  
  67.    public void setColFraction(int var1, double var2) {
  68.       this.colFractions[var1] = var2;
  69.    }
  70.  
  71.    public double getRowFraction(int var1) {
  72.       return this.rowFractions[var1];
  73.    }
  74.  
  75.    public double getColFraction(int var1) {
  76.       return this.colFractions[var1];
  77.    }
  78.  
  79.    public void layoutContainer(Container var1) {
  80.       Insets var2 = var1.insets();
  81.       int var3 = var1.countComponents();
  82.       int var4 = this.rows;
  83.       int var5 = this.cols;
  84.       if (var4 > 0) {
  85.          var5 = (var3 + var4 - 1) / var4;
  86.       } else {
  87.          var4 = (var3 + var5 - 1) / var5;
  88.       }
  89.  
  90.       if (this.rows == 0) {
  91.          this.stdRowFractions(var4);
  92.       }
  93.  
  94.       if (this.cols == 0) {
  95.          this.stdColFractions(var5);
  96.       }
  97.  
  98.       Dimension var6 = ((Component)var1).size();
  99.       int var7 = var6.width - (var2.left + var2.right);
  100.       int var8 = var6.height - (var2.top + var2.bottom);
  101.       var7 -= (var5 - 1) * this.hgap;
  102.       var8 -= (var4 - 1) * this.vgap;
  103.       int var9 = 0;
  104.  
  105.       for(int var10 = var2.left; var9 < var5; ++var9) {
  106.          int var11 = (int)(this.getColFraction(var9) * (double)var7);
  107.          int var12 = 0;
  108.  
  109.          for(int var13 = var2.top; var12 < var4; ++var12) {
  110.             int var14 = var12 * var5 + var9;
  111.             int var15 = (int)(this.getRowFraction(var12) * (double)var8);
  112.             if (var14 < var3) {
  113.                var1.getComponent(var14).reshape(var10, var13, var11, var15);
  114.             }
  115.  
  116.             var13 += var15 + this.vgap;
  117.          }
  118.  
  119.          var10 += var11 + this.hgap;
  120.       }
  121.  
  122.    }
  123.  
  124.    static String fracsToString(double[] var0) {
  125.       String var1 = "[" + var0.length + "]";
  126.  
  127.       for(int var2 = 0; var2 < var0.length; ++var2) {
  128.          var1 = var1 + "<" + var0[var2] + ">";
  129.       }
  130.  
  131.       return var1;
  132.    }
  133.  
  134.    public String toString() {
  135.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + ",rows=" + this.rows + ",cols=" + this.cols + ",rowFracs=" + fracsToString(this.rowFractions) + ",colFracs=" + fracsToString(this.colFractions) + "]";
  136.    }
  137. }
  138.