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 classDetachableTabbedPane.DetachableClass 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 booleandetachableIndicates whether the tabs in this TabbedPane are actually detachable, or just behave normallyprotected java.awt.ImagedetachedIconImagePrettify the detached tabbsprotected java.util.HashMap<java.awt.Component,DetachableTabbedPane.Detachable>panelToDetMap(package private) java.lang.StringtitleSuffix-
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 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(java.lang.String titleSuffix)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DetachableTabbedPane.DetachablecreateDetachable(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.DetachablegetDetachable(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.ImagegetDetachedIconImage()voidinsertTab(java.lang.String title, javax.swing.Icon icon, java.awt.Component comp, java.lang.String tip, int index)Overridden to add our 'detach' icon.voidremove(int index)Overridden to remove the comopnent from the possible list of components this pane displaysvoidremove(java.awt.Component comp)voidsetDetachable(boolean detachable)voidsetDetachedIconImage(java.awt.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, 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 emptyDetachableTabbedPanewith a default tab placement ofJTabbedPane.TOPand detachability on.
-
DetachableTabbedPane
public DetachableTabbedPane(java.lang.String titleSuffix)
-
DetachableTabbedPane
public 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.- Parameters:
tabPlacement- tab placementdetachable- true if detachable
-
DetachableTabbedPane
public DetachableTabbedPane(int tabPlacement, int tabLayoutPolicy, boolean detachable)
Creates an emptyDetachableTabbedPanewith the specified tab placement and tab layout policy.- Parameters:
tabPlacement- tab placementtabLayoutPolicy- tab layout policydetachable- true if detachable
-
-
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.- Parameters:
title- titleicon- iconcomp- componenttip- tool tipindex- indextitleSuffix- title suffix- Returns:
- 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.- Parameters:
comp- component- Returns:
- 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.- Returns:
- Detachables
-
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 theaddandaddTabmethods are cover methods forinsertTab.- Overrides:
insertTabin classjavax.swing.JTabbedPane
-
remove
public void remove(int index)
Overridden to remove the comopnent from the possible list of components this pane displays- Overrides:
removein classjavax.swing.JTabbedPane
-
remove
public void remove(java.awt.Component comp)
- Overrides:
removein 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:
setVisiblein classjavax.swing.JComponent
-
setDetachable
public void setDetachable(boolean detachable)
-
-