home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / FlowLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.9 KB  |  236 lines

  1. package java.awt;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.Serializable;
  6.  
  7. public class FlowLayout implements LayoutManager, Serializable {
  8.    public static final int LEFT = 0;
  9.    public static final int CENTER = 1;
  10.    public static final int RIGHT = 2;
  11.    public static final int LEADING = 3;
  12.    public static final int TRAILING = 4;
  13.    int align;
  14.    int newAlign;
  15.    int hgap;
  16.    int vgap;
  17.    private static final long serialVersionUID = -7262534875583282631L;
  18.    private static final int currentSerialVersion = 1;
  19.    private int serialVersionOnStream;
  20.  
  21.    public FlowLayout() {
  22.       this(1, 5, 5);
  23.    }
  24.  
  25.    public FlowLayout(int var1) {
  26.       this(var1, 5, 5);
  27.    }
  28.  
  29.    public FlowLayout(int var1, int var2, int var3) {
  30.       this.serialVersionOnStream = 1;
  31.       this.hgap = var2;
  32.       this.vgap = var3;
  33.       this.setAlignment(var1);
  34.    }
  35.  
  36.    public int getAlignment() {
  37.       return this.newAlign;
  38.    }
  39.  
  40.    public void setAlignment(int var1) {
  41.       this.newAlign = var1;
  42.       switch (var1) {
  43.          case 3:
  44.             this.align = 0;
  45.             break;
  46.          case 4:
  47.             this.align = 2;
  48.             break;
  49.          default:
  50.             this.align = var1;
  51.       }
  52.  
  53.    }
  54.  
  55.    public int getHgap() {
  56.       return this.hgap;
  57.    }
  58.  
  59.    public void setHgap(int var1) {
  60.       this.hgap = var1;
  61.    }
  62.  
  63.    public int getVgap() {
  64.       return this.vgap;
  65.    }
  66.  
  67.    public void setVgap(int var1) {
  68.       this.vgap = var1;
  69.    }
  70.  
  71.    public void addLayoutComponent(String var1, Component var2) {
  72.    }
  73.  
  74.    public void removeLayoutComponent(Component var1) {
  75.    }
  76.  
  77.    public Dimension preferredLayoutSize(Container var1) {
  78.       Object var2 = ((Component)var1).getTreeLock();
  79.       synchronized(var2) {
  80.          Dimension var3 = new Dimension(0, 0);
  81.          int var4 = var1.getComponentCount();
  82.          boolean var5 = true;
  83.  
  84.          for(int var6 = 0; var6 < var4; ++var6) {
  85.             Component var7 = var1.getComponent(var6);
  86.             if (var7.visible) {
  87.                Dimension var8 = var7.getPreferredSize();
  88.                var3.height = Math.max(var3.height, var8.height);
  89.                if (var5) {
  90.                   var5 = false;
  91.                } else {
  92.                   var3.width += this.hgap;
  93.                }
  94.  
  95.                var3.width += var8.width;
  96.             }
  97.          }
  98.  
  99.          Insets var11 = var1.getInsets();
  100.          var3.width += var11.left + var11.right + this.hgap * 2;
  101.          var3.height += var11.top + var11.bottom + this.vgap * 2;
  102.          return var3;
  103.       }
  104.    }
  105.  
  106.    public Dimension minimumLayoutSize(Container var1) {
  107.       Object var2 = ((Component)var1).getTreeLock();
  108.       synchronized(var2) {
  109.          Dimension var3 = new Dimension(0, 0);
  110.          int var4 = var1.getComponentCount();
  111.  
  112.          for(int var5 = 0; var5 < var4; ++var5) {
  113.             Component var6 = var1.getComponent(var5);
  114.             if (var6.visible) {
  115.                Dimension var7 = var6.getMinimumSize();
  116.                var3.height = Math.max(var3.height, var7.height);
  117.                if (var5 > 0) {
  118.                   var3.width += this.hgap;
  119.                }
  120.  
  121.                var3.width += var7.width;
  122.             }
  123.          }
  124.  
  125.          Insets var10 = var1.getInsets();
  126.          var3.width += var10.left + var10.right + this.hgap * 2;
  127.          var3.height += var10.top + var10.bottom + this.vgap * 2;
  128.          return var3;
  129.       }
  130.    }
  131.  
  132.    private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8) {
  133.       Object var9 = ((Component)var1).getTreeLock();
  134.       synchronized(var9) {
  135.          switch (this.newAlign) {
  136.             case 0:
  137.                var2 += var8 ? 0 : var4;
  138.                break;
  139.             case 1:
  140.                var2 += var4 / 2;
  141.                break;
  142.             case 2:
  143.                var2 += var8 ? var4 : 0;
  144.             case 3:
  145.             default:
  146.                break;
  147.             case 4:
  148.                var2 += var4;
  149.          }
  150.  
  151.          for(int var10 = var6; var10 < var7; ++var10) {
  152.             Component var11 = var1.getComponent(var10);
  153.             if (var11.visible) {
  154.                if (var8) {
  155.                   var11.setLocation(var2, var3 + (var5 - var11.height) / 2);
  156.                } else {
  157.                   var11.setLocation(var1.width - var2 - var11.width, var3 + (var5 - var11.height) / 2);
  158.                }
  159.  
  160.                var2 += var11.width + this.hgap;
  161.             }
  162.          }
  163.  
  164.       }
  165.    }
  166.  
  167.    public void layoutContainer(Container var1) {
  168.       Object var2 = ((Component)var1).getTreeLock();
  169.       synchronized(var2) {
  170.          Insets var3 = var1.getInsets();
  171.          int var4 = var1.width - (var3.left + var3.right + this.hgap * 2);
  172.          int var5 = var1.getComponentCount();
  173.          int var6 = 0;
  174.          int var7 = var3.top + this.vgap;
  175.          int var8 = 0;
  176.          int var9 = 0;
  177.          boolean var10 = ((Component)var1).getComponentOrientation().isLeftToRight();
  178.  
  179.          for(int var11 = 0; var11 < var5; ++var11) {
  180.             Component var12 = var1.getComponent(var11);
  181.             if (var12.visible) {
  182.                Dimension var13 = var12.getPreferredSize();
  183.                var12.setSize(var13.width, var13.height);
  184.                if (var6 != 0 && var6 + var13.width > var4) {
  185.                   this.moveComponents(var1, var3.left + this.hgap, var7, var4 - var6, var8, var9, var11, var10);
  186.                   var6 = var13.width;
  187.                   var7 += this.vgap + var8;
  188.                   var8 = var13.height;
  189.                   var9 = var11;
  190.                } else {
  191.                   if (var6 > 0) {
  192.                      var6 += this.hgap;
  193.                   }
  194.  
  195.                   var6 += var13.width;
  196.                   var8 = Math.max(var8, var13.height);
  197.                }
  198.             }
  199.          }
  200.  
  201.          this.moveComponents(var1, var3.left + this.hgap, var7, var4 - var6, var8, var9, var5, var10);
  202.       }
  203.    }
  204.  
  205.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  206.       var1.defaultReadObject();
  207.       if (this.serialVersionOnStream < 1) {
  208.          this.setAlignment(this.align);
  209.       }
  210.  
  211.       this.serialVersionOnStream = 1;
  212.    }
  213.  
  214.    public String toString() {
  215.       String var1 = "";
  216.       switch (this.align) {
  217.          case 0:
  218.             var1 = ",align=left";
  219.             break;
  220.          case 1:
  221.             var1 = ",align=center";
  222.             break;
  223.          case 2:
  224.             var1 = ",align=right";
  225.             break;
  226.          case 3:
  227.             var1 = ",align=leading";
  228.             break;
  229.          case 4:
  230.             var1 = ",align=trailing";
  231.       }
  232.  
  233.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + var1 + "]";
  234.    }
  235. }
  236.