com.neatech.climbplan.userinterface.components
Class CloseableTabbedPane

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.neatech.climbplan.userinterface.components.CloseableTabbedPane
All Implemented Interfaces:
MouseListener, MouseMotionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, SwingConstants

public class CloseableTabbedPane
extends JTabbedPane
implements MouseListener, MouseMotionListener

A JTabbedPane which has a close ('X') icon on each tab. To add a tab, use the method addTab(String, Component) To have an extra icon on each tab (e.g. like in JBuilder, showing the file type) use the method addTab(String, Component, Icon). Only clicking the 'X' closes the tab.

See Also:
Serialized Form

Nested Class Summary
(package private)  class CloseableTabbedPane.CloseableMetalTabbedPaneUI
          A specific MetalTabbedPaneUI.
(package private)  class CloseableTabbedPane.CloseableTabbedPaneUI
          A specific BasicTabbedPaneUI.
(package private)  class CloseableTabbedPane.CloseTabIcon
          The class which generates the 'X' icon for the tabs.
 
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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  JViewport headerViewport
          The viewport of the scrolled tabs.
private  Icon hooverCloseIcon
          The closeicon when the mouse is over.
private  EventListenerList listenerList
          The EventListenerList.
private  Icon normalCloseIcon
          The normal closeicon.
private  Icon pressedCloseIcon
          The closeicon when the mouse is pressed.
private static long serialVersionUID
           
 
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, 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
CloseableTabbedPane()
          Creates a new instance of CloseableTabbedPane
CloseableTabbedPane(int horizontalTextPosition)
          Creates a new instance of CloseableTabbedPane
 
Method Summary
 void addCloseableTabbedPaneListener(CloseableTabbedPaneListener l)
          Adds an CloseableTabbedPaneListener to the tabbedpane.
 void addTab(String title, Component component)
          Adds a Component represented by a title and no icon.
 void addTab(String title, Component component, Icon extraIcon)
          Adds a Component represented by a title and an icon.
protected  boolean fireCloseTab(int tabIndexToClose)
          Notifies all listeners that have registered interest for notification on this event type.
 CloseableTabbedPaneListener[] getCloseableTabbedPaneListener()
          Returns an array of all the SearchListeners added to this SearchPane with addSearchListener().
private  void init(int horizontalTextPosition)
          Initializes the CloseableTabbedPane
 void mouseClicked(MouseEvent e)
          Invoked when the mouse button has been clicked (pressed and released) on a component.
 void mouseDragged(MouseEvent e)
          Invoked when a mouse button is pressed on a component and then dragged.
 void mouseEntered(MouseEvent e)
          Invoked when the mouse enters a component.
 void mouseExited(MouseEvent e)
          Invoked when the mouse exits a component.
 void mouseMoved(MouseEvent e)
          Invoked when the mouse cursor has been moved onto a component but no buttons have been pushed.
 void mousePressed(MouseEvent e)
          Invoked when a mouse button has been pressed on a component.
 void mouseReleased(MouseEvent e)
          Invoked when a mouse button has been released on a component.
private  void processMouseEvents(MouseEvent e)
          Processes all caught MouseEvents.
 void removeCloseableTabbedPaneListener(CloseableTabbedPaneListener l)
          Removes an CloseableTabbedPaneListener from the tabbedpane.
 void setCloseIcons(Icon normal, Icon hoover, Icon pressed)
          Allows setting own closeicons.
 
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, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, insertTab, isEnabledAt, paramString, remove, remove, removeAll, removeChangeListener, removeTabAt, setBackgroundAt, setComponentAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setSelectedIndex, 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, 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, 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
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

listenerList

private EventListenerList listenerList
The EventListenerList.


headerViewport

private JViewport headerViewport
The viewport of the scrolled tabs.


normalCloseIcon

private Icon normalCloseIcon
The normal closeicon.


hooverCloseIcon

private Icon hooverCloseIcon
The closeicon when the mouse is over.


pressedCloseIcon

private Icon pressedCloseIcon
The closeicon when the mouse is pressed.

Constructor Detail

CloseableTabbedPane

public CloseableTabbedPane()
Creates a new instance of CloseableTabbedPane


CloseableTabbedPane

