home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Rectangle;
- import java.awt.event.MouseEvent;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.Vector;
- import javax.accessibility.Accessible;
- import javax.accessibility.AccessibleContext;
- import javax.accessibility.AccessibleState;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
- import javax.swing.plaf.TabbedPaneUI;
- import javax.swing.plaf.UIResource;
- import sun.swing.SwingUtilities2;
-
- public class JTabbedPane extends JComponent implements Serializable, Accessible, SwingConstants {
- public static final int WRAP_TAB_LAYOUT = 0;
- public static final int SCROLL_TAB_LAYOUT = 1;
- private static final String uiClassID = "TabbedPaneUI";
- protected int tabPlacement;
- private int tabLayoutPolicy;
- protected SingleSelectionModel model;
- private boolean haveRegistered;
- protected ChangeListener changeListener;
- Vector pages;
- private Component visComp;
- protected transient ChangeEvent changeEvent;
-
- public JTabbedPane() {
- this(1, 0);
- }
-
- public JTabbedPane(int var1) {
- this(var1, 0);
- }
-
- public JTabbedPane(int var1, int var2) {
- this.tabPlacement = 1;
- this.changeListener = null;
- this.visComp = null;
- this.changeEvent = null;
- this.setTabPlacement(var1);
- this.setTabLayoutPolicy(var2);
- this.pages = new Vector(1);
- this.setModel(new DefaultSingleSelectionModel());
- this.updateUI();
- }
-
- public TabbedPaneUI getUI() {
- return (TabbedPaneUI)this.ui;
- }
-
- public void setUI(TabbedPaneUI var1) {
- super.setUI(var1);
-
- for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
- Icon var3 = ((Page)this.pages.elementAt(var2)).disabledIcon;
- if (var3 instanceof UIResource) {
- this.setDisabledIconAt(var2, (Icon)null);
- }
- }
-
- }
-
- public void updateUI() {
- this.setUI((TabbedPaneUI)UIManager.getUI(this));
- }
-
- public String getUIClassID() {
- return "TabbedPaneUI";
- }
-
- protected ChangeListener createChangeListener() {
- return new ModelListener(this);
- }
-
- public void addChangeListener(ChangeListener var1) {
- this.listenerList.add(ChangeListener.class, var1);
- }
-
- public void removeChangeListener(ChangeListener var1) {
- this.listenerList.remove(ChangeListener.class, var1);
- }
-
- public ChangeListener[] getChangeListeners() {
- return (ChangeListener[])this.listenerList.getListeners(ChangeListener.class);
- }
-
- protected void fireStateChanged() {
- int var1 = this.getSelectedIndex();
- if (var1 < 0) {
- if (this.visComp != null && this.visComp.isVisible()) {
- this.visComp.setVisible(false);
- }
-
- this.visComp = null;
- } else {
- Component var2 = this.getComponentAt(var1);
- if (var2 != null && var2 != this.visComp) {
- boolean var3 = false;
- if (this.visComp != null) {
- var3 = SwingUtilities.findFocusOwner(this.visComp) != null;
- if (this.visComp.isVisible()) {
- this.visComp.setVisible(false);
- }
- }
-
- if (!var2.isVisible()) {
- var2.setVisible(true);
- }
-
- if (var3) {
- SwingUtilities2.tabbedPaneChangeFocusTo(var2);
- }
-
- this.visComp = var2;
- }
- }
-
- Object[] var4 = this.listenerList.getListenerList();
-
- for(int var5 = var4.length - 2; var5 >= 0; var5 -= 2) {
- if (var4[var5] == ChangeListener.class) {
- if (this.changeEvent == null) {
- this.changeEvent = new ChangeEvent(this);
- }
-
- ((ChangeListener)var4[var5 + 1]).stateChanged(this.changeEvent);
- }
- }
-
- }
-
- public SingleSelectionModel getModel() {
- return this.model;
- }
-
- public void setModel(SingleSelectionModel var1) {
- SingleSelectionModel var2 = this.getModel();
- if (var2 != null) {
- var2.removeChangeListener(this.changeListener);
- this.changeListener = null;
- }
-
- this.model = var1;
- if (var1 != null) {
- this.changeListener = this.createChangeListener();
- var1.addChangeListener(this.changeListener);
- }
-
- this.firePropertyChange("model", var2, var1);
- this.repaint();
- }
-
- public int getTabPlacement() {
- return this.tabPlacement;
- }
-
- public void setTabPlacement(int var1) {
- if (var1 != 1 && var1 != 2 && var1 != 3 && var1 != 4) {
- throw new IllegalArgumentException("illegal tab placement: must be TOP, BOTTOM, LEFT, or RIGHT");
- } else {
- if (this.tabPlacement != var1) {
- int var2 = this.tabPlacement;
- this.tabPlacement = var1;
- this.firePropertyChange("tabPlacement", var2, var1);
- this.revalidate();
- this.repaint();
- }
-
- }
- }
-
- public int getTabLayoutPolicy() {
- return this.tabLayoutPolicy;
- }
-
- public void setTabLayoutPolicy(int var1) {
- if (var1 != 0 && var1 != 1) {
- throw new IllegalArgumentException("illegal tab layout policy: must be WRAP_TAB_LAYOUT or SCROLL_TAB_LAYOUT");
- } else {
- if (this.tabLayoutPolicy != var1) {
- int var2 = this.tabLayoutPolicy;
- this.tabLayoutPolicy = var1;
- this.firePropertyChange("tabLayoutPolicy", var2, var1);
- this.revalidate();
- this.repaint();
- }
-
- }
- }
-
- public int getSelectedIndex() {
- return this.model.getSelectedIndex();
- }
-
- public void setSelectedIndex(int var1) {
- if (var1 != -1) {
- this.checkIndex(var1);
- }
-
- this.setSelectedIndexImpl(var1, true);
- }
-
- private void setSelectedIndexImpl(int var1, boolean var2) {
- int var3 = this.model.getSelectedIndex();
- Page var4 = null;
- Page var5 = null;
- String var6 = null;
- var2 = var2 && var3 != var1;
- if (var2) {
- if (this.accessibleContext != null) {
- var6 = this.accessibleContext.getAccessibleName();
- }
-
- if (var3 >= 0) {
- var4 = (Page)this.pages.elementAt(var3);
- }
-
- if (var1 >= 0) {
- var5 = (Page)this.pages.elementAt(var1);
- }
- }
-
- this.model.setSelectedIndex(var1);
- if (var2) {
- this.changeAccessibleSelection(var4, var6, var5);
- }
-
- }
-
- private void changeAccessibleSelection(Page var1, String var2, Page var3) {
- if (this.accessibleContext != null) {
- if (var1 != null) {
- var1.firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
- }
-
- if (var3 != null) {
- var3.firePropertyChange("AccessibleState", (Object)null, AccessibleState.SELECTED);
- }
-
- this.accessibleContext.firePropertyChange("AccessibleName", var2, this.accessibleContext.getAccessibleName());
- }
- }
-
- public Component getSelectedComponent() {
- int var1 = this.getSelectedIndex();
- return var1 == -1 ? null : this.getComponentAt(var1);
- }
-
- public void setSelectedComponent(Component var1) {
- int var2 = this.indexOfComponent(var1);
- if (var2 != -1) {
- this.setSelectedIndex(var2);
- } else {
- throw new IllegalArgumentException("component not found in tabbed pane");
- }
- }
-
- public void insertTab(String var1, Icon var2, Component var3, String var4, int var5) {
- int var6 = var5;
- int var7 = this.indexOfComponent(var3);
- if (var3 != null && var7 != -1) {
- this.removeTabAt(var7);
- if (var5 > var7) {
- var6 = var5 - 1;
- }
- }
-
- int var8 = this.getSelectedIndex();
- this.pages.insertElementAt(new Page(this, this, var1 != null ? var1 : "", var2, (Icon)null, var3, var4), var6);
- if (var3 != null) {
- this.addImpl(var3, (Object)null, -1);
- var3.setVisible(false);
- }
-
- if (this.pages.size() == 1) {
- this.setSelectedIndex(0);
- }
-
- if (var8 >= var6) {
- this.setSelectedIndexImpl(var8 + 1, false);
- }
-
- if (!this.haveRegistered && var4 != null) {
- ToolTipManager.sharedInstance().registerComponent(this);
- this.haveRegistered = true;
- }
-
- if (this.accessibleContext != null) {
- this.accessibleContext.firePropertyChange("AccessibleVisibleData", (Object)null, var3);
- }
-
- this.revalidate();
- this.repaint();
- }
-
- public void addTab(String var1, Icon var2, Component var3, String var4) {
- this.insertTab(var1, var2, var3, var4, this.pages.size());
- }
-
- public void addTab(String var1, Icon var2, Component var3) {
- this.insertTab(var1, var2, var3, (String)null, this.pages.size());
- }
-
- public void addTab(String var1, Component var2) {
- this.insertTab(var1, (Icon)null, var2, (String)null, this.pages.size());
- }
-
- public Component add(Component var1) {
- if (!(var1 instanceof UIResource)) {
- this.addTab(var1.getName(), var1);
- } else {
- super.add(var1);
- }
-
- return var1;
- }
-
- public Component add(String var1, Component var2) {
- if (!(var2 instanceof UIResource)) {
- this.addTab(var1, var2);
- } else {
- super.add(var1, var2);
- }
-
- return var2;
- }
-
- public Component add(Component var1, int var2) {
- if (!(var1 instanceof UIResource)) {
- this.insertTab(var1.getName(), (Icon)null, var1, (String)null, var2 == -1 ? this.getTabCount() : var2);
- } else {
- super.add(var1, var2);
- }
-
- return var1;
- }
-
- public void add(Component var1, Object var2) {
- if (!(var1 instanceof UIResource)) {
- if (var2 instanceof String) {
- this.addTab((String)var2, var1);
- } else if (var2 instanceof Icon) {
- this.addTab((String)null, (Icon)var2, var1);
- } else {
- this.add(var1);
- }
- } else {
- super.add(var1, var2);
- }
-
- }
-
- public void add(Component var1, Object var2, int var3) {
- if (!(var1 instanceof UIResource)) {
- Icon var4 = var2 instanceof Icon ? (Icon)var2 : null;
- String var5 = var2 instanceof String ? (String)var2 : null;
- this.insertTab(var5, var4, var1, (String)null, var3 == -1 ? this.getTabCount() : var3);
- } else {
- super.add(var1, var2, var3);
- }
-
- }
-
- public void removeTabAt(int var1) {
- this.checkIndex(var1);
- Component var2 = this.getComponentAt(var1);
- boolean var3 = false;
- int var4 = this.getSelectedIndex();
- String var5 = null;
- if (var2 == this.visComp) {
- var3 = SwingUtilities.findFocusOwner(this.visComp) != null;
- this.visComp = null;
- }
-
- if (this.accessibleContext != null) {
- if (var1 == var4) {
- ((Page)this.pages.elementAt(var1)).firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
- var5 = this.accessibleContext.getAccessibleName();
- }
-
- this.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, (Object)null);
- }
-
- this.setTabComponentAt(var1, (Component)null);
- this.pages.removeElementAt(var1);
- this.putClientProperty("__index_to_remove__", new Integer(var1));
- if (var4 > var1) {
- this.setSelectedIndexImpl(var4 - 1, false);
- } else if (var4 >= this.getTabCount()) {
- this.setSelectedIndexImpl(var4 - 1, false);
- Page var6 = var4 != 0 ? (Page)this.pages.elementAt(var4 - 1) : null;
- this.changeAccessibleSelection((Page)null, var5, var6);
- } else if (var1 == var4) {
- this.fireStateChanged();
- this.changeAccessibleSelection((Page)null, var5, (Page)this.pages.elementAt(var1));
- }
-
- if (var2 != null) {
- Component[] var8 = this.getComponents();
- int var7 = var8.length;
-
- while(true) {
- --var7;
- if (var7 < 0) {
- break;
- }
-
- if (var8[var7] == var2) {
- super.remove(var7);
- var2.setVisible(true);
- break;
- }
- }
- }
-
- if (var3) {
- SwingUtilities2.tabbedPaneChangeFocusTo(this.getSelectedComponent());
- }
-
- this.revalidate();
- this.repaint();
- }
-
- public void remove(Component var1) {
- int var2 = this.indexOfComponent(var1);
- if (var2 != -1) {
- this.removeTabAt(var2);
- } else {
- Component[] var3 = this.getComponents();
-
- for(int var4 = 0; var4 < var3.length; ++var4) {
- if (var1 == var3[var4]) {
- super.remove(var4);
- break;
- }
- }
- }
-
- }
-
- public void remove(int var1) {
- this.removeTabAt(var1);
- }
-
- public void removeAll() {
- this.setSelectedIndexImpl(-1, true);
- int var1 = this.getTabCount();
-
- while(var1-- > 0) {
- this.removeTabAt(var1);
- }
-
- }
-
- public int getTabCount() {
- return this.pages.size();
- }
-
- public int getTabRunCount() {
- return this.ui != null ? ((TabbedPaneUI)this.ui).getTabRunCount(this) : 0;
- }
-
- public String getTitleAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).title;
- }
-
- public Icon getIconAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).icon;
- }
-
- public Icon getDisabledIconAt(int var1) {
- Page var2 = (Page)this.pages.elementAt(var1);
- if (var2.disabledIcon == null) {
- var2.disabledIcon = UIManager.getLookAndFeel().getDisabledIcon(this, var2.icon);
- }
-
- return var2.disabledIcon;
- }
-
- public String getToolTipTextAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).tip;
- }
-
- public Color getBackgroundAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).getBackground();
- }
-
- public Color getForegroundAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).getForeground();
- }
-
- public boolean isEnabledAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).isEnabled();
- }
-
- public Component getComponentAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).component;
- }
-
- public int getMnemonicAt(int var1) {
- this.checkIndex(var1);
- Page var2 = (Page)this.pages.elementAt(var1);
- return var2.getMnemonic();
- }
-
- public int getDisplayedMnemonicIndexAt(int var1) {
- this.checkIndex(var1);
- Page var2 = (Page)this.pages.elementAt(var1);
- return var2.getDisplayedMnemonicIndex();
- }
-
- public Rectangle getBoundsAt(int var1) {
- this.checkIndex(var1);
- return this.ui != null ? ((TabbedPaneUI)this.ui).getTabBounds(this, var1) : null;
- }
-
- public void setTitleAt(int var1, String var2) {
- Page var3 = (Page)this.pages.elementAt(var1);
- String var4 = var3.title;
- var3.title = var2;
- if (var4 != var2) {
- this.firePropertyChange("indexForTitle", -1, var1);
- }
-
- var3.updateDisplayedMnemonicIndex();
- if (var4 != var2 && this.accessibleContext != null) {
- this.accessibleContext.firePropertyChange("AccessibleVisibleData", var4, var2);
- }
-
- if (var2 == null || var4 == null || !var2.equals(var4)) {
- this.revalidate();
- this.repaint();
- }
-
- }
-
- public void setIconAt(int var1, Icon var2) {
- Page var3 = (Page)this.pages.elementAt(var1);
- Icon var4 = var3.icon;
- if (var2 != var4) {
- var3.icon = var2;
- if (var3.disabledIcon instanceof UIResource) {
- var3.disabledIcon = null;
- }
-
- if (this.accessibleContext != null) {
- this.accessibleContext.firePropertyChange("AccessibleVisibleData", var4, var2);
- }
-
- this.revalidate();
- this.repaint();
- }
-
- }
-
- public void setDisabledIconAt(int var1, Icon var2) {
- Icon var3 = ((Page)this.pages.elementAt(var1)).disabledIcon;
- ((Page)this.pages.elementAt(var1)).disabledIcon = var2;
- if (var2 != var3 && !this.isEnabledAt(var1)) {
- this.revalidate();
- this.repaint();
- }
-
- }
-
- public void setToolTipTextAt(int var1, String var2) {
- String var3 = ((Page)this.pages.elementAt(var1)).tip;
- ((Page)this.pages.elementAt(var1)).tip = var2;
- if (var3 != var2 && this.accessibleContext != null) {
- this.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, var2);
- }
-
- if (!this.haveRegistered && var2 != null) {
- ToolTipManager.sharedInstance().registerComponent(this);
- this.haveRegistered = true;
- }
-
- }
-
- public void setBackgroundAt(int var1, Color var2) {
- Color var3 = ((Page)this.pages.elementAt(var1)).background;
- ((Page)this.pages.elementAt(var1)).setBackground(var2);
- if (var2 == null || var3 == null || !var2.equals(var3)) {
- Rectangle var4 = this.getBoundsAt(var1);
- if (var4 != null) {
- this.repaint(var4);
- }
- }
-
- }
-
- public void setForegroundAt(int var1, Color var2) {
- Color var3 = ((Page)this.pages.elementAt(var1)).foreground;
- ((Page)this.pages.elementAt(var1)).setForeground(var2);
- if (var2 == null || var3 == null || !var2.equals(var3)) {
- Rectangle var4 = this.getBoundsAt(var1);
- if (var4 != null) {
- this.repaint(var4);
- }
- }
-
- }
-
- public void setEnabledAt(int var1, boolean var2) {
- boolean var3 = ((Page)this.pages.elementAt(var1)).isEnabled();
- ((Page)this.pages.elementAt(var1)).setEnabled(var2);
- if (var2 != var3) {
- this.revalidate();
- this.repaint();
- }
-
- }
-
- public void setComponentAt(int var1, Component var2) {
- Page var3 = (Page)this.pages.elementAt(var1);
- if (var2 != var3.component) {
- boolean var4 = false;
- if (var3.component != null) {
- var4 = SwingUtilities.findFocusOwner(var3.component) != null;
- synchronized(this.getTreeLock()) {
- int var6 = this.getComponentCount();
- Component[] var7 = this.getComponents();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- if (var7[var8] == var3.component) {
- super.remove(var8);
- }
- }
- }
- }
-
- var3.component = var2;
- boolean var5 = this.getSelectedIndex() == var1;
- if (var5) {
- this.visComp = var2;
- }
-
- if (var2 != null) {
- var2.setVisible(var5);
- this.addImpl(var2, (Object)null, -1);
- if (var4) {
- SwingUtilities2.tabbedPaneChangeFocusTo(var2);
- }
- } else {
- this.repaint();
- }
-
- this.revalidate();
- }
-
- }
-
- public void setDisplayedMnemonicIndexAt(int var1, int var2) {
- this.checkIndex(var1);
- Page var3 = (Page)this.pages.elementAt(var1);
- var3.setDisplayedMnemonicIndex(var2);
- }
-
- public void setMnemonicAt(int var1, int var2) {
- this.checkIndex(var1);
- Page var3 = (Page)this.pages.elementAt(var1);
- var3.setMnemonic(var2);
- this.firePropertyChange("mnemonicAt", (Object)null, (Object)null);
- }
-
- public int indexOfTab(String var1) {
- for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
- if (this.getTitleAt(var2).equals(var1 == null ? "" : var1)) {
- return var2;
- }
- }
-
- return -1;
- }
-
- public int indexOfTab(Icon var1) {
- for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
- Icon var3 = this.getIconAt(var2);
- if (var3 != null && var3.equals(var1) || var3 == null && var3 == var1) {
- return var2;
- }
- }
-
- return -1;
- }
-
- public int indexOfComponent(Component var1) {
- for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
- Component var3 = this.getComponentAt(var2);
- if (var3 != null && var3.equals(var1) || var3 == null && var3 == var1) {
- return var2;
- }
- }
-
- return -1;
- }
-
- public int indexAtLocation(int var1, int var2) {
- return this.ui != null ? ((TabbedPaneUI)this.ui).tabForCoordinate(this, var1, var2) : -1;
- }
-
- public String getToolTipText(MouseEvent var1) {
- if (this.ui != null) {
- int var2 = ((TabbedPaneUI)this.ui).tabForCoordinate(this, var1.getX(), var1.getY());
- if (var2 != -1) {
- return ((Page)this.pages.elementAt(var2)).tip;
- }
- }
-
- return super.getToolTipText(var1);
- }
-
- private void checkIndex(int var1) {
- if (var1 < 0 || var1 >= this.pages.size()) {
- throw new IndexOutOfBoundsException("Index: " + var1 + ", Tab count: " + this.pages.size());
- }
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- if (this.getUIClassID().equals("TabbedPaneUI")) {
- byte var2 = JComponent.getWriteObjCounter(this);
- --var2;
- JComponent.setWriteObjCounter(this, var2);
- if (var2 == 0 && this.ui != null) {
- this.ui.installUI(this);
- }
- }
-
- }
-
- void compWriteObjectNotify() {
- super.compWriteObjectNotify();
- if (this.getToolTipText() == null && this.haveRegistered) {
- ToolTipManager.sharedInstance().unregisterComponent(this);
- }
-
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- if (this.ui != null && this.getUIClassID().equals("TabbedPaneUI")) {
- this.ui.installUI(this);
- }
-
- if (this.getToolTipText() == null && this.haveRegistered) {
- ToolTipManager.sharedInstance().registerComponent(this);
- }
-
- }
-
- protected String paramString() {
- String var1;
- if (this.tabPlacement == 1) {
- var1 = "TOP";
- } else if (this.tabPlacement == 3) {
- var1 = "BOTTOM";
- } else if (this.tabPlacement == 2) {
- var1 = "LEFT";
- } else if (this.tabPlacement == 4) {
- var1 = "RIGHT";
- } else {
- var1 = "";
- }
-
- String var2 = this.haveRegistered ? "true" : "false";
- return super.paramString() + ",haveRegistered=" + var2 + ",tabPlacement=" + var1;
- }
-
- public AccessibleContext getAccessibleContext() {
- if (this.accessibleContext == null) {
- this.accessibleContext = new AccessibleJTabbedPane(this);
- int var1 = this.getTabCount();
-
- for(int var2 = 0; var2 < var1; ++var2) {
- ((Page)this.pages.elementAt(var2)).initAccessibleContext();
- }
- }
-
- return this.accessibleContext;
- }
-
- public void setTabComponentAt(int var1, Component var2) {
- if (var2 != null && this.indexOfComponent(var2) != -1) {
- throw new IllegalArgumentException("Component is already added to this JTabbedPane");
- } else {
- Component var3 = this.getTabComponentAt(var1);
- if (var2 != var3) {
- int var4 = this.indexOfTabComponent(var2);
- if (var4 != -1) {
- this.setTabComponentAt(var4, (Component)null);
- }
-
- ((Page)this.pages.elementAt(var1)).tabComponent = var2;
- this.firePropertyChange("indexForTabComponent", -1, var1);
- }
-
- }
- }
-
- public Component getTabComponentAt(int var1) {
- return ((Page)this.pages.elementAt(var1)).tabComponent;
- }
-
- public int indexOfTabComponent(Component var1) {
- for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
- Component var3 = this.getTabComponentAt(var2);
- if (var3 == var1) {
- return var2;
- }
- }
-
- return -1;
- }
-
- // $FF: synthetic method
- static void access$000(JTabbedPane var0, String var1, Object var2, Object var3) {
- var0.firePropertyChange(var1, var2, var3);
- }
- }
-