com.openindex.openestate.tool.utils.tabs
Class CloseAndMaxTabbedPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTabbedPane
                  extended by 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.
$Id: CloseAndMaxTabbedPane.java 1829 2012-10-14 14:24:52Z andy $

Author:
David Bismut, davidou@mageos.com, Andreas Rudolph, andy@openindex.de
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
accessibleContext, 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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
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
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
CloseAndMaxTabbedPane(boolean enhancedUI)
          Creates the CloseAndMaxTabbedPane with an enhanced UI if enhancedUI parameter is set to true.
 
Method Summary
 void addCloseListener(CloseListener l)
          Adds a CloseListener to the tabbedPane.
 void addDoubleClickListener(DoubleClickListener l)
          Adds a DoubleClickListener to the tabbedPane.
 void addMaxListener(MaxListener l)
          Adds a MaxListener to the tabbedPane.
 void addPopupOutsideListener(PopupOutsideListener l)
          Adds a PopupOutsideListener to the tabbedPane.
 void detachTab(int index)
          Detaches the index tab in a seperate frame.
 void fireCloseTabEvent(MouseEvent e, int overTabIndex)
          Sends a MouseEvent, whose source is this tabbedpane, to every CloseListener.
 void fireDoubleClickTabEvent(MouseEvent e, int overTabIndex)
          Sends a MouseEvent, whose source is this tabbedpane, to every DoubleClickListener.
 void fireMaxTabEvent(MouseEvent e, int overTabIndex)
          Sends a MouseEvent, whose source is this tabbedpane, to every MaxListener.
 void firePopupOutsideTabEvent(MouseEvent e)
          Sends a MouseEvent, whose source is this tabbedpane, to every PopupOutsideListener.
 int getOverTabIndex()
          Returns the index of the last tab on which the mouse did an action.
 boolean isCloseEnabled()
          Returns true if the close icon is enabled.
 boolean isMaxEnabled()
          Returns true if the max/detach icon is enabled.
 void removeCloseListener(CloseListener l)
          Removes a CloseListener from this tabbedPane.
 void removeDoubleClickListener(DoubleClickListener l)
          Removes a DoubleClickListener from this tabbedPane.
 void removeMaxListener(MaxListener l)
          Removes a MaxListener from this tabbedPane.
 void removePopupOutsideListener(PopupOutsideListener l)
          Removes a PopupOutsideListener 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CloseAndMaxTabbedPane

public CloseAndMaxTabbedPane(boolean enhancedUI)
Creates the CloseAndMaxTabbedPane with an enhanced UI if enhancedUI parameter is set to true.

Parameters:
enhancedUI - whether the tabbedPane should use an enhanced UI
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()
Returns true if the close icon is enabled.

Returns:

isMaxEnabled

public boolean isMaxEnabled()
Returns true if the max/detach icon is enabled.

Returns:

setTabLayoutPolicy

public void setTabLayoutPolicy(int tabLayoutPolicy)
Override JTabbedPane method. Does nothing.

Overrides:
setTabLayoutPolicy in class JTabbedPane

setTabPlacement

public void setTabPlacement(int tabPlacement)
Override JTabbedPane method. Does nothing.

Overrides:
setTabPlacement in class JTabbedPane

setUI

public void setUI(TabbedPaneUI ui)
Override JTabbedPane method. Does nothing.

Overrides:
setUI in class JTabbedPane

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 the index 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 a CloseListener to the tabbedPane.

Parameters:
l - the CloseListener 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 a MaxListener to the tabbedPane.

Parameters:
l - the MaxListener 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 a DoubleClickListener to the tabbedPane.

Parameters:
l - the DoubleClickListener 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 a PopupOutsideListener to the tabbedPane.

Parameters:
l - the PopupOutsideListener to add
See Also:
firePopupOutsideTabEvent(java.awt.event.MouseEvent), removePopupOutsideListener(com.openindex.openestate.tool.utils.tabs.PopupOutsideListener)

removeCloseListener

public void removeCloseListener(CloseListener l)
Removes a CloseListener from this tabbedPane.

Parameters:
l - the CloseListener 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 a MaxListener from this tabbedPane.

Parameters:
l - the MaxListener 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 a DoubleClickListener from this tabbedPane.

Parameters:
l - the DoubleClickListener 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 a PopupOutsideListener from this tabbedPane.

Parameters:
l - the PopupOutsideListener 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 a MouseEvent, whose source is this tabbedpane, to every CloseListener. The method also updates the overTabIndex of the tabbedPane with a value coming from the UI. This method method is called each time a MouseEvent is received from the UI when the user clicks on the close icon of the tab which index is overTabIndex.

Parameters:
e - the MouseEvent to be sent
overTabIndex - the index of a tab, usually the tab over which the mouse is
See Also:
addCloseListener(com.openindex.openestate.tool.utils.tabs.CloseListener), EventListenerList

fireMaxTabEvent

public void fireMaxTabEvent(MouseEvent e,
                            int overTabIndex)
Sends a MouseEvent, whose source is this tabbedpane, to every MaxListener. The method also updates the overTabIndex of the tabbedPane with a value coming from the UI. This method method is called each time a MouseEvent is received from the UI when the user clicks on the max icon of the tab which index is overTabIndex.

Parameters:
e - the MouseEvent to be sent
overTabIndex - the index of a tab, usually the tab over which the mouse is
See Also:
addMaxListener(com.openindex.openestate.tool.utils.tabs.MaxListener), EventListenerList

fireDoubleClickTabEvent

public void fireDoubleClickTabEvent(MouseEvent e,
                                    int overTabIndex)
Sends a MouseEvent, whose source is this tabbedpane, to every DoubleClickListener. The method also updates the overTabIndex of the tabbedPane with a value coming from the UI. This method method is called each time a MouseEvent is received from the UI when the user double-clicks on the tab which index is overTabIndex.

Parameters:
e - the MouseEvent to be sent
overTabIndex - the index of a tab, usually the tab over which the mouse is
See Also:
addDoubleClickListener(com.openindex.openestate.tool.utils.tabs.DoubleClickListener), EventListenerList

firePopupOutsideTabEvent

public void firePopupOutsideTabEvent(MouseEvent e)
Sends a MouseEvent, whose source is this tabbedpane, to every PopupOutsideListener. The method also sets the overTabIndex to -1. This method method is called each time a MouseEvent is received from the UI when the user right-clicks on the inactive part of a tabbedPane.

Parameters:
e - the MouseEvent to be sent
See Also:
addPopupOutsideListener(com.openindex.openestate.tool.utils.tabs.PopupOutsideListener), EventListenerList


Copyright © 2012 OpenEstate. All Rights Reserved.