public CloseableTabbedPane(int horizontalTextPosition)
Creates a new instance of CloseableTabbedPane

Parameters:
horizontalTextPosition - the horizontal position of the text (e.g. SwingUtilities.TRAILING or SwingUtilities.LEFT)
Method Detail

init

private void init(int horizontalTextPosition)
Initializes the CloseableTabbedPane

Parameters:
horizontalTextPosition - the horizontal position of the text (e.g. SwingUtilities.TRAILING or SwingUtilities.LEFT)

setCloseIcons

public void setCloseIcons(Icon normal,
                          Icon hoover,
                          Icon pressed)
Allows setting own closeicons.

Parameters:
normal - the normal closeicon
hoover - the closeicon when the mouse is over
pressed - the closeicon when the mouse is pressed

addTab

public void addTab(String title,
                   Component component)
Adds a Component represented by a title and no icon.

Overrides:
addTab in class JTabbedPane
Parameters:
title - the title to be displayed in this tab
component - the component to be displayed when this tab is clicked

addTab

public void addTab(String title,
                   Component component,
                   Icon extraIcon)
Adds a Component represented by a title and an icon.

Parameters:
title - the title to be displayed in this tab
component - the component to be displayed when this tab is clicked
extraIcon - the icon to be displayed in this tab

mouseClicked

public void mouseClicked(MouseEvent e)
Invoked when the mouse button has been clicked (pressed and released) on a component.

Specified by:
mouseClicked in interface MouseListener
Parameters:
e - the MouseEvent

mouseEntered

public void mouseEntered(MouseEvent e)
Invoked when the mouse enters a component.

Specified by:
mouseEntered in interface MouseListener
Parameters:
e - the MouseEvent

mouseExited

public void mouseExited(MouseEvent e)
Invoked when the mouse exits a component.

Specified by:
mouseExited in interface MouseListener
Parameters:
e - the MouseEvent

mousePressed

public void mousePressed(MouseEvent e)
Invoked when a mouse button has been pressed on a component.

Specified by:
mousePressed in interface MouseListener
Parameters:
e - the MouseEvent

mouseReleased

public void mouseReleased(MouseEvent e)
Invoked when a mouse button has been released on a component.

Specified by:
mouseReleased in interface MouseListener
Parameters:
e - the MouseEvent

mouseDragged

public void mouseDragged(MouseEvent e)
Invoked when a mouse button is pressed on a component and then dragged. MOUSE_DRAGGED events will continue to be delivered to the component where the drag originated until the mouse button is released (regardless of whether the mouse position is within the bounds of the component).

Due to platform-dependent Drag&Drop implementations, MOUSE_DRAGGED events may not be delivered during a native Drag&Drop operation.

Specified by:
mouseDragged in interface MouseMotionListener
Parameters:
e - the MouseEvent

mouseMoved

public void mouseMoved(MouseEvent e)
Invoked when the mouse cursor has been moved onto a component but no buttons have been pushed.

Specified by:
mouseMoved in interface MouseMotionListener
Parameters:
e - the MouseEvent

processMouseEvents

private void processMouseEvents(MouseEvent e)
Processes all caught MouseEvents.

Parameters:
e - the MouseEvent

addCloseableTabbedPaneListener

public void addCloseableTabbedPaneListener(CloseableTabbedPaneListener l)
Adds an CloseableTabbedPaneListener to the tabbedpane.

Parameters:
l - the CloseableTabbedPaneListener to be added

removeCloseableTabbedPaneListener

public void removeCloseableTabbedPaneListener(CloseableTabbedPaneListener l)
Removes an CloseableTabbedPaneListener from the tabbedpane.

Parameters:
l - the listener to be removed

getCloseableTabbedPaneListener

public CloseableTabbedPaneListener[] getCloseableTabbedPaneListener()
Returns an array of all the SearchListeners added to this SearchPane with addSearchListener().

Returns:
all of the SearchListeners added or an empty array if no listeners have been added

fireCloseTab

protected boolean fireCloseTab(int tabIndexToClose)
Notifies all listeners that have registered interest for notification on this event type.

Parameters:
tabIndexToClose - the index of the tab which should be closed
Returns:
true if the tab can be closed, false otherwise