com.vlsolutions.swing.docking
Class DockView

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.vlsolutions.swing.docking.DockView
All Implemented Interfaces:
DockableContainer, DockDropReceiver, SingleDockableContainer, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
DetachedDockView, DockViewAsTab, MaximizedDockView, TabbedDockView

public class DockView
extends javax.swing.JPanel
implements DockDropReceiver, SingleDockableContainer

DefaultImplementation of the SingleDockableContainer.

A Dockview is the component responsible for displaying a single user component inside a DockingPanel.

The DockView contains a DockViewTitleBar, used as a header to display useful information and optional controls (close/maximize/hide/float)

UI : The user component is displayed with decorations provided by a DockViewUI delegate.

Here is an example (VLDocking 1.1 "shadow" style) :

Sample DockView

Note : multiple user-components are not displayable by the dockview : the default implementation of TabbedDockableContainer is the DockTabbedPane.

See Also:
DockViewTitleBar, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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
          the desktop managing this view
protected  Dockable dockable
          the dockable managed by this view
protected  java.awt.Shape lastDropGeneralPath
          remember the last drop position to cache the shape used for showing the drop position
protected  java.awt.Shape lastDropShape
          remember the last drop position to cache the shape used for showing the drop position
protected  DockViewTitleBar title
           
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DockView()
          Constructs an empty DockView.
DockView(Dockable dockable)
          Constructs a new DockView for the given dockable.
DockView(Dockable dockable, boolean showTitle)
          Constructs a new DockView for the given dockable.
 
Method Summary
protected  java.awt.geom.GeneralPath buildPathForTab(java.awt.Rectangle bounds)
          Create a path used to display the drag shape of a tab container
 Dockable getDockable()
          Returns the contained component Returns the dockable this container is displaying
 DockViewTitleBar getTitleBar()
          Returns (or creates) the title bar of this dockview
 java.lang.String getUIClassID()
          
 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 event)
          The component is notified of a drag operation.
 void processDockableDrop(DockDropEvent event)
          The component is requested to perform a docking drop action.
protected  void scanDrop(DockEvent event, boolean drop)
           
 void setDockable(Dockable dockable)
          Adds the dockable's component to this DockView.
 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.JPanel
getAccessibleContext, getUI, paramString, 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, 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
add, add, add, add, add, 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, remove, remove, removeAll, 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
 

Field Detail

title

protected DockViewTitleBar title

desktop

protected DockingDesktop desktop
the desktop managing this view


dockable

protected Dockable dockable
the dockable managed by this view


lastDropShape

protected java.awt.Shape lastDropShape
remember the last drop position to cache the shape used for showing the drop position


lastDropGeneralPath

protected java.awt.Shape lastDropGeneralPath
remember the last drop position to cache the shape used for showing the drop position

Constructor Detail

DockView

public DockView()
Constructs an empty DockView.

A setDockable(Dockable) call is requiered for this constructor to be usefull.


DockView

public DockView(Dockable dockable)
Constructs a new DockView for the given dockable.

Parameters:
dockable - the dockable to show

DockView

public DockView(Dockable dockable,
                boolean showTitle)
Constructs a new DockView for the given dockable.

Parameters:
dockable - the dockable to show
Method Detail

getDockable

public Dockable getDockable()
Returns the contained component Returns the dockable this container is displaying

Specified by:
getDockable in interface SingleDockableContainer

setDockable

public void setDockable(Dockable dockable)
Adds the dockable's component to this DockView.

Parameters:
dockable - the user dockable

toString

public java.lang.String toString()

Overrides:
toString in class java.awt.Component

getUIClassID

public java.lang.String getUIClassID()

Overrides:
getUIClassID in class javax.swing.JPanel
Since:
2.0

processDockableDrag

public void processDockableDrag(DockDragEvent event)
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

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).

Please note that a drag into a DockView can also lead to create a DockTabbedPane.

Specified by:
processDockableDrop in interface DockDropReceiver

scanDrop

protected void scanDrop(DockEvent event,
                        boolean drop)

buildPathForTab

protected java.awt.geom.GeneralPath buildPathForTab(java.awt.Rectangle bounds)
Create a path used to display the drag shape of a tab container


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

getTitleBar

public DockViewTitleBar getTitleBar()
Returns (or creates) the title bar of this dockview



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