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