home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / java / awt / FlowLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  3.6 KB  |  176 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.    private static final long serialVersionUID = -7262534875583282631L;
  13.  
  14.    public FlowLayout() {
  15.       this(1, 5, 5);
  16.    }
  17.  
  18.    public FlowLayout(int var1) {
  19.       this(var1, 5, 5);
  20.    }
  21.  
  22.    public FlowLayout(int var1, int var2, int var3) {
  23.       this.align = var1;
  24.       this.hgap = var2;
  25.       this.vgap = var3;
  26.    }
  27.  
  28.    public int getAlignment() {
  29.       return this.align;
  30.    }
  31.  
  32.    public void setAlignment(int var1) {
  33.       this.align = var1;
  34.    }
  35.  
  36.    public int getHgap() {
  37.       return this.hgap;
  38.    }
  39.  
  40.    public void setHgap(int var1) {
  41.       this.hgap = var1;
  42.    }
  43.  
  44.    public int getVgap() {
  45.       return this.vgap;
  46.    }
  47.  
  48.    public void setVgap(int var1) {
  49.       this.vgap = var1;
  50.    }
  51.  
  52.    public void addLayoutComponent(String var1, Component var2) {
  53.    }
  54.  
  55.    public void removeLayoutComponent(Component var1) {
  56.    }
  57.  
  58.    public Dimension preferredLayoutSize(Container var1) {
  59.       Dimension var2 = new Dimension(0, 0);
  60.       int var3 = var1.getComponentCount();
  61.  
  62.       for(int var4 = 0; var4 < var3; ++var4) {
  63.          Component var5 = var1.getComponent(var4);
  64.          if (var5.visible) {
  65.             Dimension var6 = var5.getPreferredSize();
  66.             var2.height = Math.max(var2.height, var6.height);
  67.             if (var4 > 0) {
  68.                var2.width += this.hgap;
  69.             }
  70.  
  71.             var2.width += var6.width;
  72.          }
  73.       }
  74.  
  75.       Insets var7 = var1.getInsets();
  76.       var2.width += var7.left + var7.right + this.hgap * 2;
  77.       var2.height += var7.top + var7.bottom + this.vgap * 2;
  78.       return var2;
  79.    }
  80.  
  81.    public Dimension minimumLayoutSize(Container var1) {
  82.       Dimension var2 = new Dimension(0, 0);
  83.       int var3 = var1.getComponentCount();
  84.  
  85.       for(int var4 = 0; var4 < var3; ++var4) {
  86.          Component var5 = var1.getComponent(var4);
  87.          if (var5.visible) {
  88.             Dimension var6 = var5.getMinimumSize();
  89.             var2.height = Math.max(var2.height, var6.height);
  90.             if (var4 > 0) {
  91.                var2.width += this.hgap;
  92.             }
  93.  
  94.             var2.width += var6.width;
  95.          }
  96.       }
  97.  
  98.       Insets var7 = var1.getInsets();
  99.       var2.width += var7.left + var7.right + this.hgap * 2;
  100.       var2.height += var7.top + var7.bottom + this.vgap * 2;
  101.       return var2;
  102.    }
  103.  
  104.    private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  105.       switch (this.align) {
  106.          case 0:
  107.          default:
  108.             break;
  109.          case 1:
  110.             var2 += var4 / 2;
  111.             break;
  112.          case 2:
  113.             var2 += var4;
  114.       }
  115.  
  116.       for(int var8 = var6; var8 < var7; ++var8) {
  117.          Component var9 = var1.getComponent(var8);
  118.          if (var9.visible) {
  119.             var9.setLocation(var2, var3 + (var5 - var9.height) / 2);
  120.             var2 += this.hgap + var9.width;
  121.          }
  122.       }
  123.  
  124.    }
  125.  
  126.    public void layoutContainer(Container var1) {
  127.       Insets var2 = var1.getInsets();
  128.       int var3 = var1.width - (var2.left + var2.right + this.hgap * 2);
  129.       int var4 = var1.getComponentCount();
  130.       int var5 = 0;
  131.       int var6 = var2.top + this.vgap;
  132.       int var7 = 0;
  133.       int var8 = 0;
  134.  
  135.       for(int var9 = 0; var9 < var4; ++var9) {
  136.          Component var10 = var1.getComponent(var9);
  137.          if (var10.visible) {
  138.             Dimension var11 = var10.getPreferredSize();
  139.             var10.setSize(var11.width, var11.height);
  140.             if (var5 != 0 && var5 + var11.width > var3) {
  141.                this.moveComponents(var1, var2.left + this.hgap, var6, var3 - var5, var7, var8, var9);
  142.                var5 = var11.width;
  143.                var6 += this.vgap + var7;
  144.                var7 = var11.height;
  145.                var8 = var9;
  146.             } else {
  147.                if (var5 > 0) {
  148.                   var5 += this.hgap;
  149.                }
  150.  
  151.                var5 += var11.width;
  152.                var7 = Math.max(var7, var11.height);
  153.             }
  154.          }
  155.       }
  156.  
  157.       this.moveComponents(var1, var2.left + this.hgap, var6, var3 - var5, var7, var8, var4);
  158.    }
  159.  
  160.    public String toString() {
  161.       String var1 = "";
  162.       switch (this.align) {
  163.          case 0:
  164.             var1 = ",align=left";
  165.             break;
  166.          case 1:
  167.             var1 = ",align=center";
  168.             break;
  169.          case 2:
  170.             var1 = ",align=right";
  171.       }
  172.  
  173.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + var1 + "]";
  174.    }
  175. }
  176.