home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2001 October / PCpro_2001_10.ISO / xml / xmlpro / data1.cab / Program_Executable_FILES / xmlpro.jar / DownLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-09-15  |  3.6 KB  |  180 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.io.Serializable;
  7.  
  8. public class DownLayout implements LayoutManager, Serializable {
  9.    public static final int TOP = 0;
  10.    public static final int MIDDLE = 1;
  11.    public static final int BOTTOM = 2;
  12.    int align;
  13.    int hgap;
  14.    int vgap;
  15.    private static final long serialVersionUID = -7262534875583282631L;
  16.  
  17.    public DownLayout() {
  18.       this(0, 5, 5);
  19.    }
  20.  
  21.    public DownLayout(int var1) {
  22.       this(var1, 3, 3);
  23.    }
  24.  
  25.    public DownLayout(int var1, int var2, int var3) {
  26.       this.align = var1;
  27.       this.hgap = var2;
  28.       this.vgap = var3;
  29.    }
  30.  
  31.    public void addLayoutComponent(String var1, Component var2) {
  32.    }
  33.  
  34.    public int getAlignment() {
  35.       return this.align;
  36.    }
  37.  
  38.    public int getHgap() {
  39.       return this.hgap;
  40.    }
  41.  
  42.    public int getVgap() {
  43.       return this.vgap;
  44.    }
  45.  
  46.    public void layoutContainer(Container var1) {
  47.       Insets var2 = var1.getInsets();
  48.       int var10001 = var2.top + var2.bottom;
  49.       int var3 = ((Component)var1).getSize().height - (var10001 + this.vgap * 2);
  50.       int var4 = var1.getComponentCount();
  51.       int var5 = var2.left + this.hgap;
  52.       int var6 = 0;
  53.       int var7 = 0;
  54.       int var8 = 0;
  55.  
  56.       for(int var9 = 0; var9 < var4; ++var9) {
  57.          Component var10 = var1.getComponent(var9);
  58.          if (var10.isVisible()) {
  59.             Dimension var11 = var10.getPreferredSize();
  60.             var10.setSize(var11.width, var11.height);
  61.             if (var6 != 0 && var6 + var11.height > var3) {
  62.                this.moveComponents(var1, var5, var2.top + this.vgap, var7, var3 - var6, var8, var9);
  63.                var6 = var11.height;
  64.                var5 += this.hgap + var7;
  65.                var7 = var11.width;
  66.                var8 = var9;
  67.             } else {
  68.                if (var6 > 0) {
  69.                   var6 += this.vgap;
  70.                }
  71.  
  72.                var6 += var11.height;
  73.                var7 = Math.max(var7, var11.width);
  74.             }
  75.          }
  76.       }
  77.  
  78.       this.moveComponents(var1, var5, var2.top + this.vgap, var7, var3 - var6, var8, var4);
  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.isVisible()) {
  88.             Dimension var6 = var5.getMinimumSize();
  89.             var2.width = Math.max(var2.width, var6.width);
  90.             if (var4 > 0) {
  91.                var2.height += this.vgap;
  92.             }
  93.  
  94.             var2.height += var6.height;
  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.             var3 += var5 / 2;
  111.             break;
  112.          case 2:
  113.             var3 += var5;
  114.       }
  115.  
  116.       for(int var8 = var6; var8 < var7; ++var8) {
  117.          Component var9 = var1.getComponent(var8);
  118.          if (var9.isVisible()) {
  119.             var9.setLocation(var2, var3);
  120.             var3 += this.vgap + var9.getSize().height;
  121.          }
  122.       }
  123.  
  124.    }
  125.  
  126.    public Dimension preferredLayoutSize(Container var1) {
  127.       Dimension var2 = new Dimension(0, 0);
  128.       int var3 = var1.getComponentCount();
  129.  
  130.       for(int var4 = 0; var4 < var3; ++var4) {
  131.          Component var5 = var1.getComponent(var4);
  132.          if (var5.isVisible()) {
  133.             Dimension var6 = var5.getPreferredSize();
  134.             var2.width = Math.max(var2.width, var6.width);
  135.             if (var4 > 0) {
  136.                var2.height += this.vgap;
  137.             }
  138.  
  139.             var2.height += var6.height;
  140.          }
  141.       }
  142.  
  143.       Insets var7 = var1.getInsets();
  144.       var2.width += var7.left + var7.right + this.hgap * 2;
  145.       var2.height += var7.top + var7.bottom + this.vgap * 2;
  146.       return var2;
  147.    }
  148.  
  149.    public void removeLayoutComponent(Component var1) {
  150.    }
  151.  
  152.    public void setAlignment(int var1) {
  153.       this.align = var1;
  154.    }
  155.  
  156.    public void setHgap(int var1) {
  157.       this.hgap = var1;
  158.    }
  159.  
  160.    public void setVgap(int var1) {
  161.       this.vgap = var1;
  162.    }
  163.  
  164.    public String toString() {
  165.       String var1 = "";
  166.       switch (this.align) {
  167.          case 0:
  168.             var1 = ",align=top";
  169.             break;
  170.          case 1:
  171.             var1 = ",align=middle";
  172.             break;
  173.          case 2:
  174.             var1 = ",align=bottom";
  175.       }
  176.  
  177.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + var1 + "]";
  178.    }
  179. }
  180.