Class CloseAndMaxTabbedPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTabbedPane
-
- com.openindex.openestate.tool.utils.tabs.CloseAndMaxTabbedPane
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,SwingConstants
public class CloseAndMaxTabbedPane extends JTabbedPane
A JTabbedPane with some added UI functionalities. A close and max/detach icons are added to every tab, typically to let the user close or detach the tab by clicking on these icons.- Author:
- David Bismut, davidou@mageos.com, Andreas Rudolph
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
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 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 CloseAndMaxTabbedPane(boolean enhancedUI)
Creates theCloseAndMaxTabbedPane
with an enhanced UI ifenhancedUI
parameter is set totrue
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCloseListener(CloseListener l)
Adds aCloseListener
to the tabbedPane.void
addDoubleClickListener(DoubleClickListener l)
Adds aDoubleClickListener
to the tabbedPane.void
addMaxListener(MaxListener l)
Adds aMaxListener
to the tabbedPane.void
addPopupOutsideListener(PopupOutsideListener l)
Adds aPopupOutsideListener
to the tabbedPane.void
detachTab(int index)
Detaches theindex
tab in a seperate frame.void
fireCloseTabEvent(MouseEvent e, int overTabIndex)
Sends aMouseEvent
, whose source is this tabbedpane, to everyCloseListener
.void
fireDoubleClickTabEvent(MouseEvent e, int overTabIndex)
Sends aMouseEvent
, whose source is this tabbedpane, to everyDoubleClickListener
.void
fireMaxTabEvent(MouseEvent e, int overTabIndex)
Sends aMouseEvent
, whose source is this tabbedpane, to everyMaxListener
.void
firePopupOutsideTabEvent(MouseEvent e)
Sends aMouseEvent
, whose source is this tabbedpane, to everyPopupOutsideListener
.int
getOverTabIndex()
Returns the index of the last tab on which the mouse did an action.boolean
isCloseEnabled()
Returnstrue
if the close icon is enabled.boolean
isMaxEnabled()
Returnstrue
if the max/detach icon is enabled.void
removeCloseListener(CloseListener l)
Removes aCloseListener
from this tabbedPane.void
removeDoubleClickListener(DoubleClickListener l)
Removes aDoubleClickListener
from this tabbedPane.void
removeMaxListener(MaxListener l)
Removes aMaxListener
from this tabbedPane.void
removePopupOutsideListener(PopupOutsideListener l)
Removes aPopupOutsideListener
from this tabbedPane.void
setCloseIcon(boolean b)
Sets whether the tabbedPane should have a close icon or not.void
setCloseIcon(BufferedImage img)
void
setMaxIcon(boolean b)
Sets whether the tabbedPane should have a max/detach icon or not.void
setMaxIcon(BufferedImage img)
void
setTabLayoutPolicy(int tabLayoutPolicy)
Override JTabbedPane method.void
setTabPlacement(int tabPlacement)
Override JTabbedPane method.void
setUI(TabbedPaneUI ui)
Override JTabbedPane method.-
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, insertTab, isEnabledAt, paramString, remove, remove, removeAll, removeChangeListener, removeTabAt, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, setTabComponentAt, setTitleAt, setToolTipTextAt, 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
-
-
-
-
Method Detail
-
getOverTabIndex
public int getOverTabIndex()
Returns the index of the last tab on which the mouse did an action.- Returns:
-
isCloseEnabled
public boolean isCloseEnabled()
Returnstrue
if the close icon is enabled.- Returns:
-
isMaxEnabled
public boolean isMaxEnabled()
Returnstrue
if the max/detach icon is enabled.- Returns:
-
setTabLayoutPolicy
public void setTabLayoutPolicy(int tabLayoutPolicy)
Override JTabbedPane method. Does nothing.- Overrides:
setTabLayoutPolicy
in classJTabbedPane
-
setTabPlacement
public void setTabPlacement(int tabPlacement)
Override JTabbedPane method. Does nothing.- Overrides:
setTabPlacement
in classJTabbedPane
-
setUI
public void setUI(TabbedPaneUI ui)
Override JTabbedPane method. Does nothing.- Overrides:
setUI
in classJTabbedPane
-
setCloseIcon
public void setCloseIcon(boolean b)
Sets whether the tabbedPane should have a close icon or not.- Parameters:
b
- whether the tabbedPane should have a close icon or not
-
setCloseIcon
public void setCloseIcon(BufferedImage img)
-
setMaxIcon
public void setMaxIcon(boolean b)
Sets whether the tabbedPane should have a max/detach icon or not.- Parameters:
b
- whether the tabbedPane should have a max/detach icon or not
-
setMaxIcon
public void setMaxIcon(BufferedImage img)
-
detachTab
public void detachTab(int index)
Detaches theindex
tab in a seperate frame. When the frame is closed, the tab is automatically reinserted into the tabbedPane.- Parameters:
index
- index of the tabbedPane to be detached
-
addCloseListener
public void addCloseListener(CloseListener l)
Adds aCloseListener
to the tabbedPane.- Parameters:
l
- theCloseListener
to add- See Also:
fireCloseTabEvent(java.awt.event.MouseEvent, int)
,removeCloseListener(com.openindex.openestate.tool.utils.tabs.CloseListener)
-
addMaxListener
public void addMaxListener(MaxListener l)
Adds aMaxListener
to the tabbedPane.- Parameters:
l
- theMaxListener
to add- See Also:
fireMaxTabEvent(java.awt.event.MouseEvent, int)
,removeMaxListener(com.openindex.openestate.tool.utils.tabs.MaxListener)
-
addDoubleClickListener
public void addDoubleClickListener(DoubleClickListener l)
Adds aDoubleClickListener
to the tabbedPane.- Parameters:
l
- theDoubleClickListener
to add- See Also:
fireDoubleClickTabEvent(java.awt.event.MouseEvent, int)
,removeDoubleClickListener(com.openindex.openestate.tool.utils.tabs.DoubleClickListener)
-
addPopupOutsideListener
public void addPopupOutsideListener(PopupOutsideListener l)
Adds aPopupOutsideListener
to the tabbedPane.- Parameters:
l
- thePopupOutsideListener
to add- See Also:
firePopupOutsideTabEvent(java.awt.event.MouseEvent)
,removePopupOutsideListener(com.openindex.openestate.tool.utils.tabs.PopupOutsideListener)
-
removeCloseListener
public void removeCloseListener(CloseListener l)
Removes aCloseListener
from this tabbedPane.- Parameters:
l
- theCloseListener
to remove- See Also:
fireCloseTabEvent(java.awt.event.MouseEvent, int)
,addCloseListener(com.openindex.openestate.tool.utils.tabs.CloseListener)
-
removeMaxListener
public void removeMaxListener(MaxListener l)
Removes aMaxListener
from this tabbedPane.- Parameters:
l
- theMaxListener
to remove- See Also:
fireMaxTabEvent(java.awt.event.MouseEvent, int)
,addMaxListener(com.openindex.openestate.tool.utils.tabs.MaxListener)
-
removeDoubleClickListener
public void removeDoubleClickListener(DoubleClickListener l)
Removes aDoubleClickListener
from this tabbedPane.- Parameters:
l
- theDoubleClickListener
to remove- See Also:
fireDoubleClickTabEvent(java.awt.event.MouseEvent, int)
,addDoubleClickListener(com.openindex.openestate.tool.utils.tabs.DoubleClickListener)
-
removePopupOutsideListener
public void removePopupOutsideListener(PopupOutsideListener l)
Removes aPopupOutsideListener
from this tabbedPane.- Parameters:
l
- thePopupOutsideListener
to remove- See Also:
firePopupOutsideTabEvent(java.awt.event.MouseEvent)
,addPopupOutsideListener(com.openindex.openestate.tool.utils.tabs.PopupOutsideListener)
-
fireCloseTabEvent
public void fireCloseTabEvent(MouseEvent e, int overTabIndex)
Sends aMouseEvent
, whose source is this tabbedpane, to everyCloseListener
. The method also updates theoverTabIndex
of the tabbedPane with a value coming from the UI. This method method is called each time aMouseEvent
is received from the UI when the user clicks on the close icon of the tab which index isoverTabIndex
.- Parameters:
e
- theMouseEvent
to be sentoverTabIndex
- the index of a tab, usually the tab over which the mouse is- See Also:
addCloseListener(com.openindex.openestate.tool.utils.tabs.CloseListener)
-
fireMaxTabEvent
public void fireMaxTabEvent(MouseEvent e, int overTabIndex)
Sends aMouseEvent
, whose source is this tabbedpane, to everyMaxListener
. The method also updates theoverTabIndex
of the tabbedPane with a value coming from the UI. This method method is called each time aMouseEvent
is received from the UI when the user clicks on the max icon of the tab which index isoverTabIndex
.- Parameters:
e
- theMouseEvent
to be sentoverTabIndex
- the index of a tab, usually the tab over which the mouse is- See Also:
addMaxListener(com.openindex.openestate.tool.utils.tabs.MaxListener)
-
fireDoubleClickTabEvent
public void fireDoubleClickTabEvent(MouseEvent e, int overTabIndex)
Sends aMouseEvent
, whose source is this tabbedpane, to everyDoubleClickListener
. The method also updates theoverTabIndex
of the tabbedPane with a value coming from the UI. This method method is called each time aMouseEvent
is received from the UI when the user double-clicks on the tab which index isoverTabIndex
.- Parameters:
e
- theMouseEvent
to be sentoverTabIndex
- the index of a tab, usually the tab over which the mouse is- See Also:
addDoubleClickListener(com.openindex.openestate.tool.utils.tabs.DoubleClickListener)
-
firePopupOutsideTabEvent
public void firePopupOutsideTabEvent(MouseEvent e)
Sends aMouseEvent
, whose source is this tabbedpane, to everyPopupOutsideListener
. The method also sets theoverTabIndex
to -1. This method method is called each time aMouseEvent
is received from the UI when the user right-clicks on the inactive part of a tabbedPane.- Parameters:
e
- theMouseEvent
to be sent- See Also:
addPopupOutsideListener(com.openindex.openestate.tool.utils.tabs.PopupOutsideListener)
-
-