home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / awt / CardLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  5.1 KB  |  324 lines

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6.  
  7. public class CardLayout implements LayoutManager2, Serializable {
  8.    Hashtable tab;
  9.    int hgap;
  10.    int vgap;
  11.  
  12.    public CardLayout() {
  13.       this(0, 0);
  14.    }
  15.  
  16.    public CardLayout(int var1, int var2) {
  17.       this.tab = new Hashtable();
  18.       this.hgap = var1;
  19.       this.vgap = var2;
  20.    }
  21.  
  22.    public int getHgap() {
  23.       return this.hgap;
  24.    }
  25.  
  26.    public void setHgap(int var1) {
  27.       this.hgap = var1;
  28.    }
  29.  
  30.    public int getVgap() {
  31.       return this.vgap;
  32.    }
  33.  
  34.    public void setVgap(int var1) {
  35.       this.vgap = var1;
  36.    }
  37.  
  38.    public void addLayoutComponent(Component var1, Object var2) {
  39.       Object var3 = var1.getTreeLock();
  40.       synchronized(var3){}
  41.  
  42.       try {
  43.          if (!(var2 instanceof String)) {
  44.             throw new IllegalArgumentException("cannot add to layout: constraint must be a string");
  45.          }
  46.  
  47.          this.addLayoutComponent((String)var2, var1);
  48.       } catch (Throwable var5) {
  49.          throw var5;
  50.       }
  51.  
  52.    }
  53.  
  54.    /** @deprecated */
  55.    public void addLayoutComponent(String var1, Component var2) {
  56.       Object var3 = var2.getTreeLock();
  57.       synchronized(var3){}
  58.  
  59.       try {
  60.          if (this.tab.size() > 0) {
  61.             var2.hide();
  62.          }
  63.  
  64.          this.tab.put(var1, var2);
  65.       } catch (Throwable var5) {
  66.          throw var5;
  67.       }
  68.  
  69.    }
  70.  
  71.    public void removeLayoutComponent(Component var1) {
  72.       Object var2 = var1.getTreeLock();
  73.       synchronized(var2){}
  74.  
  75.       try {
  76.          Enumeration var4 = this.tab.keys();
  77.  
  78.          String var5;
  79.          do {
  80.             if (!var4.hasMoreElements()) {
  81.                return;
  82.             }
  83.  
  84.             var5 = (String)var4.nextElement();
  85.          } while(this.tab.get(var5) != var1);
  86.  
  87.          this.tab.remove(var5);
  88.       } catch (Throwable var7) {
  89.          throw var7;
  90.       }
  91.  
  92.    }
  93.  
  94.    public Dimension preferredLayoutSize(Container var1) {
  95.       Object var3 = ((Component)var1).getTreeLock();
  96.       synchronized(var3){}
  97.  
  98.       Dimension var2;
  99.       try {
  100.          Insets var5 = var1.getInsets();
  101.          int var6 = var1.getComponentCount();
  102.          int var7 = 0;
  103.          int var8 = 0;
  104.  
  105.          for(int var9 = 0; var9 < var6; ++var9) {
  106.             Component var10 = var1.getComponent(var9);
  107.             Dimension var11 = var10.getPreferredSize();
  108.             if (var11.width > var7) {
  109.                var7 = var11.width;
  110.             }
  111.  
  112.             if (var11.height > var8) {
  113.                var8 = var11.height;
  114.             }
  115.          }
  116.  
  117.          var2 = new Dimension(var5.left + var5.right + var7 + this.hgap * 2, var5.top + var5.bottom + var8 + this.vgap * 2);
  118.       } catch (Throwable var13) {
  119.          throw var13;
  120.       }
  121.  
  122.       return var2;
  123.    }
  124.  
  125.    public Dimension minimumLayoutSize(Container var1) {
  126.       Object var3 = ((Component)var1).getTreeLock();
  127.       synchronized(var3){}
  128.  
  129.       Dimension var2;
  130.       try {
  131.          Insets var5 = var1.getInsets();
  132.          int var6 = var1.getComponentCount();
  133.          int var7 = 0;
  134.          int var8 = 0;
  135.  
  136.          for(int var9 = 0; var9 < var6; ++var9) {
  137.             Component var10 = var1.getComponent(var9);
  138.             Dimension var11 = var10.getMinimumSize();
  139.             if (var11.width > var7) {
  140.                var7 = var11.width;
  141.             }
  142.  
  143.             if (var11.height > var8) {
  144.                var8 = var11.height;
  145.             }
  146.          }
  147.  
  148.          var2 = new Dimension(var5.left + var5.right + var7 + this.hgap * 2, var5.top + var5.bottom + var8 + this.vgap * 2);
  149.       } catch (Throwable var13) {
  150.          throw var13;
  151.       }
  152.  
  153.       return var2;
  154.    }
  155.  
  156.    public Dimension maximumLayoutSize(Container var1) {
  157.       return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
  158.    }
  159.  
  160.    public float getLayoutAlignmentX(Container var1) {
  161.       return 0.5F;
  162.    }
  163.  
  164.    public float getLayoutAlignmentY(Container var1) {
  165.       return 0.5F;
  166.    }
  167.  
  168.    public void invalidateLayout(Container var1) {
  169.    }
  170.  
  171.    public void layoutContainer(Container var1) {
  172.       Object var2 = ((Component)var1).getTreeLock();
  173.       synchronized(var2){}
  174.  
  175.       try {
  176.          Insets var4 = var1.getInsets();
  177.          int var5 = var1.getComponentCount();
  178.  
  179.          for(int var6 = 0; var6 < var5; ++var6) {
  180.             Component var7 = var1.getComponent(var6);
  181.             if (var7.visible) {
  182.                var7.setBounds(this.hgap + var4.left, this.vgap + var4.top, var1.width - (this.hgap * 2 + var4.left + var4.right), var1.height - (this.vgap * 2 + var4.top + var4.bottom));
  183.             }
  184.          }
  185.       } catch (Throwable var9) {
  186.          throw var9;
  187.       }
  188.  
  189.    }
  190.  
  191.    void checkLayout(Container var1) {
  192.       if (var1.getLayout() != this) {
  193.          throw new IllegalArgumentException("wrong parent for CardLayout");
  194.       }
  195.    }
  196.  
  197.    public void first(Container var1) {
  198.       Object var2 = ((Component)var1).getTreeLock();
  199.       synchronized(var2){}
  200.  
  201.       try {
  202.          this.checkLayout(var1);
  203.          int var4 = var1.getComponentCount();
  204.  
  205.          for(int var5 = 0; var5 < var4; ++var5) {
  206.             Component var6 = var1.getComponent(var5);
  207.             if (var6.visible) {
  208.                var6.hide();
  209.                var6 = var1.getComponent(0);
  210.                var6.show();
  211.                var1.validate();
  212.                return;
  213.             }
  214.          }
  215.  
  216.       } catch (Throwable var8) {
  217.          throw var8;
  218.       }
  219.    }
  220.  
  221.    public void next(Container var1) {
  222.       Object var2 = ((Component)var1).getTreeLock();
  223.       synchronized(var2){}
  224.  
  225.       try {
  226.          this.checkLayout(var1);
  227.          int var4 = var1.getComponentCount();
  228.  
  229.          for(int var5 = 0; var5 < var4; ++var5) {
  230.             Component var6 = var1.getComponent(var5);
  231.             if (var6.visible) {
  232.                var6.hide();
  233.                var6 = var1.getComponent(var5 + 1 < var4 ? var5 + 1 : 0);
  234.                var6.show();
  235.                var1.validate();
  236.                return;
  237.             }
  238.          }
  239.  
  240.       } catch (Throwable var8) {
  241.          throw var8;
  242.       }
  243.    }
  244.  
  245.    public void previous(Container var1) {
  246.       Object var2 = ((Component)var1).getTreeLock();
  247.       synchronized(var2){}
  248.  
  249.       try {
  250.          this.checkLayout(var1);
  251.          int var4 = var1.getComponentCount();
  252.  
  253.          for(int var5 = 0; var5 < var4; ++var5) {
  254.             Component var6 = var1.getComponent(var5);
  255.             if (var6.visible) {
  256.                var6.hide();
  257.                var6 = var1.getComponent(var5 > 0 ? var5 - 1 : var4 - 1);
  258.                var6.show();
  259.                var1.validate();
  260.                return;
  261.             }
  262.          }
  263.  
  264.       } catch (Throwable var8) {
  265.          throw var8;
  266.       }
  267.    }
  268.  
  269.    public void last(Container var1) {
  270.       Object var2 = ((Component)var1).getTreeLock();
  271.       synchronized(var2){}
  272.  
  273.       try {
  274.          this.checkLayout(var1);
  275.          int var4 = var1.getComponentCount();
  276.  
  277.          for(int var5 = 0; var5 < var4; ++var5) {
  278.             Component var6 = var1.getComponent(var5);
  279.             if (var6.visible) {
  280.                var6.hide();
  281.                var6 = var1.getComponent(var4 - 1);
  282.                var6.show();
  283.                var1.validate();
  284.                return;
  285.             }
  286.          }
  287.  
  288.       } catch (Throwable var8) {
  289.          throw var8;
  290.       }
  291.    }
  292.  
  293.    public void show(Container var1, String var2) {
  294.       Object var3 = ((Component)var1).getTreeLock();
  295.       synchronized(var3){}
  296.  
  297.       try {
  298.          this.checkLayout(var1);
  299.          Component var5 = (Component)this.tab.get(var2);
  300.          if (var5 != null && !var5.visible) {
  301.             int var6 = var1.getComponentCount();
  302.  
  303.             for(int var7 = 0; var7 < var6; ++var7) {
  304.                Component var8 = var1.getComponent(var7);
  305.                if (var8.visible) {
  306.                   var8.hide();
  307.                   break;
  308.                }
  309.             }
  310.  
  311.             var5.show();
  312.             var1.validate();
  313.          }
  314.       } catch (Throwable var10) {
  315.          throw var10;
  316.       }
  317.  
  318.    }
  319.  
  320.    public String toString() {
  321.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + "]";
  322.    }
  323. }
  324.