com.vlsolutions.swing.docking
Class DockTabbedPane

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.vlsolutions.swing.docking.DockTabbedPane
All Implemented Interfaces:
DockableContainer, DockableDragSource, DockDropReceiver, TabbedDockableContainer, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants

public class DockTabbedPane
extends javax.swing.JTabbedPane
implements DockDropReceiver, DockableDragSource, TabbedDockableContainer

A JTabbedPane customized for integration with the docking framework.

Defaults :

This tabbed pane is not meant to be used outside of DockingDesktop because of their connected behaviour (drag/drop support, docking constraints, etc).

As of version 2.0 of the framework, the tabbed pane displays a close icon (other functions are available with a right click menu).

See Also:
DockingDesktop, Serialized Form

Nested Class Summary
 
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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  DockingDesktop desktop
           
protected  javax.swing.JPopupMenu popup
          The pop-up menu used to provide fast "close" shortcuts (close all, close others)
protected  int popupTab
          the tab currently associated with the pop-up
protected  int previousSelectedDockable
          The tab that was selected before the current one
 
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
DockTabbedPane()
           
 
Method Summary
 void addDockable(Dockable dockable, int tab)
          Adds a new tab respecting the presentation and constraints of the component.
protected  java.awt.geom.GeneralPath buildPathAfterLastTab(java.awt.Rectangle vbounds, java.awt.Rectangle afterlast)
          Creates a general path suitable for showing tab insertion after the last tab
protected  java.awt.geom.GeneralPath buildPathForCurrentTab(java.awt.Rectangle vbounds, java.awt.Rectangle tabbounds)
          Creates a general path suitable for showing tab insertion before the currentTab
 void endDragComponent(boolean dropped)
          notifies the source when the drag operation has ended (by a drop or cancelled)
 Dockable getDockable()
          Returns the Dockable component this source is for
 Dockable getDockableAt(int index)
          Returns the dockable at the index tab
 java.awt.Container getDockableContainer()
          returns the DockableContainer responsible for displaying the associated dockable
 int getDockableIndex(DockKey key)
          Returns the tab index of the dockable corresponding to the given key, or null if the dockable doesn't belong to this tab.
 Dockable getSelectedDockable()
          Returns the currently selected (front) dockable
 int indexOfDockable(Dockable dockable)
          Returns the index of the given dockable
 void installDocking(DockingDesktop desktop)
          Invoked once after creation, in order to let this component register its DockableDragSources to the DockingDesktop, and have a reference of this Desktop.
 void processDockableDrag(DockDragEvent e)
          The component is notified of a drag operation.
 void processDockableDrop(DockDropEvent event)
          The component is requested to perform a docking drop action.
 void removeDockable(Dockable dockable)
          Removes a dockable from the tabs
 void removeDockable(int index)
          Remove the dockable at specified index tab
 void setSelectedDockable(Dockable dockable)
          Change the tab selection to display this dockable
 boolean startDragComponent(java.awt.Point p)
          Notifies this source that a drag operation has begun.
 java.lang.String toString()
          
 void uninstallDocking(DockingDesktop desktop)
          Called once, when the dockablecontainer is no longer used by the desktop, in order to releases resources and listeners taken on installDocking().
 
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, 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, 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, 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, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.vlsolutions.swing.docking.TabbedDockableContainer
getTabCount
 

Field Detail

desktop

protected DockingDesktop desktop

popup

protected javax.swing.JPopupMenu popup
The pop-up menu used to provide fast "close" shortcuts (close all, close others)


popupTab

protected int popupTab
the tab currently associated with the pop-up


previousSelectedDockable

protected int previousSelectedDockable
The tab that was selected before the current one

Constructor Detail

DockTabbedPane

public DockTabbedPane()
Method Detail

getDockableIndex

public int getDockableIndex(DockKey key)
Returns the tab index of the dockable corresponding to the given key, or null if the dockable doesn't belong to this tab.


addDockable

public void addDockable(Dockable dockable,
                        int tab)
Adds a new tab respecting the presentation and constraints of the component. Adds a dockable to the given index tab.

Specified by:
addDockable in interface TabbedDockableContainer

processDockableDrag

