home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / Internet / Java / ui / layout / example / DiagonalLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1978-03-06  |  2.8 KB  |  138 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.  
  7. public class DiagonalLayout implements LayoutManager {
  8.    private int vgap;
  9.    private int minWidth;
  10.    private int minHeight;
  11.    private int preferredWidth;
  12.    private int preferredHeight;
  13.    private boolean sizeUnknown;
  14.  
  15.    public DiagonalLayout() {
  16.       this(5);
  17.    }
  18.  
  19.    public DiagonalLayout(int var1) {
  20.       this.sizeUnknown = true;
  21.       this.vgap = var1;
  22.    }
  23.  
  24.    public void addLayoutComponent(String var1, Component var2) {
  25.    }
  26.  
  27.    public void removeLayoutComponent(Component var1) {
  28.    }
  29.  
  30.    private void setSizes(Container var1) {
  31.       int var2 = var1.countComponents();
  32.       Object var3 = null;
  33.       this.preferredWidth = 0;
  34.       this.preferredHeight = 0;
  35.       this.minWidth = 0;
  36.       this.minHeight = 0;
  37.  
  38.       for(int var4 = 0; var4 < var2; ++var4) {
  39.          Component var5 = var1.getComponent(var4);
  40.          if (var5.isVisible()) {
  41.             Dimension var6 = var5.preferredSize();
  42.             if (var4 > 0) {
  43.                this.preferredWidth += var6.width / 2;
  44.                this.preferredHeight += this.vgap;
  45.             } else {
  46.                this.preferredWidth = var6.width;
  47.             }
  48.  
  49.             this.preferredHeight += var6.height;
  50.             this.minWidth = Math.max(var5.minimumSize().width, this.minWidth);
  51.             this.minHeight = this.preferredHeight;
  52.          }
  53.       }
  54.  
  55.    }
  56.  
  57.    public Dimension preferredLayoutSize(Container var1) {
  58.       Dimension var2 = new Dimension(0, 0);
  59.       var1.countComponents();
  60.       this.setSizes(var1);
  61.       Insets var3 = var1.insets();
  62.       var2.width = this.preferredWidth + var3.left + var3.right;
  63.       var2.height = this.preferredHeight + var3.top + var3.bottom;
  64.       this.sizeUnknown = false;
  65.       return var2;
  66.    }
  67.  
  68.    public Dimension minimumLayoutSize(Container var1) {
  69.       Dimension var2 = new Dimension(0, 0);
  70.       var1.countComponents();
  71.       Insets var3 = var1.insets();
  72.       var2.width = this.minWidth + var3.left + var3.right;
  73.       var2.height = this.minHeight + var3.top + var3.bottom;
  74.       this.sizeUnknown = false;
  75.       return var2;
  76.    }
  77.  
  78.    public void layoutContainer(Container var1) {
  79.       Insets var2 = var1.insets();
  80.       int var10001 = var2.left + var2.right;
  81.       int var3 = ((Component)var1).size().width - var10001;
  82.       var10001 = var2.top + var2.bottom;
  83.       int var4 = ((Component)var1).size().height - var10001;
  84.       int var5 = var1.countComponents();
  85.       int var6 = 0;
  86.       int var7 = 0;
  87.       int var8 = 0;
  88.       int var9 = var2.top;
  89.       int var10 = 0;
  90.       int var11 = 0;
  91.       boolean var12 = false;
  92.       if (this.sizeUnknown) {
  93.          this.setSizes(var1);
  94.       }
  95.  
  96.       if (var3 <= this.minWidth) {
  97.          var12 = true;
  98.       }
  99.  
  100.       if (var3 != this.preferredWidth) {
  101.          var10 = (var3 - this.preferredWidth) / (var5 - 1);
  102.       }
  103.  
  104.       if (var4 > this.preferredHeight) {
  105.          var11 = (var4 - this.preferredHeight) / (var5 - 1);
  106.       }
  107.  
  108.       for(int var13 = 0; var13 < var5; ++var13) {
  109.          Component var14 = var1.getComponent(var13);
  110.          if (var14.isVisible()) {
  111.             Dimension var15 = var14.preferredSize();
  112.             if (var13 > 0) {
  113.                if (!var12) {
  114.                   var8 += var6 / 2 + var10;
  115.                }
  116.  
  117.                var9 += var7 + this.vgap + var11;
  118.             }
  119.  
  120.             if (!var12 && var8 + var15.width > ((Component)var1).size().width - var2.right) {
  121.                var8 = ((Component)var1).size().width - var2.bottom - var15.width;
  122.             }
  123.  
  124.             ((Component)var1).size();
  125.             var14.reshape(var8, var9, var15.width, var15.height);
  126.             var6 = var15.width;
  127.             var7 = var15.height;
  128.          }
  129.       }
  130.  
  131.    }
  132.  
  133.    public String toString() {
  134.       String var1 = "";
  135.       return this.getClass().getName() + "[vgap=" + this.vgap + var1 + "]";
  136.    }
  137. }
  138.