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:
ImageObserver,MenuContainer,Serializable,Accessible,SwingConstants
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassClass 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
JTabbedPane.AccessibleJTabbedPane, JTabbedPane.ModelListenerNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanIndicates whether the tabs in this TabbedPane are actually detachable, or just behave normallyprotected ImagePrettify the detached tabbsprotected HashMap<Component,DetachableTabbedPane.Detachable> (package private) StringFields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUTFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields 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
ConstructorsConstructorDescriptionCreates an emptyDetachableTabbedPanewith a default tab placement ofJTabbedPane.TOPand detachability on.DetachableTabbedPane(int tabPlacement, boolean detachable) Creates an emptyDetachableTabbedPanewith 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 emptyDetachableTabbedPanewith the specified tab placement and tab layout policy.DetachableTabbedPane(String titleSuffix) -
Method Summary
Modifier and TypeMethodDescriptionvoidprotected DetachableTabbedPane.DetachablecreateDetachable(String title, Icon icon, Component comp, String tip, int index, String titleSuffix) Returns the default Detachable.protected DetachableTabbedPane.DetachablegetDetachable(Component comp) Lookup the Detachable for the specified component, which must have been added as a tab.protected DetachableTabbedPane.Detachable[]Return Detachables which have been added as Tabs or Detached Frames.voidOverridden to add our 'detach' icon.voidremove(int index) Overridden to remove the comopnent from the possible list of components this pane displaysvoidvoidsetComponentAt(int index, Component component) voidsetDetachable(boolean detachable) voidsetDetachedIconImage(Image image) voidsetVisible(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, 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, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt, setUI, updateUIMethods 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, updateMethods 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, validateTreeMethods 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 Details
-
panelToDetMap
-
detachable
Indicates whether the tabs in this TabbedPane are actually detachable, or just behave normally -
detachedIconImage
Prettify the detached tabbs -
titleSuffix
-
-
Constructor Details
-
DetachableTabbedPane
public DetachableTabbedPane()Creates an emptyDetachableTabbedPanewith a default tab placement ofJTabbedPane.TOPand detachability on. -
DetachableTabbedPane
-
DetachableTabbedPane
Creates an emptyDetachableTabbedPanewith the specified tab placement of either:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT, orJTabbedPane.RIGHT, and specified detachability.- Parameters:
tabPlacement- tab placementdetachable- true if detachable
-
DetachableTabbedPane
Creates an emptyDetachableTabbedPanewith the specified tab placement and tab layout policy.- Parameters:
tabPlacement- tab placementtabLayoutPolicy- tab layout policydetachable- true if detachable
-
-
Method Details
-
setDetachedIconImage
-
getDetachedIconImage
-
createDetachable
protected DetachableTabbedPane.Detachable createDetachable(String title, Icon icon, Component comp, String tip, int index, String titleSuffix) Returns the default Detachable.- Parameters:
title- titleicon- iconcomp- componenttip- tool tipindex- indextitleSuffix- title suffix- Returns:
- default Detachable
-
getDetachable
Lookup the Detachable for the specified component, which must have been added as a tab. Returns null if not already added.- Parameters:
comp- component- Returns:
- Returns null if not already added
-
getDetachables
Return Detachables which have been added as Tabs or Detached Frames. TODO: Currently, order is not accurate.- Returns:
- Detachables
-
insertTab
Overridden to add our 'detach' icon. All theaddandaddTabmethods are cover methods forinsertTab.- Overrides:
insertTabin classJTabbedPane
-
setComponentAt
- Overrides:
setComponentAtin classJTabbedPane
-
addTab
- Overrides:
addTabin classJTabbedPane
-
remove
Overridden to remove the comopnent from the possible list of components this pane displays- Overrides:
removein classJTabbedPane
-
remove
- Overrides:
removein classJTabbedPane
-
setVisible
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:
setVisiblein classJComponent
-
setDetachable
-