home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPSingle.jar / JDPRowLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-03-03  |  4.9 KB  |  356 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.awt.List;
  7. import java.awt.Scrollbar;
  8.  
  9. public class JDPRowLayout implements LayoutManager {
  10.    static boolean activated;
  11.    int hgap;
  12.    int vgap;
  13.    Component[] leftc;
  14.    Component[] rightc;
  15.    Scrollbar scrollEast;
  16.    Scrollbar scrollSouth;
  17.    int lastleftpos = -1;
  18.    int lastrightpos = -1;
  19.    int middlepos;
  20.    boolean staticLayout;
  21.  
  22.    public Dimension minimumLayoutSize(Container var1) {
  23.       Dimension var2 = new Dimension(0, 0);
  24.       int var3 = 0;
  25.       int var4 = 0;
  26.       int var5 = 0;
  27.       int var6 = 0;
  28.  
  29.       for(int var7 = 0; var7 <= this.lastleftpos; ++var7) {
  30.          if (this.leftc[var7] != null && this.leftc[var7].isVisible()) {
  31.             Dimension var8 = this.leftc[var7].minimumSize();
  32.             var3 = Math.max(var3, var8.width);
  33.             var5 = var5 + var8.height + this.vgap;
  34.          }
  35.       }
  36.  
  37.       for(int var9 = 0; var9 <= this.lastrightpos; ++var9) {
  38.          if (this.rightc[var9] != null && this.rightc[var9].isVisible()) {
  39.             Dimension var11 = this.rightc[var9].minimumSize();
  40.             var4 = Math.max(var4, var11.width);
  41.             var6 = var6 + var11.height + this.vgap;
  42.          }
  43.       }
  44.  
  45.       var2.width = var3 + this.hgap + var4 + 10;
  46.       var2.height = Math.max(var5, var6) + 10;
  47.       Insets var10 = var1.insets();
  48.       var2.width += var10.left + var10.right;
  49.       var2.height += var10.top + var10.bottom;
  50.       this.middlepos = var3;
  51.       if (this.middlepos > 0) {
  52.          this.middlepos += this.hgap;
  53.       }
  54.  
  55.       return var2;
  56.    }
  57.  
  58.    final synchronized void ensureCapacity(int var1) {
  59.       int var2 = this.leftc.length;
  60.       if (var1 > var2 - 1) {
  61.          Component[] var3 = this.leftc;
  62.          Component[] var4 = this.rightc;
  63.          int var5 = var2 + 10;
  64.          if (var5 < var1) {
  65.             var5 = var1;
  66.          }
  67.  
  68.          this.leftc = new Component[var5];
  69.          System.arraycopy(var3, 0, this.leftc, 0, this.lastleftpos + 1);
  70.          this.rightc = new Component[var5];
  71.          System.arraycopy(var4, 0, this.rightc, 0, this.lastrightpos + 1);
  72.       }
  73.  
  74.    }
  75.  
  76.    public String toString() {
  77.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + "]";
  78.    }
  79.  
  80.    public void removeLayoutComponent(Component var1) {
  81.       for(int var2 = 0; var2 <= this.lastleftpos; ++var2) {
  82.          if (this.leftc[var2] != null && var1.equals(this.leftc[var2])) {
  83.             if (this.staticLayout) {
  84.                this.leftc[var2] = null;
  85.                return;
  86.             }
  87.  
  88.             while(var2 < this.lastleftpos) {
  89.                this.leftc[var2] = this.leftc[var2 + 1];
  90.                ++var2;
  91.             }
  92.  
  93.             this.lastleftpos += -1;
  94.             this.leftc[var2] = null;
  95.             return;
  96.          }
  97.       }
  98.  
  99.       for(int var3 = 0; var3 <= this.lastrightpos; ++var3) {
  100.          if (this.rightc[var3] != null && var1.equals(this.rightc[var3])) {
  101.             if (this.staticLayout) {
  102.                this.rightc[var3] = null;
  103.                return;
  104.             }
  105.  
  106.             while(var3 < this.lastrightpos) {
  107.                this.rightc[var3] = this.rightc[var3 + 1];
  108.                ++var3;
  109.             }
  110.  
  111.             this.lastrightpos += -1;
  112.             this.rightc[var3] = null;
  113.             return;
  114.          }
  115.       }
  116.  
  117.    }
  118.  
  119.    public Dimension preferredLayoutSize(Container var1) {
  120.       Dimension var2 = new Dimension(0, 0);
  121.       int var3 = 0;
  122.       int var4 = 0;
  123.       int var5 = 0;
  124.       int var6 = 0;
  125.  
  126.       for(int var7 = 0; var7 <= this.lastleftpos; ++var7) {
  127.          if (this.leftc[var7] != null && this.leftc[var7].isVisible()) {
  128.             Dimension var8 = this.leftc[var7].preferredSize();
  129.             var3 = Math.max(var3, var8.width);
  130.             var5 = var5 + var8.height + this.vgap;
  131.          }
  132.       }
  133.  
  134.       for(int var9 = 0; var9 <= this.lastrightpos; ++var9) {
  135.          if (this.rightc[var9] != null && this.rightc[var9].isVisible()) {
  136.             Dimension var11 = this.rightc[var9].preferredSize();
  137.             var4 = Math.max(var4, var11.width);
  138.             var6 = var6 + var11.height + this.vgap;
  139.          }
  140.       }
  141.  
  142.       var2.width = var3 + this.hgap + var4 + 10;
  143.       var2.height = Math.max(var5, var6) + 10;
  144.       Insets var10 = var1.insets();
  145.       var2.width += var10.left + var10.right;
  146.       var2.height += var10.top + var10.bottom;
  147.       this.middlepos = var3;
  148.       if (this.middlepos > 0) {
  149.          this.middlepos += this.hgap;
  150.       }
  151.  
  152.       return var2;
  153.    }
  154.  
  155.    public void layoutContainer(Container var1) {
  156.       Insets var2 = var1.insets();
  157.       Dimension var3 = var1.preferredSize();
  158.       Dimension var4 = ((Component)var1).size();
  159.       int var5 = var2.top;
  160.       int var6 = var2.left;
  161.       int var7 = 0;
  162.       int var8 = 0;
  163.       int var9 = Math.max(this.lastleftpos, this.lastrightpos);
  164.       if (this.scrollEast != null) {
  165.          if (var4.height >= var3.height || this.scrollEast.getValue() < 0) {
  166.             this.scrollEast.setValue(0);
  167.          }
  168.  
  169.          var5 -= this.scrollEast.getValue();
  170.       }
  171.  
  172.       if (this.scrollSouth != null) {
  173.          if (var4.width >= var3.width || this.scrollSouth.getValue() < 0) {
  174.             this.scrollSouth.setValue(0);
  175.          }
  176.  
  177.          var6 -= this.scrollSouth.getValue();
  178.       }
  179.  
  180.       for(int var10 = 0; var10 <= var9; ++var10) {
  181.          var7 = 0;
  182.          if (this.leftc[var10] != null && this.leftc[var10].isVisible()) {
  183.             Dimension var11 = this.leftc[var10].preferredSize();
  184.             if (!(this.leftc[var10] instanceof List) && !(this.leftc[var10] instanceof JDPList)) {
  185.                this.leftc[var10].reshape(var6, var5, var11.width, var11.height);
  186.             } else {
  187.                this.leftc[var10].reshape(var6, var5, this.middlepos - this.hgap, var11.height);
  188.             }
  189.  
  190.             var7 = var11.height;
  191.          }
  192.  
  193.          var8 = 0;
  194.          if (this.rightc[var10] != null && this.rightc[var10].isVisible()) {
  195.             Dimension var15 = this.rightc[var10].preferredSize();
  196.             if (!(this.leftc[var10] instanceof List) && !(this.leftc[var10] instanceof JDPList)) {
  197.                this.rightc[var10].reshape(var6 + this.middlepos, var5, var15.width, var15.height);
  198.             } else {
  199.                this.rightc[var10].reshape(var6 + this.middlepos, var5, var4.width - (var6 + this.middlepos), var15.height);
  200.             }
  201.  
  202.             var8 = var15.height;
  203.          }
  204.  
  205.          var5 += Math.max(var7, var8) + this.vgap;
  206.       }
  207.  
  208.       byte var14 = 0;
  209.       byte var16 = 0;
  210.       if (this.scrollEast != null) {
  211.          if (var4.width + 10 < var3.width) {
  212.             var16 = 10;
  213.          }
  214.  
  215.          if (var4.height + 12 - var16 >= var3.height) {
  216.             this.scrollEast.hide();
  217.             var14 = 0;
  218.          } else {
  219.             this.scrollEast.show();
  220.             var14 = 9;
  221.             if (var4.width - 2 >= var3.width) {
  222.                this.scrollEast.reshape(var4.width - 12, var2.top, 12, var4.height - var2.top);
  223.             } else {
  224.                this.scrollEast.reshape(var4.width - 12, var2.top, 12, var4.height - var2.top - 12);
  225.             }
  226.          }
  227.       }
  228.  
  229.       if (this.scrollSouth != null) {
  230.          if (var4.width + 12 - var14 >= var3.width) {
  231.             this.scrollSouth.hide();
  232.          } else {
  233.             this.scrollSouth.show();
  234.             this.scrollSouth.reshape(var2.left, var4.height - 12, var4.width - var2.left, 12);
  235.          }
  236.       }
  237.  
  238.       this.reDrawPanel(var1);
  239.    }
  240.  
  241.    public void addLayoutComponent(String var1, Component var2) {
  242.       activated = JDPUser.classactivated;
  243.       if (!activated) {
  244.          System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
  245.       } else {
  246.          this.ensureCapacity(this.lastleftpos + 1);
  247.          this.ensureCapacity(this.lastrightpos + 1);
  248.          if (this.staticLayout) {
  249.             if (var1.equals("Left")) {
  250.                for(int var4 = 0; var4 < this.leftc.length; ++var4) {
  251.                   if (this.leftc[var4] == null) {
  252.                      this.leftc[var4] = var2;
  253.                      ++this.lastleftpos;
  254.                      return;
  255.                   }
  256.                }
  257.  
  258.                return;
  259.             }
  260.  
  261.             if (var1.equals("Right")) {
  262.                for(int var3 = 0; var3 < this.rightc.length; ++var3) {
  263.                   if (this.rightc[var3] == null) {
  264.                      this.rightc[var3] = var2;
  265.                      ++this.lastrightpos;
  266.                      return;
  267.                   }
  268.                }
  269.  
  270.                return;
  271.             }
  272.  
  273.             if (var1.equals("scrollEast")) {
  274.                this.scrollEast = (Scrollbar)var2;
  275.                return;
  276.             }
  277.  
  278.             if (var1.equals("scrollSouth")) {
  279.                this.scrollSouth = (Scrollbar)var2;
  280.                return;
  281.             }
  282.          } else {
  283.             if (var1.equals("Left")) {
  284.                this.leftc[++this.lastleftpos] = var2;
  285.                return;
  286.             }
  287.  
  288.             if (var1.equals("Right")) {
  289.                this.rightc[++this.lastrightpos] = var2;
  290.                return;
  291.             }
  292.  
  293.             if (var1.equals("scrollEast")) {
  294.                this.scrollEast = (Scrollbar)var2;
  295.                return;
  296.             }
  297.  
  298.             if (var1.equals("scrollSouth")) {
  299.                this.scrollSouth = (Scrollbar)var2;
  300.                return;
  301.             }
  302.  
  303.             this.leftc[++this.lastleftpos] = var2;
  304.          }
  305.  
  306.       }
  307.    }
  308.  
  309.    public JDPRowLayout() {
  310.       this.leftc = new Component[10];
  311.       this.rightc = new Component[10];
  312.    }
  313.  
  314.    public JDPRowLayout(int var1, int var2) {
  315.       this.hgap = var1;
  316.       this.vgap = var2;
  317.       this.leftc = new Component[10];
  318.       this.rightc = new Component[10];
  319.    }
  320.  
  321.    public JDPRowLayout(int var1, int var2, boolean var3) {
  322.       this.hgap = var1;
  323.       this.vgap = var2;
  324.       this.staticLayout = var3;
  325.       this.leftc = new Component[10];
  326.       this.rightc = new Component[10];
  327.    }
  328.  
  329.    public void reDrawPanel(Container var1) {
  330.       Dimension var2 = ((Component)var1).size();
  331.       Dimension var3 = var1.preferredSize();
  332.       if (this.scrollEast != null) {
  333.          int var4 = 0;
  334.          if (System.getProperty("java.vendor").startsWith("Netscape") && System.getProperty("java.version").compareTo("1.1.5") < 0 || System.getProperty("java.vendor").startsWith("Microsoft") && System.getProperty("java.version").compareTo("1.1.4") < 0) {
  335.             var4 = var2.height;
  336.          }
  337.  
  338.          if (var3.width - 10 >= var2.width) {
  339.             this.scrollEast.setValues(this.scrollEast.getValue(), var2.height, 0, var3.height - var4);
  340.          } else {
  341.             this.scrollEast.setValues(this.scrollEast.getValue(), var2.height, 0, var3.height + 5 - var4);
  342.          }
  343.       }
  344.  
  345.       if (this.scrollSouth != null) {
  346.          int var5 = 0;
  347.          if (System.getProperty("java.vendor").startsWith("Netscape") && System.getProperty("java.version").compareTo("1.1.5") < 0 || System.getProperty("java.vendor").startsWith("Microsoft") && System.getProperty("java.version").compareTo("1.1.4") < 0) {
  348.             var5 = var2.width;
  349.          }
  350.  
  351.          this.scrollSouth.setValues(this.scrollSouth.getValue(), var2.width, 0, var3.width - var5);
  352.       }
  353.  
  354.    }
  355. }
  356.