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 / javax / swing / BoxLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.8 KB  |  169 lines

  1. package javax.swing;
  2.  
  3. import java.awt.AWTError;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Insets;
  8. import java.awt.LayoutManager2;
  9. import java.io.PrintStream;
  10. import java.io.Serializable;
  11.  
  12. public class BoxLayout implements LayoutManager2, Serializable {
  13.    public static final int X_AXIS = 0;
  14.    public static final int Y_AXIS = 1;
  15.    private int axis;
  16.    private Container target;
  17.    private transient SizeRequirements[] xChildren;
  18.    private transient SizeRequirements[] yChildren;
  19.    private transient SizeRequirements xTotal;
  20.    private transient SizeRequirements yTotal;
  21.    private transient PrintStream dbg;
  22.  
  23.    public BoxLayout(Container var1, int var2) {
  24.       if (var2 != 0 && var2 != 1) {
  25.          throw new AWTError("Invalid axis");
  26.       } else {
  27.          this.axis = var2;
  28.          this.target = var1;
  29.       }
  30.    }
  31.  
  32.    BoxLayout(Container var1, int var2, PrintStream var3) {
  33.       this(var1, var2);
  34.       this.dbg = var3;
  35.    }
  36.  
  37.    public void invalidateLayout(Container var1) {
  38.       this.checkContainer(var1);
  39.       this.xChildren = null;
  40.       this.yChildren = null;
  41.       this.xTotal = null;
  42.       this.yTotal = null;
  43.    }
  44.  
  45.    public void addLayoutComponent(String var1, Component var2) {
  46.    }
  47.  
  48.    public void removeLayoutComponent(Component var1) {
  49.    }
  50.  
  51.    public void addLayoutComponent(Component var1, Object var2) {
  52.    }
  53.  
  54.    public Dimension preferredLayoutSize(Container var1) {
  55.       this.checkContainer(var1);
  56.       this.checkRequests();
  57.       Dimension var2 = new Dimension(this.xTotal.preferred, this.yTotal.preferred);
  58.       Insets var3 = var1.getInsets();
  59.       var2.width = (int)Math.min((long)var2.width + (long)var3.left + (long)var3.right, 2147483647L);
  60.       var2.height = (int)Math.min((long)var2.height + (long)var3.top + (long)var3.bottom, 2147483647L);
  61.       return var2;
  62.    }
  63.  
  64.    public Dimension minimumLayoutSize(Container var1) {
  65.       this.checkContainer(var1);
  66.       this.checkRequests();
  67.       Dimension var2 = new Dimension(this.xTotal.minimum, this.yTotal.minimum);
  68.       Insets var3 = var1.getInsets();
  69.       var2.width = (int)Math.min((long)var2.width + (long)var3.left + (long)var3.right, 2147483647L);
  70.       var2.height = (int)Math.min((long)var2.height + (long)var3.top + (long)var3.bottom, 2147483647L);
  71.       return var2;
  72.    }
  73.  
  74.    public Dimension maximumLayoutSize(Container var1) {
  75.       this.checkContainer(var1);
  76.       this.checkRequests();
  77.       Dimension var2 = new Dimension(this.xTotal.maximum, this.yTotal.maximum);
  78.       Insets var3 = var1.getInsets();
  79.       var2.width = (int)Math.min((long)var2.width + (long)var3.left + (long)var3.right, 2147483647L);
  80.       var2.height = (int)Math.min((long)var2.height + (long)var3.top + (long)var3.bottom, 2147483647L);
  81.       return var2;
  82.    }
  83.  
  84.    public float getLayoutAlignmentX(Container var1) {
  85.       this.checkContainer(var1);
  86.       this.checkRequests();
  87.       return this.xTotal.alignment;
  88.    }
  89.  
  90.    public float getLayoutAlignmentY(Container var1) {
  91.       this.checkContainer(var1);
  92.       this.checkRequests();
  93.       return this.yTotal.alignment;
  94.    }
  95.  
  96.    public void layoutContainer(Container var1) {
  97.       this.checkContainer(var1);
  98.       this.checkRequests();
  99.       int var2 = var1.getComponentCount();
  100.       int[] var3 = new int[var2];
  101.       int[] var4 = new int[var2];
  102.       int[] var5 = new int[var2];
  103.       int[] var6 = new int[var2];
  104.       Dimension var7 = ((Component)var1).getSize();
  105.       Insets var8 = var1.getInsets();
  106.       var7.width -= var8.left + var8.right;
  107.       var7.height -= var8.top + var8.bottom;
  108.       if (this.axis == 0) {
  109.          SizeRequirements.calculateTiledPositions(var7.width, this.xTotal, this.xChildren, var3, var4);
  110.          SizeRequirements.calculateAlignedPositions(var7.height, this.yTotal, this.yChildren, var5, var6);
  111.       } else {
  112.          SizeRequirements.calculateAlignedPositions(var7.width, this.xTotal, this.xChildren, var3, var4);
  113.          SizeRequirements.calculateTiledPositions(var7.height, this.yTotal, this.yChildren, var5, var6);
  114.       }
  115.  
  116.       for(int var9 = 0; var9 < var2; ++var9) {
  117.          Component var10 = var1.getComponent(var9);
  118.          var10.setBounds((int)Math.min((long)var8.left + (long)var3[var9], 2147483647L), (int)Math.min((long)var8.top + (long)var5[var9], 2147483647L), var4[var9], var6[var9]);
  119.       }
  120.  
  121.       if (this.dbg != null) {
  122.          for(int var12 = 0; var12 < var2; ++var12) {
  123.             Component var11 = var1.getComponent(var12);
  124.             this.dbg.println(var11.toString());
  125.             this.dbg.println("X: " + this.xChildren[var12]);
  126.             this.dbg.println("Y: " + this.yChildren[var12]);
  127.          }
  128.       }
  129.  
  130.    }
  131.  
  132.    void checkContainer(Container var1) {
  133.       if (this.target != var1) {
  134.          throw new AWTError("BoxLayout can't be shared");
  135.       }
  136.    }
  137.  
  138.    void checkRequests() {
  139.       if (this.xChildren == null || this.yChildren == null) {
  140.          int var1 = this.target.getComponentCount();
  141.          this.xChildren = new SizeRequirements[var1];
  142.          this.yChildren = new SizeRequirements[var1];
  143.  
  144.          for(int var2 = 0; var2 < var1; ++var2) {
  145.             Component var3 = this.target.getComponent(var2);
  146.             if (!var3.isVisible()) {
  147.                this.xChildren[var2] = new SizeRequirements(0, 0, 0, var3.getAlignmentX());
  148.                this.yChildren[var2] = new SizeRequirements(0, 0, 0, var3.getAlignmentY());
  149.             } else {
  150.                Dimension var4 = var3.getMinimumSize();
  151.                Dimension var5 = var3.getPreferredSize();
  152.                Dimension var6 = var3.getMaximumSize();
  153.                this.xChildren[var2] = new SizeRequirements(var4.width, var5.width, var6.width, var3.getAlignmentX());
  154.                this.yChildren[var2] = new SizeRequirements(var4.height, var5.height, var6.height, var3.getAlignmentY());
  155.             }
  156.          }
  157.  
  158.          if (this.axis == 0) {
  159.             this.xTotal = SizeRequirements.getTiledSizeRequirements(this.xChildren);
  160.             this.yTotal = SizeRequirements.getAlignedSizeRequirements(this.yChildren);
  161.          } else {
  162.             this.xTotal = SizeRequirements.getAlignedSizeRequirements(this.xChildren);
  163.             this.yTotal = SizeRequirements.getTiledSizeRequirements(this.yChildren);
  164.          }
  165.       }
  166.  
  167.    }
  168. }
  169.