Package jmri.util.org.mitre.jawb.swing
Class DetachableTabbedPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTabbedPane
-
- jmri.util.org.mitre.jawb.swing.DetachableTabbedPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.SwingConstants
public class DetachableTabbedPane extends javax.swing.JTabbedPane
JTabbedPane implementation which allows tabbs to be 'torn off' as their own window. When the DetachableTabbedPane is set not visible using the 'setVisible' method, any detached tabs are also hidden. When set visible by the same means, previously detached, yet hidden tabs, are re-shown.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
DetachableTabbedPane.Detachable
Class to maintain info for panels as they are added and removed, detached and attached from theDetachableTabPane
.-
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
detachable
Indicates whether the tabs in this TabbedPane are actually detachable, or just behave normallyprotected java.awt.Image
detachedIconImage
Prettify the detached tabbsprotected java.util.HashMap<java.awt.Component,DetachableTabbedPane.Detachable>
panelToDetMap
(package private) java.lang.String
titleSuffix
-
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
-
-
Constructor Summary
Constructors Constructor Description DetachableTabbedPane()
Creates an emptyDetachableTabbedPane
with a default tab placement ofJTabbedPane.TOP
and detachability on.DetachableTabbedPane(int tabPlacement, boolean detachable)
Creates an emptyDetachableTabbedPane
with the specified tab placement of either:JTabbedPane.TOP
,JTabbedPane.BOTTOM
,JTabbedPane.LEFT
, orJTabbedPane.RIGHT
, and specified detachability.DetachableTabbedPane(int tabPlacement, int tabLayoutPolicy, boolean detachable)
Creates an emptyDetachableTabbedPane
with the specified tab placement and tab layout policy.DetachableTabbedPane(java.lang.String titleSuffix)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DetachableTabbedPane.Detachable
createDetachable(java.lang.String title, javax.swing.Icon icon, java.awt.Component comp, java.lang.String tip, int index, java.lang.String titleSuffix)
Returns the default Detachable.protected DetachableTabbedPane.Detachable
getDetachable(java.awt.Component comp)
Lookup the Detachable for the specified component, which must have been added as a tab.protected DetachableTabbedPane.Detachable[]
getDetachables()
Return Detachables which have been added as Tabs or Detached Frames.java.awt.Image
getDetachedIconImage()
void
insertTab(java.lang.String title, javax.swing.Icon icon, java.awt.Component comp, java.lang.String tip, int index)
Overridden to add our 'detach' icon.void
remove(int index)
Overridden to remove the comopnent from the possible list of components this pane displaysvoid
remove(java.awt.Component comp)
void
setDetachable(boolean detachable)
void
setDetachedIconImage(java.awt.Image image)
void
setVisible(boolean show)
Overridden to hide or show the detached tabs as well.-
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, removeAll, removeChangeListener, removeTabAt, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, 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, 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
-
panelToDetMap
protected java.util.HashMap<java.awt.Component,DetachableTabbedPane.Detachable> panelToDetMap
-
detachable
protected boolean detachable
Indicates whether the tabs in this TabbedPane are actually detachable, or just behave normally
-
detachedIconImage
protected java.awt.Image detachedIconImage
Prettify the detached tabbs
-
titleSuffix
java.lang.String titleSuffix
-
-
Constructor Detail
-
DetachableTabbedPane
public DetachableTabbedPane()
Creates an emptyDetachableTabbedPane
with a default tab placement ofJTabbedPane.TOP
and detachability on.
-
DetachableTabbedPane
public DetachableTabbedPane(java.lang.String titleSuffix)
-
DetachableTabbedPane
public DetachableTabbedPane(int tabPlacement, boolean detachable)
Creates an emptyDetachableTabbedPane
with the specified tab placement of either:JTabbedPane.TOP
,JTabbedPane.BOTTOM
,JTabbedPane.LEFT
, orJTabbedPane.RIGHT
, and specified detachability.
-
DetachableTabbedPane
public DetachableTabbedPane(int tabPlacement, int tabLayoutPolicy, boolean detachable)
Creates an emptyDetachableTabbedPane
with the specified tab placement and tab layout policy.
-
-
Method Detail
-
setDetachedIconImage
public void setDetachedIconImage(java.awt.Image image)
-
getDetachedIconImage
public java.awt.Image getDetachedIconImage()
-
createDetachable
protected DetachableTabbedPane.Detachable createDetachable(java.lang.String title, javax.swing.Icon icon, java.awt.Component comp, java.lang.String tip, int index, java.lang.String titleSuffix)
Returns the default Detachable.
-
getDetachable
protected DetachableTabbedPane.Detachable getDetachable(java.awt.Component comp)
Lookup the Detachable for the specified component, which must have been added as a tab. Returns null if not already added.
-
getDetachables
protected DetachableTabbedPane.Detachable[] getDetachables()
Return Detachables which have been added as Tabs or Detached Frames. TODO: Currently, order is not accurate.
-
insertTab
public void insertTab(java.lang.String title, javax.swing.Icon icon, java.awt.Component comp, java.lang.String tip, int index)
Overridden to add our 'detach' icon. All theadd
andaddTab
methods are cover methods forinsertTab
.- Overrides:
insertTab
in classjavax.swing.JTabbedPane
-
remove
public void remove(int index)
Overridden to remove the comopnent from the possible list of components this pane displays- Overrides:
remove
in classjavax.swing.JTabbedPane
-
remove
public void remove(java.awt.Component comp)
- Overrides:
remove
in classjavax.swing.JTabbedPane
-
setVisible
public void setVisible(boolean show)
Overridden to hide or show the detached tabs as well. State is retained, so that if you hide this TabbedPane, the detached panels will be hidden, but when you re-show this TabbedPane, the detached panels will be re-shown in their last positions.- Overrides:
setVisible
in classjavax.swing.JComponent
-
setDetachable
public void setDetachable(boolean detachable)
-
-