Package adams.gui.core
Class BaseTabbedPaneWithTabHiding
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTabbedPane
-
- adams.gui.core.BaseTabbedPane
-
- adams.gui.core.BaseTabbedPaneWithTabHiding
-
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,SwingConstants
- Direct Known Subclasses:
FlowTabManager,ViewerTabManager
public class BaseTabbedPaneWithTabHiding extends BaseTabbedPane
Enhanced JTabbedPane. Allows one to "hide" tabs as well.- Version:
- $Revision$
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBaseTabbedPaneWithTabHiding.PageBackup<T>Container for backing up hidden tabs.-
Nested classes/interfaces inherited from class adams.gui.core.BaseTabbedPane
BaseTabbedPane.MiddleMouseButtonCloseApprover, BaseTabbedPane.TabUndo, BaseTabbedPane.TabUndoList
-
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
JTabbedPane.AccessibleJTabbedPane, JTabbedPane.ModelListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected Hashtable<Component,BaseTabbedPaneWithTabHiding.PageBackup<Component>>m_HiddenPagesfor storing the hidden tabs.protected HashSet<TabVisibilityChangeListener>m_TabVisibilityChangeListenersthe listeners for tab visibility changes.-
Fields inherited from class adams.gui.core.BaseTabbedPane
m_CloseTabsWithMiddleMouseButton, m_DetachableTabs, m_MaxTabCloseUndo, m_MaxTitleLength, m_MiddleMouseButtonCloseApprover, m_PromptUserWhenClosingTab, m_ShowCloseTabButton, m_SkipTabUndo, m_TabChangeListeners, m_TabClosedListeners, m_TabUndoList
-
Fields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description BaseTabbedPaneWithTabHiding()Creates an emptyTabbedPanewith a default tab placement ofJTabbedPane.TOP.BaseTabbedPaneWithTabHiding(int tabPlacement)Creates an emptyTabbedPanewith the specified tab placement of either:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT, orJTabbedPane.RIGHT.BaseTabbedPaneWithTabHiding(int tabPlacement, int tabLayoutPolicy)Creates an emptyTabbedPanewith the specified tab placement and tab layout policy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddHiddenTab(String title, Component component)Adds a hiddencomponentrepresented by atitleand no icon.voidaddHiddenTab(String title, Icon icon, Component component)Adds a hiddencomponentrepresented by atitleand/oricon, either of which can benull.voidaddHiddenTab(String title, Icon icon, Component component, String tip)Adds a hiddencomponentandtiprepresented by atitleand/oricon, either of which can benull.voidaddTabVisibilityChangeListener(TabVisibilityChangeListener l)Adds a listener for tab visibility.voiddisplayTab(Component component)Displays a hidden tab again.voiddisplayTab(String title)Displays a hidden tab again.protected ComponentgetHiddenComponent(String title)Determines the hidden component from the tab title.ComponenthideTab(int index)Hides the tab at the specified position.ComponenthideTab(Component component)Hides the tab containing the specified component.ComponenthideTab(String title)Hides the tab with the specified tab title.protected voidinitialize()Performs further initializations.booleanisHidden(Component comp)Checks whether the component is currently hidden.booleanisHidden(String title)Checks whether the tab with the specified title is currently hidden.protected voidnotifyTabVisibiltiyChangeListeners(TabVisibilityChangeEvent e)Notifies all tab visibility listeners about the specified event.voidremoveAll()Removes all the tabs and their corresponding components from thetabbedpane.booleanremoveHidden(Component comp)Removes the hidden component.booleanremoveHidden(String title)Removes the hidden component.voidremvoeTabVisibilityChangeListener(TabVisibilityChangeListener l)Removes a listener for tab visibility.-
Methods inherited from class adams.gui.core.BaseTabbedPane
addTabChangeListener, addTabClosedListeners, addTabUndo, afterTabClosedWithMiddleMouseButton, canCloseTab, canCloseTabWithMiddleMouseButton, canMoveTabTo, canMoveTabToEnd, canMoveTabToLeft, canMoveTabToRight, canMoveTabToStart, canUndoTabClose, clearTabChangeListeners, clearTabClosedListeners, finishInit, generateTabUndo, getCloseTabsWithMiddelMouseButton, getDetachableTabs, getMaxTabCloseUndo, getMaxTitleLength, getMiddleMouseButtonCloseApprover, getPromptUserWhenClosingTab, getShowCloseTabButton, getTabMoveSubMenu, getTabUndoList, initGUI, insertTab, moveTabTo, moveTabToEnd, moveTabToLeft, moveTabToRight, moveTabToStart, notifyTabChangeListeners, notifyTabClosedListeners, removeSelectedTab, removeTabAt, removeTabChangeListener, removeTabClosedListeners, setCloseTabsWithMiddleMouseButton, setDetachableTabs, setMaxTabCloseUndo, setMaxTitleLength, setMiddleMouseButtonCloseApprover, setPromptUserWhenClosingTab, setShortenedTitleAt, setShowCloseTabButton, setTitleAt, tabClicked, undoTabClose, updateTabComponents
-
Methods inherited from class javax.swing.JTabbedPane
add, add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, fireStateChanged, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, indexOfTabComponent, isEnabledAt, paramString, remove, remove, removeChangeListener, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setToolTipTextAt, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
m_HiddenPages
protected Hashtable<Component,BaseTabbedPaneWithTabHiding.PageBackup<Component>> m_HiddenPages
for storing the hidden tabs.
-
m_TabVisibilityChangeListeners
protected HashSet<TabVisibilityChangeListener> m_TabVisibilityChangeListeners
the listeners for tab visibility changes.
-
-
Constructor Detail
-
BaseTabbedPaneWithTabHiding
public BaseTabbedPaneWithTabHiding()
Creates an emptyTabbedPanewith a default tab placement ofJTabbedPane.TOP.
-
BaseTabbedPaneWithTabHiding
public BaseTabbedPaneWithTabHiding(int tabPlacement)
Creates an emptyTabbedPanewith the specified tab placement of either:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT, orJTabbedPane.RIGHT.- Parameters:
tabPlacement- the placement for the tabs relative to the content
-
BaseTabbedPaneWithTabHiding
public BaseTabbedPaneWithTabHiding(int tabPlacement, int tabLayoutPolicy)Creates an emptyTabbedPanewith the specified tab placement and tab layout policy. Tab placement may be either:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT, orJTabbedPane.RIGHT. Tab layout policy may be either:JTabbedPane.WRAP_TAB_LAYOUTorJTabbedPane.SCROLL_TAB_LAYOUT.- Parameters:
tabPlacement- the placement for the tabs relative to the contenttabLayoutPolicy- the policy for laying out tabs when all tabs will not fit on one run
-
-
Method Detail
-
initialize
protected void initialize()
Performs further initializations.- Overrides:
initializein classBaseTabbedPane
-
getHiddenComponent
protected Component getHiddenComponent(String title)
Determines the hidden component from the tab title.- Parameters:
title- the title of the tab to get the associated component for- Returns:
- the component or null if not found
-
hideTab
public Component hideTab(Component component)
Hides the tab containing the specified component.- Parameters:
component- the component which tab to hide- Returns:
- the component that was hidden
-
hideTab
public Component hideTab(String title)
Hides the tab with the specified tab title.- Parameters:
title- the title of the tab to hide- Returns:
- the component that was hidden
-
hideTab
public Component hideTab(int index)
Hides the tab at the specified position.- Parameters:
index- the index of the tab to hide- Returns:
- the component that was hidden, null in case of an error
-
displayTab
public void displayTab(Component component)
Displays a hidden tab again.- Parameters:
component- the component to display again
-
displayTab
public void displayTab(String title)
Displays a hidden tab again.- Parameters:
title- the title of the hidden tab to display again
-
removeAll
public void removeAll()
Removes all the tabs and their corresponding components from thetabbedpane. Removes the hidden tabs as well.- Overrides:
removeAllin classBaseTabbedPane
-
addHiddenTab
public void addHiddenTab(String title, Icon icon, Component component, String tip)
Adds a hiddencomponentandtiprepresented by atitleand/oricon, either of which can benull.- Parameters:
title- the title to be displayed in this tabicon- the icon to be displayed in this tabcomponent- the component to be displayed when this tab is clickedtip- the tooltip to be displayed for this tab
-
addHiddenTab
public void addHiddenTab(String title, Icon icon, Component component)
Adds a hiddencomponentrepresented by atitleand/oricon, either of which can benull.- Parameters:
title- the title to be displayed in this tabicon- the icon to be displayed in this tabcomponent- the component to be displayed when this tab is clicked
-
addHiddenTab
public void addHiddenTab(String title, Component component)
Adds a hiddencomponentrepresented by atitleand no icon.- Parameters:
title- the title to be displayed in this tabcomponent- the component to be displayed when this tab is clicked
-
isHidden
public boolean isHidden(Component comp)
Checks whether the component is currently hidden.- Parameters:
comp- the component to check- Returns:
- true if the component is hidden
-
isHidden
public boolean isHidden(String title)
Checks whether the tab with the specified title is currently hidden.- Parameters:
title- the title of the tab to check- Returns:
- true if the tab is hidden
-
removeHidden
public boolean removeHidden(Component comp)
Removes the hidden component.- Parameters:
comp- the hidden component to remove- Returns:
- true if successfully remove
-
removeHidden
public boolean removeHidden(String title)
Removes the hidden component.- Parameters:
title- the title of the tab to remove- Returns:
- true if successfully remove
-
addTabVisibilityChangeListener
public void addTabVisibilityChangeListener(TabVisibilityChangeListener l)
Adds a listener for tab visibility.- Parameters:
l- the listener to add
-
remvoeTabVisibilityChangeListener
public void remvoeTabVisibilityChangeListener(TabVisibilityChangeListener l)
Removes a listener for tab visibility.- Parameters:
l- the listener to remove
-
notifyTabVisibiltiyChangeListeners
protected void notifyTabVisibiltiyChangeListeners(TabVisibilityChangeEvent e)
Notifies all tab visibility listeners about the specified event.- Parameters:
e- the event to send
-
-