home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / rt.jar / java / awt / CardLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-20  |  4.9 KB  |  271 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.       if (var2 instanceof String) {
  40.          this.addLayoutComponent((String)var2, var1);
  41.       } else {
  42.          throw new IllegalArgumentException("cannot add to layout: constraint must be a string");
  43.       }
  44.    }
  45.  
  46.    /** @deprecated */
  47.    public void addLayoutComponent(String var1, Component var2) {
  48.       if (this.tab.size() > 0) {
  49.          var2.hide();
  50.       }
  51.  
  52.       this.tab.put(var1, var2);
  53.    }
  54.  
  55.    public void removeLayoutComponent(Component var1) {
  56.       Enumeration var2 = this.tab.keys();
  57.  
  58.       while(var2.hasMoreElements()) {
  59.          String var3 = (String)var2.nextElement();
  60.          if (this.tab.get(var3) == var1) {
  61.             this.tab.remove(var3);
  62.             return;
  63.          }
  64.       }
  65.  
  66.    }
  67.  
  68.    public Dimension preferredLayoutSize(Container var1) {
  69.       Insets var2 = var1.getInsets();
  70.       int var3 = var1.getComponentCount();
  71.       int var4 = 0;
  72.       int var5 = 0;
  73.  
  74.       for(int var6 = 0; var6 < var3; ++var6) {
  75.          Component var7 = var1.getComponent(var6);
  76.          Dimension var8 = var7.getPreferredSize();
  77.          if (var8.width > var4) {
  78.             var4 = var8.width;
  79.          }
  80.  
  81.          if (var8.height > var5) {
  82.             var5 = var8.height;
  83.          }
  84.       }
  85.  
  86.       return new Dimension(var2.left + var2.right + var4 + this.hgap * 2, var2.top + var2.bottom + var5 + this.vgap * 2);
  87.    }
  88.  
  89.    public Dimension minimumLayoutSize(Container var1) {
  90.       Insets var2 = var1.getInsets();
  91.       int var3 = var1.getComponentCount();
  92.       int var4 = 0;
  93.       int var5 = 0;
  94.  
  95.       for(int var6 = 0; var6 < var3; ++var6) {
  96.          Component var7 = var1.getComponent(var6);
  97.          Dimension var8 = var7.getMinimumSize();
  98.          if (var8.width > var4) {
  99.             var4 = var8.width;
  100.          }
  101.  
  102.          if (var8.height > var5) {
  103.             var5 = var8.height;
  104.          }
  105.       }
  106.  
  107.       return new Dimension(var2.left + var2.right + var4 + this.hgap * 2, var2.top + var2.bottom + var5 + this.vgap * 2);
  108.    }
  109.  
  110.    public Dimension maximumLayoutSize(Container var1) {
  111.       return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
  112.    }
  113.  
  114.    public float getLayoutAlignmentX(Container var1) {
  115.       return 0.5F;
  116.    }
  117.  
  118.    public float getLayoutAlignmentY(Container var1) {
  119.       return 0.5F;
  120.    }
  121.  
  122.    public void invalidateLayout(Container var1) {
  123.    }
  124.  
  125.    public void layoutContainer(Container var1) {
  126.       Insets var2 = var1.getInsets();
  127.       int var3 = var1.getComponentCount();
  128.  
  129.       for(int var4 = 0; var4 < var3; ++var4) {
  130.          Component var5 = var1.getComponent(var4);
  131.          if (var5.visible) {
  132.             var5.setBounds(this.hgap + var2.left, this.vgap + var2.top, var1.width - (this.hgap * 2 + var2.left + var2.right), var1.height - (this.vgap * 2 + var2.top + var2.bottom));
  133.          }
  134.       }
  135.  
  136.    }
  137.  
  138.    void checkLayout(Container var1) {
  139.       if (var1.getLayout() != this) {
  140.          throw new IllegalArgumentException("wrong parent for CardLayout");
  141.       }
  142.    }
  143.  
  144.    public void first(Container var1) {
  145.       Object var2 = Component.LOCK;
  146.       synchronized(var2){}
  147.  
  148.       try {
  149.          this.checkLayout(var1);
  150.          int var4 = var1.getComponentCount();
  151.  
  152.          for(int var5 = 0; var5 < var4; ++var5) {
  153.             Component var6 = var1.getComponent(var5);
  154.             if (var6.visible) {
  155.                var6.hide();
  156.                var6 = var1.getComponent(0);
  157.                var6.show();
  158.                var1.validate();
  159.                return;
  160.             }
  161.          }
  162.  
  163.       } catch (Throwable var8) {
  164.          throw var8;
  165.       }
  166.    }
  167.  
  168.    public void next(Container var1) {
  169.       Object var2 = Component.LOCK;
  170.       synchronized(var2){}
  171.  
  172.       try {
  173.          this.checkLayout(var1);
  174.          int var4 = var1.getComponentCount();
  175.  
  176.          for(int var5 = 0; var5 < var4; ++var5) {
  177.             Component var6 = var1.getComponent(var5);
  178.             if (var6.visible) {
  179.                var6.hide();
  180.                var6 = var1.getComponent(var5 + 1 < var4 ? var5 + 1 : 0);
  181.                var6.show();
  182.                var1.validate();
  183.                return;
  184.             }
  185.          }
  186.  
  187.       } catch (Throwable var8) {
  188.          throw var8;
  189.       }
  190.    }
  191.  
  192.    public void previous(Container var1) {
  193.       Object var2 = Component.LOCK;
  194.       synchronized(var2){}
  195.  
  196.       try {
  197.          this.checkLayout(var1);
  198.          int var4 = var1.getComponentCount();
  199.  
  200.          for(int var5 = 0; var5 < var4; ++var5) {
  201.             Component var6 = var1.getComponent(var5);
  202.             if (var6.visible) {
  203.                var6.hide();
  204.                var6 = var1.getComponent(var5 > 0 ? var5 - 1 : var4 - 1);
  205.                var6.show();
  206.                var1.validate();
  207.                return;
  208.             }
  209.          }
  210.  
  211.       } catch (Throwable var8) {
  212.          throw var8;
  213.       }
  214.    }
  215.  
  216.    public void last(Container var1) {
  217.       Object var2 = Component.LOCK;
  218.       synchronized(var2){}
  219.  
  220.       try {
  221.          this.checkLayout(var1);
  222.          int var4 = var1.getComponentCount();
  223.  
  224.          for(int var5 = 0; var5 < var4; ++var5) {
  225.             Component var6 = var1.getComponent(var5);
  226.             if (var6.visible) {
  227.                var6.hide();
  228.                var6 = var1.getComponent(var4 - 1);
  229.                var6.show();
  230.                var1.validate();
  231.                return;
  232.             }
  233.          }
  234.  
  235.       } catch (Throwable var8) {
  236.          throw var8;
  237.       }
  238.    }
  239.  
  240.    public void show(Container var1, String var2) {
  241.       Object var3 = Component.LOCK;
  242.       synchronized(var3){}
  243.  
  244.       try {
  245.          this.checkLayout(var1);
  246.          Component var5 = (Component)this.tab.get(var2);
  247.          if (var5 != null && !var5.visible) {
  248.             int var6 = var1.getComponentCount();
  249.  
  250.             for(int var7 = 0; var7 < var6; ++var7) {
  251.                Component var8 = var1.getComponent(var7);
  252.                if (var8.visible) {
  253.                   var8.hide();
  254.                   break;
  255.                }
  256.             }
  257.  
  258.             var5.show();
  259.             var1.validate();
  260.          }
  261.       } catch (Throwable var10) {
  262.          throw var10;
  263.       }
  264.  
  265.    }
  266.  
  267.    public String toString() {
  268.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + "]";
  269.    }
  270. }
  271.