home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / CardLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.5 KB  |  364 lines

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