public void processDockableDrag(DockDragEvent e)
Description copied from interface: DockDropReceiver
The component is notified of a drag operation.

This method is used to give a visual clue of dropping capability (for example, mouse cursor change, painting a shadow of future component position)

These clues are transmitted via the event's methods.

Specified by:
processDockableDrag in interface DockDropReceiver
See Also:
DockDragEvent, DockDropEvent

buildPathForCurrentTab

protected java.awt.geom.GeneralPath buildPathForCurrentTab(java.awt.Rectangle vbounds,
                                                           java.awt.Rectangle tabbounds)
Creates a general path suitable for showing tab insertion before the currentTab


buildPathAfterLastTab

protected java.awt.geom.GeneralPath buildPathAfterLastTab(java.awt.Rectangle vbounds,
                                                          java.awt.Rectangle afterlast)
Creates a general path suitable for showing tab insertion after the last tab


processDockableDrop

public void processDockableDrop(DockDropEvent event)
The component is requested to perform a docking drop action.

This method is called only after a successful DockDropReceiver.processDockableDrag(DockDragEvent)

The parameters provided for the drop are the same than those of the last drag (in order to avoid an allowed last drag followed by a rejected drop).

On event acceptation ( DockDropEvent.acceptDrop() , the source component will be removed from its container, so the DropReceiver must add the component to its own hierarchy otherwise the component would be lost (from a user's point of view).

Specified by:
processDockableDrop in interface DockDropReceiver

startDragComponent

public boolean startDragComponent(java.awt.Point p)
Notifies this source that a drag operation has begun.

The source may reject the drag according to internal conditions (in that case this method shall return false) or to wrong mouse position .

Specified by:
startDragComponent in interface DockableDragSource
Returns:
true if drag operation is accepted (i.e the zone pointed by p refers to a draggable component), false otherwise.

getDockable

public Dockable getDockable()
Returns the Dockable component this source is for

Specified by:
getDockable in interface DockableDragSource

getSelectedDockable

public Dockable getSelectedDockable()
Returns the currently selected (front) dockable

Specified by:
getSelectedDockable in interface TabbedDockableContainer

setSelectedDockable

public void setSelectedDockable(Dockable dockable)
Change the tab selection to display this dockable

Specified by:
setSelectedDockable in interface TabbedDockableContainer

getDockableAt

public Dockable getDockableAt(int index)
Returns the dockable at the index tab

Specified by:
getDockableAt in interface TabbedDockableContainer

removeDockable

public void removeDockable(Dockable dockable)
Removes a dockable from the tabs

Specified by:
removeDockable in interface TabbedDockableContainer

removeDockable

public void removeDockable(int index)
Remove the dockable at specified index tab

Specified by:
removeDockable in interface TabbedDockableContainer

toString

public java.lang.String toString()

Overrides:
toString in class java.awt.Component

indexOfDockable

public int indexOfDockable(Dockable dockable)
Returns the index of the given dockable

Specified by:
indexOfDockable in interface TabbedDockableContainer

installDocking

public void installDocking(DockingDesktop desktop)
Invoked once after creation, in order to let this component register its DockableDragSources to the DockingDesktop, and have a reference of this Desktop.

basic implementation use a single DragSource, and thus calls desk.installDockableDragSource(dragSource).

Specified by:
installDocking in interface DockableContainer

uninstallDocking

public void uninstallDocking(DockingDesktop desktop)
Called once, when the dockablecontainer is no longer used by the desktop, in order to releases resources and listeners taken on installDocking().

Specified by:
uninstallDocking in interface DockableContainer

getDockableContainer

public java.awt.Container getDockableContainer()
Description copied from interface: DockableDragSource
returns the DockableContainer responsible for displaying the associated dockable

Specified by:
getDockableContainer in interface DockableDragSource

endDragComponent

public void endDragComponent(boolean dropped)
Description copied from interface: DockableDragSource
notifies the source when the drag operation has ended (by a drop or cancelled)

Specified by:
endDragComponent in interface DockableDragSource


© Copyright 2004-2007 VLSolutions. All Rights Reserved.
www.vlsolutions.com : Java Components - Smart Client Applications