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 class
BaseTabbedPaneWithTabHiding.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_HiddenPages
for storing the hidden tabs.protected HashSet<TabVisibilityChangeListener>
m_TabVisibilityChangeListeners
the 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 emptyTabbedPane
with a default tab placement ofJTabbedPane.TOP
.BaseTabbedPaneWithTabHiding(int tabPlacement)
Creates an emptyTabbedPane
with the specified tab placement of either:JTabbedPane.TOP
,JTabbedPane.BOTTOM
,JTabbedPane.LEFT
, orJTabbedPane.RIGHT
.BaseTabbedPaneWithTabHiding(int tabPlacement, int tabLayoutPolicy)
Creates an emptyTabbedPane
with the specified tab placement and tab layout policy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHiddenTab(String title, Component component)
Adds a hiddencomponent
represented by atitle
and no icon.void
addHiddenTab(String title, Icon icon, Component component)
Adds a hiddencomponent
represented by atitle
and/oricon
, either of which can benull
.void
addHiddenTab(String title, Icon icon, Component component, String tip)
Adds a hiddencomponent
andtip
represented by atitle
and/oricon
, either of which can benull
.void
addTabVisibilityChangeListener(TabVisibilityChangeListener l)
Adds a listener for tab visibility.void
displayTab(Component component)
Displays a hidden tab again.void
displayTab(String title)
Displays a hidden tab again.protected Component
getHiddenComponent(String title)
Determines the hidden component from the tab title.Component
hideTab(int index)
Hides the tab at the specified position.Component
hideTab(Component component)
Hides the tab containing the specified component.Component
hideTab(String title)
Hides the tab with the specified tab title.protected void
initialize()
Performs further initializations.boolean
isHidden(Component comp)
Checks whether the component is currently hidden.boolean
isHidden(String title)
Checks whether the tab with the specified title is currently hidden.protected void
notifyTabVisibiltiyChangeListeners(TabVisibilityChangeEvent e)
Notifies all tab visibility listeners about the specified event.void
removeAll()
Removes all the tabs and their corresponding components from thetabbedpane
.boolean
removeHidden(Component comp)
Removes the hidden component.boolean
removeHidden(String title)
Removes the hidden component.void
remvoeTabVisibilityChangeListener(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 emptyTabbedPane
with a default tab placement ofJTabbedPane.TOP
.
-
BaseTabbedPaneWithTabHiding
public BaseTabbedPaneWithTabHiding(int tabPlacement)
Creates an emptyTabbedPane
with 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 emptyTabbedPane
with 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_LAYOUT
orJTabbedPane.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:
initialize
in 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:
removeAll
in classBaseTabbedPane
-
addHiddenTab
public void addHiddenTab(String title, Icon icon, Component component, String tip)
Adds a hiddencomponent
andtip
represented by atitle
and/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 hiddencomponent
represented by atitle
and/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 hiddencomponent
represented by atitle
and 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
-
-