home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / awt / GridLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  3.4 KB  |  174 lines

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class GridLayout implements LayoutManager, Serializable {
  6.    int hgap;
  7.    int vgap;
  8.    int rows;
  9.    int cols;
  10.  
  11.    public GridLayout() {
  12.       this(1, 0, 0, 0);
  13.    }
  14.  
  15.    public GridLayout(int var1, int var2) {
  16.       this(var1, var2, 0, 0);
  17.    }
  18.  
  19.    public GridLayout(int var1, int var2, int var3, int var4) {
  20.       if (var1 == 0 && var2 == 0) {
  21.          throw new IllegalArgumentException("rows and cols cannot both be zero");
  22.       } else {
  23.          this.rows = var1;
  24.          this.cols = var2;
  25.          this.hgap = var3;
  26.          this.vgap = var4;
  27.       }
  28.    }
  29.  
  30.    public int getRows() {
  31.       return this.rows;
  32.    }
  33.  
  34.    public void setRows(int var1) {
  35.       if (var1 == 0 && this.cols == 0) {
  36.          throw new IllegalArgumentException("rows and cols cannot both be zero");
  37.       } else {
  38.          this.rows = var1;
  39.       }
  40.    }
  41.  
  42.    public int getColumns() {
  43.       return this.cols;
  44.    }
  45.  
  46.    public void setColumns(int var1) {
  47.       if (var1 == 0 && this.rows == 0) {
  48.          throw new IllegalArgumentException("rows and cols cannot both be zero");
  49.       } else {
  50.          this.cols = var1;
  51.       }
  52.    }
  53.  
  54.    public int getHgap() {
  55.       return this.hgap;
  56.    }
  57.  
  58.    public void setHgap(int var1) {
  59.       this.hgap = var1;
  60.    }
  61.  
  62.    public int getVgap() {
  63.       return this.vgap;
  64.    }
  65.  
  66.    public void setVgap(int var1) {
  67.       this.vgap = var1;
  68.    }
  69.  
  70.    public void addLayoutComponent(String var1, Component var2) {
  71.    }
  72.  
  73.    public void removeLayoutComponent(Component var1) {
  74.    }
  75.  
  76.    public Dimension preferredLayoutSize(Container var1) {
  77.       Insets var2 = var1.getInsets();
  78.       int var3 = var1.getComponentCount();
  79.       int var4 = this.rows;
  80.       int var5 = this.cols;
  81.       if (var4 > 0) {
  82.          var5 = (var3 + var4 - 1) / var4;
  83.       } else {
  84.          var4 = (var3 + var5 - 1) / var5;
  85.       }
  86.  
  87.       int var6 = 0;
  88.       int var7 = 0;
  89.  
  90.       for(int var8 = 0; var8 < var3; ++var8) {
  91.          Component var9 = var1.getComponent(var8);
  92.          Dimension var10 = var9.getPreferredSize();
  93.          if (var6 < var10.width) {
  94.             var6 = var10.width;
  95.          }
  96.  
  97.          if (var7 < var10.height) {
  98.             var7 = var10.height;
  99.          }
  100.       }
  101.  
  102.       return new Dimension(var2.left + var2.right + var5 * var6 + (var5 - 1) * this.hgap, var2.top + var2.bottom + var4 * var7 + (var4 - 1) * this.vgap);
  103.    }
  104.  
  105.    public Dimension minimumLayoutSize(Container var1) {
  106.       Insets var2 = var1.getInsets();
  107.       int var3 = var1.getComponentCount();
  108.       int var4 = this.rows;
  109.       int var5 = this.cols;
  110.       if (var4 > 0) {
  111.          var5 = (var3 + var4 - 1) / var4;
  112.       } else {
  113.          var4 = (var3 + var5 - 1) / var5;
  114.       }
  115.  
  116.       int var6 = 0;
  117.       int var7 = 0;
  118.  
  119.       for(int var8 = 0; var8 < var3; ++var8) {
  120.          Component var9 = var1.getComponent(var8);
  121.          Dimension var10 = var9.getMinimumSize();
  122.          if (var6 < var10.width) {
  123.             var6 = var10.width;
  124.          }
  125.  
  126.          if (var7 < var10.height) {
  127.             var7 = var10.height;
  128.          }
  129.       }
  130.  
  131.       return new Dimension(var2.left + var2.right + var5 * var6 + (var5 - 1) * this.hgap, var2.top + var2.bottom + var4 * var7 + (var4 - 1) * this.vgap);
  132.    }
  133.  
  134.    public void layoutContainer(Container var1) {
  135.       Insets var2 = var1.getInsets();
  136.       int var3 = var1.getComponentCount();
  137.       int var4 = this.rows;
  138.       int var5 = this.cols;
  139.       if (var3 != 0) {
  140.          if (var4 > 0) {
  141.             var5 = (var3 + var4 - 1) / var4;
  142.          } else {
  143.             var4 = (var3 + var5 - 1) / var5;
  144.          }
  145.  
  146.          int var6 = var1.width - (var2.left + var2.right);
  147.          int var7 = var1.height - (var2.top + var2.bottom);
  148.          var6 = (var6 - (var5 - 1) * this.hgap) / var5;
  149.          var7 = (var7 - (var4 - 1) * this.vgap) / var4;
  150.          int var8 = 0;
  151.  
  152.          for(int var9 = var2.left; var8 < var5; var9 += var6 + this.hgap) {
  153.             int var10 = 0;
  154.  
  155.             for(int var11 = var2.top; var10 < var4; var11 += var7 + this.vgap) {
  156.                int var12 = var10 * var5 + var8;
  157.                if (var12 < var3) {
  158.                   var1.getComponent(var12).setBounds(var9, var11, var6, var7);
  159.                }
  160.  
  161.                ++var10;
  162.             }
  163.  
  164.             ++var8;
  165.          }
  166.  
  167.       }
  168.    }
  169.  
  170.    public String toString() {
  171.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + ",rows=" + this.rows + ",cols=" + this.cols + "]";
  172.    }
  173. }
  174.