home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / JTabbedPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  11.0 KB  |  572 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Rectangle;
  7. import java.awt.event.MouseEvent;
  8. import java.io.IOException;
  9. import java.io.ObjectInputStream;
  10. import java.io.ObjectOutputStream;
  11. import java.io.Serializable;
  12. import java.util.Vector;
  13. import javax.accessibility.Accessible;
  14. import javax.accessibility.AccessibleContext;
  15. import javax.accessibility.AccessibleState;
  16. import javax.swing.event.ChangeEvent;
  17. import javax.swing.event.ChangeListener;
  18. import javax.swing.plaf.TabbedPaneUI;
  19.  
  20. public class JTabbedPane extends JComponent implements Serializable, Accessible, SwingConstants {
  21.    private static final String uiClassID = "TabbedPaneUI";
  22.    protected int tabPlacement;
  23.    protected SingleSelectionModel model;
  24.    private boolean haveRegistered;
  25.    protected ChangeListener changeListener;
  26.    Vector pages;
  27.    protected transient ChangeEvent changeEvent;
  28.    // $FF: synthetic field
  29.    static Class class$javax$swing$event$ChangeListener;
  30.  
  31.    public JTabbedPane() {
  32.       this(1);
  33.    }
  34.  
  35.    public JTabbedPane(int var1) {
  36.       this.tabPlacement = 1;
  37.       this.changeListener = null;
  38.       this.changeEvent = null;
  39.       this.setTabPlacement(var1);
  40.       this.pages = new Vector(1);
  41.       this.setModel(new DefaultSingleSelectionModel());
  42.       this.updateUI();
  43.    }
  44.  
  45.    public TabbedPaneUI getUI() {
  46.       return (TabbedPaneUI)super.ui;
  47.    }
  48.  
  49.    public void setUI(TabbedPaneUI var1) {
  50.       super.setUI(var1);
  51.    }
  52.  
  53.    public void updateUI() {
  54.       this.setUI((TabbedPaneUI)UIManager.getUI(this));
  55.    }
  56.  
  57.    public String getUIClassID() {
  58.       return "TabbedPaneUI";
  59.    }
  60.  
  61.    protected ChangeListener createChangeListener() {
  62.       return new ModelListener(this);
  63.    }
  64.  
  65.    public void addChangeListener(ChangeListener var1) {
  66.       super.listenerList.add(class$javax$swing$event$ChangeListener == null ? (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")) : class$javax$swing$event$ChangeListener, var1);
  67.    }
  68.  
  69.    public void removeChangeListener(ChangeListener var1) {
  70.       super.listenerList.remove(class$javax$swing$event$ChangeListener == null ? (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")) : class$javax$swing$event$ChangeListener, var1);
  71.    }
  72.  
  73.    protected void fireStateChanged() {
  74.       Object[] var1 = super.listenerList.getListenerList();
  75.  
  76.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  77.          if (var1[var2] == (class$javax$swing$event$ChangeListener == null ? (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")) : class$javax$swing$event$ChangeListener)) {
  78.             if (this.changeEvent == null) {
  79.                this.changeEvent = new ChangeEvent(this);
  80.             }
  81.  
  82.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
  83.          }
  84.       }
  85.  
  86.    }
  87.  
  88.    public SingleSelectionModel getModel() {
  89.       return this.model;
  90.    }
  91.  
  92.    public void setModel(SingleSelectionModel var1) {
  93.       SingleSelectionModel var2 = this.getModel();
  94.       if (var2 != null) {
  95.          var2.removeChangeListener(this.changeListener);
  96.          this.changeListener = null;
  97.       }
  98.  
  99.       this.model = var1;
  100.       if (var1 != null) {
  101.          this.changeListener = this.createChangeListener();
  102.          var1.addChangeListener(this.changeListener);
  103.       }
  104.  
  105.       ((JComponent)this).firePropertyChange("model", var2, var1);
  106.       ((Component)this).repaint();
  107.    }
  108.  
  109.    public int getTabPlacement() {
  110.       return this.tabPlacement;
  111.    }
  112.  
  113.    public void setTabPlacement(int var1) {
  114.       if (var1 != 1 && var1 != 2 && var1 != 3 && var1 != 4) {
  115.          throw new IllegalArgumentException("illegal tab placement: must be TOP, BOTTOM, LEFT, or RIGHT");
  116.       } else {
  117.          if (this.tabPlacement != var1) {
  118.             int var2 = this.tabPlacement;
  119.             this.tabPlacement = var1;
  120.             ((JComponent)this).firePropertyChange("tabPlacement", var2, var1);
  121.             ((JComponent)this).revalidate();
  122.             ((Component)this).repaint();
  123.          }
  124.  
  125.       }
  126.    }
  127.  
  128.    public int getSelectedIndex() {
  129.       return this.model.getSelectedIndex();
  130.    }
  131.  
  132.    public void setSelectedIndex(int var1) {
  133.       int var2 = this.model.getSelectedIndex();
  134.       this.model.setSelectedIndex(var1);
  135.       if (var2 >= 0 && var2 != var1) {
  136.          Page var3 = (Page)this.pages.elementAt(var2);
  137.          if (super.accessibleContext != null) {
  138.             super.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
  139.          }
  140.       }
  141.  
  142.       if (var1 >= 0 && var2 != var1) {
  143.          Page var4 = (Page)this.pages.elementAt(var1);
  144.          if (super.accessibleContext != null) {
  145.             super.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.SELECTED);
  146.          }
  147.       }
  148.  
  149.    }
  150.  
  151.    public Component getSelectedComponent() {
  152.       int var1 = this.getSelectedIndex();
  153.       return var1 == -1 ? null : this.getComponentAt(var1);
  154.    }
  155.  
  156.    public void setSelectedComponent(Component var1) {
  157.       int var2 = this.indexOfComponent(var1);
  158.       if (var2 != -1) {
  159.          this.setSelectedIndex(var2);
  160.       } else {
  161.          throw new IllegalArgumentException("component not found in tabbed pane");
  162.       }
  163.    }
  164.  
  165.    public void insertTab(String var1, Icon var2, Component var3, String var4, int var5) {
  166.       ImageIcon var6 = null;
  167.       if (var2 != null && var2 instanceof ImageIcon) {
  168.          var6 = new ImageIcon(GrayFilter.createDisabledImage(((ImageIcon)var2).getImage()));
  169.       }
  170.  
  171.       int var7;
  172.       if (var3 != null && (var7 = this.indexOfComponent(var3)) != -1) {
  173.          this.removeTabAt(var7);
  174.       }
  175.  
  176.       this.pages.insertElementAt(new Page(this, this, var1 != null ? var1 : "", var2, var6, var3, var4), var5);
  177.       if (var3 != null) {
  178.          var3.setVisible(false);
  179.          ((Container)this).addImpl(var3, (Object)null, -1);
  180.       }
  181.  
  182.       if (this.pages.size() == 1) {
  183.          this.setSelectedIndex(0);
  184.       }
  185.  
  186.       if (!this.haveRegistered && var4 != null) {
  187.          ToolTipManager.sharedInstance().registerComponent(this);
  188.          this.haveRegistered = true;
  189.       }
  190.  
  191.       if (super.accessibleContext != null) {
  192.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", (Object)null, var3);
  193.       }
  194.  
  195.       ((JComponent)this).revalidate();
  196.       ((Component)this).repaint();
  197.    }
  198.  
  199.    public void addTab(String var1, Icon var2, Component var3, String var4) {
  200.       this.insertTab(var1, var2, var3, var4, this.pages.size());
  201.    }
  202.  
  203.    public void addTab(String var1, Icon var2, Component var3) {
  204.       this.insertTab(var1, var2, var3, (String)null, this.pages.size());
  205.    }
  206.  
  207.    public void addTab(String var1, Component var2) {
  208.       this.insertTab(var1, (Icon)null, var2, (String)null, this.pages.size());
  209.    }
  210.  
  211.    public Component add(Component var1) {
  212.       this.addTab(var1.getName(), var1);
  213.       return var1;
  214.    }
  215.  
  216.    public Component add(String var1, Component var2) {
  217.       this.addTab(var1, var2);
  218.       return var2;
  219.    }
  220.  
  221.    public Component add(Component var1, int var2) {
  222.       this.insertTab(var1.getName(), (Icon)null, var1, (String)null, var2 == -1 ? this.getTabCount() : var2);
  223.       return var1;
  224.    }
  225.  
  226.    public void add(Component var1, Object var2) {
  227.       if (var2 instanceof String) {
  228.          this.addTab((String)var2, var1);
  229.       } else if (var2 instanceof Icon) {
  230.          this.addTab((String)null, (Icon)var2, var1);
  231.       } else {
  232.          this.add(var1);
  233.       }
  234.  
  235.    }
  236.  
  237.    public void add(Component var1, Object var2, int var3) {
  238.       Icon var4 = var2 instanceof Icon ? (Icon)var2 : null;
  239.       String var5 = var2 instanceof String ? (String)var2 : null;
  240.       this.insertTab(var5, var4, var1, (String)null, var3 == -1 ? this.getTabCount() : var3);
  241.    }
  242.  
  243.    public void removeTabAt(int var1) {
  244.       int var2 = this.getTabCount();
  245.       int var3 = this.getSelectedIndex();
  246.       if (var3 >= var2 - 1) {
  247.          this.setSelectedIndex(var3 - 1);
  248.       }
  249.  
  250.       Component var4 = this.getComponentAt(var1);
  251.       if (super.accessibleContext != null) {
  252.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var4, (Object)null);
  253.       }
  254.  
  255.       if (var4 != null) {
  256.          Component[] var5 = ((Container)this).getComponents();
  257.          int var6 = var5.length;
  258.  
  259.          while(true) {
  260.             --var6;
  261.             if (var6 < 0) {
  262.                break;
  263.             }
  264.  
  265.             if (var5[var6] == var4) {
  266.                super.remove(var6);
  267.                var4.setVisible(true);
  268.                break;
  269.             }
  270.          }
  271.       }
  272.  
  273.       this.pages.removeElementAt(var1);
  274.       ((JComponent)this).revalidate();
  275.       ((Component)this).repaint();
  276.    }
  277.  
  278.    public void remove(Component var1) {
  279.       int var2 = this.indexOfComponent(var1);
  280.       if (var2 != -1) {
  281.          this.removeTabAt(var2);
  282.       }
  283.  
  284.    }
  285.  
  286.    public void remove(int var1) {
  287.       this.removeTabAt(var1);
  288.    }
  289.  
  290.    public void removeAll() {
  291.       this.setSelectedIndex(-1);
  292.       int var1 = this.getTabCount();
  293.  
  294.       for(int var2 = 0; var2 < var1; ++var2) {
  295.          Component var3 = this.getComponentAt(var2);
  296.          if (var3 != null) {
  297.             var3.setVisible(true);
  298.          }
  299.  
  300.          if (super.accessibleContext != null) {
  301.             super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, (Object)null);
  302.          }
  303.       }
  304.  
  305.       super.removeAll();
  306.       this.pages.removeAllElements();
  307.       ((JComponent)this).revalidate();
  308.       ((Component)this).repaint();
  309.    }
  310.  
  311.    public int getTabCount() {
  312.       return this.pages.size();
  313.    }
  314.  
  315.    public int getTabRunCount() {
  316.       return super.ui != null ? ((TabbedPaneUI)super.ui).getTabRunCount(this) : 0;
  317.    }
  318.  
  319.    public String getTitleAt(int var1) {
  320.       return ((Page)this.pages.elementAt(var1)).title;
  321.    }
  322.  
  323.    public Icon getIconAt(int var1) {
  324.       return ((Page)this.pages.elementAt(var1)).icon;
  325.    }
  326.  
  327.    public Icon getDisabledIconAt(int var1) {
  328.       return ((Page)this.pages.elementAt(var1)).disabledIcon;
  329.    }
  330.  
  331.    public String getToolTipTextAt(int var1) {
  332.       return ((Page)this.pages.elementAt(var1)).tip;
  333.    }
  334.  
  335.    public Color getBackgroundAt(int var1) {
  336.       return ((Page)this.pages.elementAt(var1)).getBackground();
  337.    }
  338.  
  339.    public Color getForegroundAt(int var1) {
  340.       return ((Page)this.pages.elementAt(var1)).getForeground();
  341.    }
  342.  
  343.    public boolean isEnabledAt(int var1) {
  344.       return ((Page)this.pages.elementAt(var1)).isEnabled();
  345.    }
  346.  
  347.    public Component getComponentAt(int var1) {
  348.       return ((Page)this.pages.elementAt(var1)).component;
  349.    }
  350.  
  351.    public Rectangle getBoundsAt(int var1) {
  352.       return super.ui != null ? ((TabbedPaneUI)super.ui).getTabBounds(this, var1) : null;
  353.    }
  354.  
  355.    public void setTitleAt(int var1, String var2) {
  356.       String var3 = ((Page)this.pages.elementAt(var1)).title;
  357.       ((Page)this.pages.elementAt(var1)).title = var2;
  358.       if (var3 != var2 && super.accessibleContext != null) {
  359.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, var2);
  360.       }
  361.  
  362.       if (var2 == null || var3 == null || !var2.equals(var3)) {
  363.          ((JComponent)this).revalidate();
  364.          ((Component)this).repaint();
  365.       }
  366.  
  367.    }
  368.  
  369.    public void setIconAt(int var1, Icon var2) {
  370.       Icon var3 = ((Page)this.pages.elementAt(var1)).icon;
  371.       ((Page)this.pages.elementAt(var1)).icon = var2;
  372.       AccessibleContext var4 = this.getAccessibleContext();
  373.       if (var3 != var2 && super.accessibleContext != null) {
  374.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, var2);
  375.       }
  376.  
  377.       if (var2 != var3) {
  378.          ((JComponent)this).revalidate();
  379.          ((Component)this).repaint();
  380.       }
  381.  
  382.    }
  383.  
  384.    public void setDisabledIconAt(int var1, Icon var2) {
  385.       Icon var3 = ((Page)this.pages.elementAt(var1)).disabledIcon;
  386.       ((Page)this.pages.elementAt(var1)).disabledIcon = var2;
  387.       if (var2 != var3 && !this.isEnabledAt(var1)) {
  388.          ((JComponent)this).revalidate();
  389.          ((Component)this).repaint();
  390.       }
  391.  
  392.    }
  393.  
  394.    public void setToolTipTextAt(int var1, String var2) {
  395.       String var3 = ((Page)this.pages.elementAt(var1)).tip;
  396.       ((Page)this.pages.elementAt(var1)).tip = var2;
  397.       if (var3 != var2 && super.accessibleContext != null) {
  398.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, var2);
  399.       }
  400.  
  401.       if (!this.haveRegistered && var2 != null) {
  402.          ToolTipManager.sharedInstance().registerComponent(this);
  403.          this.haveRegistered = true;
  404.       }
  405.  
  406.    }
  407.  
  408.    public void setBackgroundAt(int var1, Color var2) {
  409.       Color var3 = ((Page)this.pages.elementAt(var1)).background;
  410.       ((Page)this.pages.elementAt(var1)).setBackground(var2);
  411.       if (var2 == null || var3 == null || !var2.equals(var3)) {
  412.          Rectangle var4 = this.getBoundsAt(var1);
  413.          if (var4 != null) {
  414.             ((JComponent)this).repaint(var4);
  415.          }
  416.       }
  417.  
  418.    }
  419.  
  420.    public void setForegroundAt(int var1, Color var2) {
  421.       Color var3 = ((Page)this.pages.elementAt(var1)).foreground;
  422.       ((Page)this.pages.elementAt(var1)).setForeground(var2);
  423.       if (var2 == null || var3 == null || !var2.equals(var3)) {
  424.          Rectangle var4 = this.getBoundsAt(var1);
  425.          if (var4 != null) {
  426.             ((JComponent)this).repaint(var4);
  427.          }
  428.       }
  429.  
  430.    }
  431.  
  432.    public void setEnabledAt(int var1, boolean var2) {
  433.       boolean var3 = ((Page)this.pages.elementAt(var1)).isEnabled();
  434.       ((Page)this.pages.elementAt(var1)).setEnabled(var2);
  435.       if (var2 != var3) {
  436.          ((JComponent)this).repaint(this.getBoundsAt(var1));
  437.       }
  438.  
  439.    }
  440.  
  441.    public void setComponentAt(int var1, Component var2) {
  442.       Page var3 = (Page)this.pages.elementAt(var1);
  443.       if (var2 != var3.component) {
  444.          if (var3.component != null) {
  445.             Object var4 = ((Component)this).getTreeLock();
  446.             synchronized(var4) {
  447.                int var5 = ((Container)this).getComponentCount();
  448.                Component[] var6 = ((Container)this).getComponents();
  449.  
  450.                for(int var7 = 0; var7 < var5; ++var7) {
  451.                   if (var6[var7] == var3.component) {
  452.                      super.remove(var7);
  453.                   }
  454.                }
  455.             }
  456.          }
  457.  
  458.          var3.component = var2;
  459.          var2.setVisible(this.getSelectedIndex() == var1);
  460.          ((Container)this).addImpl(var2, (Object)null, -1);
  461.          ((JComponent)this).revalidate();
  462.       }
  463.  
  464.    }
  465.  
  466.    public int indexOfTab(String var1) {
  467.       for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
  468.          if (this.getTitleAt(var2).equals(var1 == null ? "" : var1)) {
  469.             return var2;
  470.          }
  471.       }
  472.  
  473.       return -1;
  474.    }
  475.  
  476.    public int indexOfTab(Icon var1) {
  477.       for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
  478.          Icon var3 = this.getIconAt(var2);
  479.          if (var3 != null && var3.equals(var1) || var3 == null && var3 == var1) {
  480.             return var2;
  481.          }
  482.       }
  483.  
  484.       return -1;
  485.    }
  486.  
  487.    public int indexOfComponent(Component var1) {
  488.       for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
  489.          Component var3 = this.getComponentAt(var2);
  490.          if (var3 != null && var3.equals(var1) || var3 == null && var3 == var1) {
  491.             return var2;
  492.          }
  493.       }
  494.  
  495.       return -1;
  496.    }
  497.  
  498.    public String getToolTipText(MouseEvent var1) {
  499.       if (super.ui != null) {
  500.          int var2 = ((TabbedPaneUI)super.ui).tabForCoordinate(this, var1.getX(), var1.getY());
  501.          if (var2 != -1) {
  502.             return ((Page)this.pages.elementAt(var2)).tip;
  503.          }
  504.       }
  505.  
  506.       return super.getToolTipText(var1);
  507.    }
  508.  
  509.    private void writeObject(ObjectOutputStream var1) throws IOException {
  510.       var1.defaultWriteObject();
  511.       if (super.ui != null && this.getUIClassID().equals("TabbedPaneUI")) {
  512.          super.ui.installUI(this);
  513.       }
  514.  
  515.    }
  516.  
  517.    void compWriteObjectNotify() {
  518.       super.compWriteObjectNotify();
  519.       if (((JComponent)this).getToolTipText() == null && this.haveRegistered) {
  520.          ToolTipManager.sharedInstance().unregisterComponent(this);
  521.       }
  522.  
  523.    }
  524.  
  525.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  526.       var1.defaultReadObject();
  527.       if (super.ui != null && this.getUIClassID().equals("TabbedPaneUI")) {
  528.          super.ui.installUI(this);
  529.       }
  530.  
  531.       if (((JComponent)this).getToolTipText() == null && this.haveRegistered) {
  532.          ToolTipManager.sharedInstance().registerComponent(this);
  533.       }
  534.  
  535.    }
  536.  
  537.    protected String paramString() {
  538.       String var1;
  539.       if (this.tabPlacement == 1) {
  540.          var1 = "TOP";
  541.       } else if (this.tabPlacement == 3) {
  542.          var1 = "BOTTOM";
  543.       } else if (this.tabPlacement == 2) {
  544.          var1 = "LEFT";
  545.       } else if (this.tabPlacement == 4) {
  546.          var1 = "RIGHT";
  547.       } else {
  548.          var1 = "";
  549.       }
  550.  
  551.       String var2 = this.haveRegistered ? "true" : "false";
  552.       return super.paramString() + ",haveRegistered=" + var2 + ",tabPlacement=" + var1;
  553.    }
  554.  
  555.    public AccessibleContext getAccessibleContext() {
  556.       if (super.accessibleContext == null) {
  557.          super.accessibleContext = new AccessibleJTabbedPane(this);
  558.       }
  559.  
  560.       return super.accessibleContext;
  561.    }
  562.  
  563.    // $FF: synthetic method
  564.    static Class class$(String var0) {
  565.       try {
  566.          return Class.forName(var0);
  567.       } catch (ClassNotFoundException var2) {
  568.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  569.       }
  570.    }
  571. }
  572.