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

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class FlowLayout implements LayoutManager, Serializable {
  6.    public static final int LEFT = 0;
  7.    public static final int CENTER = 1;
  8.    public static final int RIGHT = 2;
  9.    int align;
  10.    int hgap;
  11.    int vgap;
  12.  
  13.    public FlowLayout() {
  14.       this(1, 5, 5);
  15.    }
  16.  
  17.    public FlowLayout(int var1) {
  18.       this(var1, 5, 5);
  19.    }
  20.  
  21.    public FlowLayout(int var1, int var2, int var3) {
  22.       this.align = var1;
  23.       this.hgap = var2;
  24.       this.vgap = var3;
  25.    }
  26.  
  27.    public void addLayoutComponent(String var1, Component var2) {
  28.    }
  29.  
  30.    public void removeLayoutComponent(Component var1) {
  31.    }
  32.  
  33.    public Dimension preferredLayoutSize(Container var1) {
  34.       Dimension var2 = new Dimension(0, 0);
  35.       int var3 = var1.countComponents();
  36.  
  37.       for(int var4 = 0; var4 < var3; ++var4) {
  38.          Component var5 = var1.getComponent(var4);
  39.          if (var5.visible) {
  40.             Dimension var6 = var5.preferredSize();
  41.             var2.height = Math.max(var2.height, var6.height);
  42.             if (var4 > 0) {
  43.                var2.width += this.hgap;
  44.             }
  45.  
  46.             var2.width += var6.width;
  47.          }
  48.       }
  49.  
  50.       Insets var7 = var1.insets();
  51.       var2.width += var7.left + var7.right + this.hgap * 2;
  52.       var2.height += var7.top + var7.bottom + this.vgap * 2;
  53.       return var2;
  54.    }
  55.  
  56.    public Dimension minimumLayoutSize(Container var1) {
  57.       Dimension var2 = new Dimension(0, 0);
  58.       int var3 = var1.countComponents();
  59.  
  60.       for(int var4 = 0; var4 < var3; ++var4) {
  61.          Component var5 = var1.getComponent(var4);
  62.          if (var5.visible) {
  63.             Dimension var6 = var5.minimumSize();
  64.             var2.height = Math.max(var2.height, var6.height);
  65.             if (var4 > 0) {
  66.                var2.width += this.hgap;
  67.             }
  68.  
  69.             var2.width += var6.width;
  70.          }
  71.       }
  72.  
  73.       Insets var7 = var1.insets();
  74.       var2.width += var7.left + var7.right + this.hgap * 2;
  75.       var2.height += var7.top + var7.bottom + this.vgap * 2;
  76.       return var2;
  77.    }
  78.  
  79.    private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  80.       switch (this.align) {
  81.          case 0:
  82.          default:
  83.             break;
  84.          case 1:
  85.             var2 += var4 / 2;
  86.             break;
  87.          case 2:
  88.             var2 += var4;
  89.       }
  90.  
  91.       for(int var8 = var6; var8 < var7; ++var8) {
  92.          Component var9 = var1.getComponent(var8);
  93.          if (var9.visible) {
  94.             var9.move(var2, var3 + (var5 - var9.height) / 2);
  95.             var2 += this.hgap + var9.width;
  96.          }
  97.       }
  98.  
  99.    }
  100.  
  101.    public void layoutContainer(Container var1) {
  102.       Insets var2 = var1.insets();
  103.       int var3 = var1.width - (var2.left + var2.right + this.hgap * 2);
  104.       int var4 = var1.countComponents();
  105.       int var5 = 0;
  106.       int var6 = var2.top + this.vgap;
  107.       int var7 = 0;
  108.       int var8 = 0;
  109.  
  110.       for(int var9 = 0; var9 < var4; ++var9) {
  111.          Component var10 = var1.getComponent(var9);
  112.          if (var10.visible) {
  113.             Dimension var11 = var10.preferredSize();
  114.             var10.resize(var11.width, var11.height);
  115.             if (var5 != 0 && var5 + var11.width > var3) {
  116.                this.moveComponents(var1, var2.left + this.hgap, var6, var3 - var5, var7, var8, var9);
  117.                var5 = var11.width;
  118.                var6 += this.vgap + var7;
  119.                var7 = var11.height;
  120.                var8 = var9;
  121.             } else {
  122.                if (var5 > 0) {
  123.                   var5 += this.hgap;
  124.                }
  125.  
  126.                var5 += var11.width;
  127.                var7 = Math.max(var7, var11.height);
  128.             }
  129.          }
  130.       }
  131.  
  132.       this.moveComponents(var1, var2.left + this.hgap, var6, var3 - var5, var7, var8, var4);
  133.    }
  134.  
  135.    public String toString() {
  136.       String var1 = "";
  137.       switch (this.align) {
  138.          case 0:
  139.             var1 = ",align=left";
  140.             break;
  141.          case 1:
  142.             var1 = ",align=center";
  143.             break;
  144.          case 2:
  145.             var1 = ",align=right";
  146.       }
  147.  
  148.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + var1 + "]";
  149.    }
  150. }
  151.