com.javadocking.dock
Class BorderDock

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.javadocking.dock.BorderDock
All Implemented Interfaces:
CompositeDock, Dock, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class BorderDock
extends javax.swing.JPanel
implements CompositeDock

This is a composite dock that can have one child dock in the center and between zero and 4 child docks at the borders. At every border there is zero or one child dock. This dock can not contain dockables. When dockables are added, child docks are created and the dockables are added to the child docks.

Information on using border docks is in How to Use Composite Docks in The Sanaware Developer Guide.

The positions for child docks of this dock are one-dimensional. The possible child docks and their first position value are:

A dockable can only be added if it has as one of its docking modes:

It can only be added in a position that corresponds with one of its docking modes.

When a dockable is added, a child dock is created with the 'childDockFactory'. The dockable is added to the child dock.

In the center there can be a dock or there can be a java.awt.Component.

The dock in the center will never be removed, even if it is empty. This kind of dock is never empty, because it contains a component in the center or a child dock in the center. When it contains 5 child docks it is full. When it contains 4 child docks at the borders and a component in the center it is also full.

Author:
Heidi Rakels.
See Also:
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
static int MODE_GENERAL
          When the border dock is set to this mode, the docking mode for dockables in child docks should have one of the folowing values: for Position.TOP: DockingMode.TOP, for Position.BOTTOM: DockingMode.BOTTOM, for Position.LEFT: DockingMode.LEFT, and for Position.RIGHT: DockingMode.RIGHT.
static int MODE_MINIMIZE_BAR
          When the border dock is set to this mode, the docking mode for dockables in child docks should have one of the folowing values: for Position.TOP: DockingMode.HORIZONTAL_MINIMIZE, for Position.BOTTOM: DockingMode.HORIZONTAL_MINIMIZE, for Position.LEFT: DockingMode.VERTICAL_MINIMIZE, and for Position.RIGHT: DockingMode.VERTICAL_MINIMIZE.
static int MODE_TOOL_BAR
          When the border dock is set to this mode, the docking mode for dockables in child docks should have one of the folowing values: for Position.TOP: DockingMode.HORIZONTAL_TOOLBAR, for Position.BOTTOM: DockingMode.HORIZONTAL_TOOLBAR, for Position.LEFT: DockingMode.VERTICAL_TOOLBAR, and for Position.RIGHT: DockingMode.VERTICAL_TOOLBAR.
 
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 com.javadocking.dock.CompositeDock
CHILD_DOCK_PREFIX
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BorderDock()
          Constructs an abstract border dock with a LeafDockFactory as factory for the child docks.
BorderDock(Dock centerChildDock)
          Constructs a border dock with a given child dock for in the center and a LeafDockFactory as factory for the child docks.
BorderDock(DockFactory childDockFactory)
          Constructs a border dock with the given factory for creating the child docks at the borders.
BorderDock(DockFactory childDockFactory, Dock centerChildDock)
          Constructs a border dock with the given factory for creating the child docks at the borders and a given child dock for in the center.
 
Method Summary
 void addChildDock(Dock dock, Position position)
           Sets the given dock as child dock of this dock in the given position.
 boolean addDockable(Dockable dockableToAdd, java.awt.Point relativeLocation, java.awt.Point dockableOffset)
           Adds a dockable to this dock.
 void addDockingListener(DockingListener listener)
          Adds a listener for DockingEvents of this dock.
 void clearGhosts()
          Clears the ghost child docks from this dock.
 void emptyChild(Dock emptyChildDock)
          Is called when the specified child dock is empty.
 int getBottomDockingMode()
          Gets the docking mode for a dockable that is docked at the bottom child dock.
 java.awt.Component getCenterComponent()
          Gets the component in the center of the dock.
 Dock getChildDock(int index)
          Gets the child dock with the specified index.
 int getChildDockCount()
          Gets the number of child docks of this dock.
 DockFactory getChildDockFactory()
          Gets the factory that creates the child docks for this composite dock.
 Dock getChildDockOfPosition(int position)
          Gets the child dock in the given position.
 Position getChildDockPosition(Dock childDock)
          Gets the position, where the child dock is docked in this dock.
protected  int getChildDockWidth(int preferredWidth, int totalWidth, int position)
          Computes the width for a component that will be added.
 int getDockingMode(int dockPosition)
          Calculates the docking mode that corresponds with a given dock position in this dock.
protected  void getDockingRectangle(java.awt.Rectangle rectangle, int position)
           Computes the relative rectangle in this dock in which we can dock for a given position.
protected  int getDockPosition(java.awt.Point relativePosition)
           Gets the position where the dockable should be docked in the dock given the mouse position.
 int getDockPriority(Dockable dockable, java.awt.Point relativeLocation)
           Determines if the dockable can be added.
 int getLeftDockingMode()
          Gets the docking mode for a dockable that is docked at the left child dock.
 CompositeDock getParentDock()
          Gets the parent dock of this dock.
protected  void getPriorityRectangle(java.awt.Rectangle rectangle, int position)
           Gets the relative rectangle in this dock in which docking has priority.
 int getRightDockingMode()
          Gets the docking mode for a dockable that is docked at the right child dock.
 int getTopDockingMode()
          Gets the docking mode for a dockable that is docked at the top child dock.
 void ghostChild(Dock childDock)
          Makes the given empty child dock invisible.
 boolean isEmpty()
          This dock can never be empty.
protected  boolean isFree(int position)
          Verifies if there is not already a child dock at the given position.
 boolean isFull()
          Determines if any more dockables can be added to this dock.
 void loadProperties(java.lang.String prefix, java.util.Properties properties, java.util.Map childDocks, java.util.Map dockablesMap, java.awt.Window owner)
           Loads the properties for this dock.
 void removeCenterComponent()
          Removes the component in the center of this dock.
 void removeDockingListener(DockingListener listener)
          Removes a listener for docking events of this dock.
 int retrieveDockingRectangle(Dockable dockable, java.awt.Point relativeLocation, java.awt.Point dockableOffset, java.awt.Rectangle rectangle)
           Sets the given rectangle to the position and size of the graphical content component of the dockable, when it will be docked in this dock.
 void saveProperties(java.lang.String prefix, java.util.Properties properties, java.util.Map childDockIds)
           Saves the properties of this dock in the given properties object.
 void setBottomDockingMode(int bottomDockingMode)
          Sets the docking mode for a dockable that is docked at the bottom child dock.
 void setCenterComponent(java.awt.Component centerComponent)
          Sets the component in the center of the dock.
 void setChildDockFactory(DockFactory childDockFactory)
          Sets the factory that creates the child docks for this composite dock.
 void setDock(Dock dock, int position)
          Sets the given dock as child dock of this dock in the given position.
 void setLeftDockingMode(int leftDockingMode)
          Sets the docking mode for a dockable that is docked at the left child dock.
 void setMode(int mode)
          Defines the docking modes for the dockables that will be added to this dock.
 void setParentDock(CompositeDock parentDock)
          Sets the specified dock as new parent dock of this dock.
 void setRightDockingMode(int rightDockingMode)
          Sets the docking mode for a dockable that is docked at the right child dock.
 void setTopDockingMode(int topDockingMode)
          Sets the docking mode for a dockable that is docked at the top child dock.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, 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, 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

MODE_GENERAL

public static final int MODE_GENERAL
When the border dock is set to this mode, the docking mode for dockables in child docks should have one of the folowing values:

See Also:
Constant Field Values

MODE_TOOL_BAR

public static final int MODE_TOOL_BAR
When the border dock is set to this mode, the docking mode for dockables in child docks should have one of the folowing values:

See Also:
Constant Field Values

MODE_MINIMIZE_BAR

public static final int MODE_MINIMIZE_BAR
When the border dock is set to this mode, the docking mode for dockables in child docks should have one of the folowing values:

See Also:
Constant Field Values
Constructor Detail

BorderDock

public BorderDock()
Constructs an abstract border dock with a LeafDockFactory as factory for the child docks.


BorderDock

public BorderDock(Dock centerChildDock)
Constructs a border dock with a given child dock for in the center and a LeafDockFactory as factory for the child docks.

Parameters:
centerChildDock - The child dock that will be put in the center.

BorderDock

public BorderDock(DockFactory childDockFactory)
Constructs a border dock with the given factory for creating the child docks at the borders.

Parameters:
childDockFactory - The factory for creating the child docks at the borders.

BorderDock

public BorderDock(DockFactory childDockFactory,
                  Dock centerChildDock)
Constructs a border dock with the given factory for creating the child docks at the borders and a given child dock for in the center.

Parameters:
childDockFactory - The factory for creating the child docks at the borders.
centerChildDock - The child dock that will be put in the center.
Method Detail

getDockPriority

public int getDockPriority(Dockable dockable,
                           java.awt.Point relativeLocation)

Determines if the dockable can be added.

A dockable can only be added if it has as one of its docking modes:

It can only be added in a position that corresponds with one of its docking modes.

When there are already 5 child docks, the dockable cannot be added anymore.

We only can dock if the dock factory can create a child dock for the given dockable.

Specified by:
getDockPriority in interface Dock
Parameters:
dockable - The dockable that will be added.
relativeLocation - The location where the dockable will be added.
Returns:
The integer that determines the priority for adding the dockable. If the dockable cannot be added, CANNOT_DOCK is returned. The higher the integer, the higher the priority for docking the dockable in this dock.

retrieveDockingRectangle

public int retrieveDockingRectangle(Dockable dockable,
                                    java.awt.Point relativeLocation,
                                    java.awt.Point dockableOffset,
                                    java.awt.Rectangle rectangle)
Description copied from interface: Dock

Sets the given rectangle to the position and size of the graphical content component of the dockable, when it will be docked in this dock.

Determines if the dockable can be added to this dock. If the dockable cannot be added, it returns Priority.CANNOT_DOCK and the given rectangle is not changed.

Specified by:
retrieveDockingRectangle in interface Dock
Parameters:
dockable - The dockable that will be added.
relativeLocation - The location where the dockable will be added.
dockableOffset - The mouse location where the dragging started, relatively to the previous dock of the dockable.
rectangle - This rectangle will be set to the location and size of the graphical component of the dockable when it will be docked in this dock. The rectangle is relative to this dock.
Returns:
If the dockable cannot be added, Priority.CANNOT_DOCK is returned, otherwise a positive integer.

addDockable

public boolean addDockable(Dockable dockableToAdd,
                           java.awt.Point relativeLocation,
                           java.awt.Point dockableOffset)
Description copied from interface: Dock

Adds a dockable to this dock.

First it determines if the dockable can be added with Dock.getDockPriority(Dockable, Point). If this method returns CANNOT_DOCK, the dockable is not added.

Specified by:
addDockable in interface Dock
Parameters:
dockableToAdd - The dockable that will be added.
relativeLocation - The location where the dockable will be added.
dockableOffset - The mouse location where the dragging started, relatively to the previous dock of the dockable.
Returns:
True if the dockable was added to this dock, false otherwise.

isEmpty

public boolean isEmpty()
This dock can never be empty. It should always have a child dock in the center.

Specified by:
isEmpty in interface Dock
Returns:
Always false.

isFull

public boolean isFull()
Description copied from interface: Dock
Determines if any more dockables can be added to this dock.

Specified by:
isFull in interface Dock
Returns:
True if any more dockables can be added to this dock, false otherwise.

getParentDock

public CompositeDock getParentDock()
Description copied from interface: Dock
Gets the parent dock of this dock.

Specified by:
getParentDock in interface Dock
Returns:
The parent dock of this dock.

setParentDock

public void setParentDock(CompositeDock parentDock)
Description copied from interface: Dock
Sets the specified dock as new parent dock of this dock.

Specified by:
setParentDock in interface Dock
Parameters:
parentDock - The parent dock of this dock.

saveProperties

public void saveProperties(java.lang.String prefix,
                           java.util.Properties properties,
                           java.util.Map childDockIds)
Description copied from interface: Dock

Saves the properties of this dock in the given properties object.

The property names for this dock should start with the given prefix.

Specified by:
saveProperties in interface Dock
Parameters:
prefix - The prefix for the property names.
properties - The properties object to which the properties should be added.
childDockIds - A mapping between the child docks that are already saved and the keys that are used for the save.
  • map key: a child dock that is already saved (Dock).
  • map value: the key that is used for saving the dock (java.lang.String).

loadProperties

public void loadProperties(java.lang.String prefix,
                           java.util.Properties properties,
                           java.util.Map childDocks,
                           java.util.Map dockablesMap,
                           java.awt.Window owner)
                    throws java.io.IOException
Description copied from interface: Dock

Loads the properties for this dock. The properties can be found in the given properties object. The property names for this dock start with the given prefix.

The dockables that should be docked in this dock are added to this dock. They can be found in the given dockables mapping. The docks that should be docked inside this dock are added to this dock. They can be found in the given childDocks mapping.

This method should be called after the empty constructor to create the content of the dock. Don't call this method for a dock that already has a content.

Specified by:
loadProperties in interface Dock
Parameters:
prefix - The prefix of the names of the properties that have been intended for this dock.
properties - The properties object that contains the properties for this dock. It can contain also properties for other objects, but they will have another prefix.
childDocks - A mapping between the dock keys of the child docks that are already loaded and the docks.
  • map key: the key that is used for saving the dock (java.lang.String).
  • map value: a child dock that is already loaded (Dock).
dockablesMap - A mapping that contains the available dockables.
  • map key: the ID of the dockable (java.lang.String).
  • map value: the dockable (Dockable).
owner - The owner window of the dock in the dock model (DockModel).
Throws:
java.io.IOException - If an error occures while decoding the properties.

addDockingListener

public void addDockingListener(DockingListener listener)
Description copied from interface: Dock
Adds a listener for DockingEvents of this dock. The listener will be informed before and after adding, moving or removing dockables or child docks from this dock.

Specified by:
addDockingListener in interface Dock
Parameters:
listener - A docking listener that will be notified when a dockable or child dock is added, moved, or removed.

removeDockingListener

public void removeDockingListener(DockingListener listener)
Description copied from interface: Dock
Removes a listener for docking events of this dock.

Specified by:
removeDockingListener in interface Dock
Parameters:
listener - The docking listener to remove.

addChildDock

public void addChildDock(Dock dock,
                         Position position)
                  throws java.lang.IllegalStateException

Sets the given dock as child dock of this dock in the given position.

The valid positions are:

If the position is not valid, the first free position of the dock is taken.

Specified by:
addChildDock in interface CompositeDock
Parameters:
dock - The new child dock for this dock.
position - The new child dock position.
Throws:
java.lang.IllegalStateException - If this dock is full.

getChildDockCount

public int getChildDockCount()
Description copied from interface: CompositeDock
Gets the number of child docks of this dock.

Specified by:
getChildDockCount in interface CompositeDock
Returns:
The number of child docks of this dock.

getChildDock

public Dock getChildDock(int index)
                  throws java.lang.IndexOutOfBoundsException
Description copied from interface: CompositeDock
Gets the child dock with the specified index.

Specified by:
getChildDock in interface CompositeDock
Parameters:
index - The index of the child dock.
Returns:
The child dock with the specified index.
Throws:
java.lang.IndexOutOfBoundsException - If the index is out of range (index < 0 || index >= getChildDockCount()).

getChildDockPosition

public Position getChildDockPosition(Dock childDock)
                              throws java.lang.IllegalArgumentException
Description copied from interface: CompositeDock
Gets the position, where the child dock is docked in this dock.

Specified by:
getChildDockPosition in interface CompositeDock
Parameters:
childDock - The dockable that is docked in this dock.
Returns:
The position where the child dock is docked in this dock. Not null.
Throws:
java.lang.IllegalArgumentException - If the given dock is not docked in this dock.

emptyChild

public void emptyChild(Dock emptyChildDock)
Description copied from interface: CompositeDock
Is called when the specified child dock is empty. Normally this child dock will be removed.

Specified by:
emptyChild in interface CompositeDock
Parameters:
emptyChildDock - The child dock that is empty.

ghostChild

public void ghostChild(Dock childDock)
Description copied from interface: CompositeDock
Makes the given empty child dock invisible. It may not be removed, because there are still listeners attached to the child dock, that are currently dragging the dockable. The dock is becoming a ghost. It is still there, but it is invisible.

Specified by:
ghostChild in interface CompositeDock
Parameters:
childDock - The child dock that is empty, but not may be removed.

clearGhosts

public void clearGhosts()
Description copied from interface: CompositeDock
Clears the ghost child docks from this dock. The ghost child docks are removed.

Specified by:
clearGhosts in interface CompositeDock

getChildDockFactory

public DockFactory getChildDockFactory()
Description copied from interface: CompositeDock
Gets the factory that creates the child docks for this composite dock.

Specified by:
getChildDockFactory in interface CompositeDock
Returns:
The factory that creates the child docks for this composite dock.

setChildDockFactory

public void setChildDockFactory(DockFactory childDockFactory)
Description copied from interface: CompositeDock
Sets the factory that creates the child docks for this composite dock.

Specified by:
setChildDockFactory in interface CompositeDock
Parameters:
childDockFactory - The factory that creates the child docks for this composite dock.

getChildDockOfPosition

public Dock getChildDockOfPosition(int position)
Gets the child dock in the given position.

Parameters:
position - This is an integer defined by the class Position. The possible values are:

getDockPosition

protected int getDockPosition(java.awt.Point relativePosition)

Gets the position where the dockable should be docked in the dock given the mouse position.

There are 4 possible return values:

Parameters:
relativePosition - The mouse location, where the dockable will be added.
Returns:
The position where the dockable should be docked in the dock.

getPriorityRectangle

protected void getPriorityRectangle(java.awt.Rectangle rectangle,
                                    int position)

Gets the relative rectangle in this dock in which docking has priority. The given rectangle gets the size and position of this priority rectangle.

For the positions Position.LEFT, Position.RIGHT, Position.TOP, and Position.BOTTOM the rectangle is at the correspondent border of this dock.

Parameters:
rectangle - Gets the size and position of the calculated priority rectangle.
position - The position of the priority rectangle. There are 4 possibilities:

getDockingRectangle

protected void getDockingRectangle(java.awt.Rectangle rectangle,
                                   int position)

Computes the relative rectangle in this dock in which we can dock for a given position. The given rectangle gets the size and position of this priority rectangle.

For the positions Position.LEFT, Position.RIGHT, Position.TOP, and Position.BOTTOM the rectangle is at the correspondent border of this dock.

Parameters:
rectangle - Gets the size and position of the calculated priority rectangle.
position - The position of the rectangle. There are 4 possibilities:

isFree

protected boolean isFree(int position)
Verifies if there is not already a child dock at the given position.

Parameters:
position - The position for a new child dock.
Returns:
True if there is not already a dock at the given position, false otherwise.
Throws:
java.lang.IllegalArgumentException - If the given position is not Position.CENTER, Position.LEFT, Position.RIGHT, Position.TOP or Position.BOTTOM.

getCenterComponent

public java.awt.Component getCenterComponent()
Gets the component in the center of the dock.

Returns:
The component in the center of the dock.

setCenterComponent

public void setCenterComponent(java.awt.Component centerComponent)
Sets the component in the center of the dock. If there was already

Parameters:
centerComponent - The component in the center of the dock.
Throws:
java.lang.IllegalStateException - When there is already a dock in the center.
java.lang.IllegalStateException - When there is already a component in the center.

removeCenterComponent

public void removeCenterComponent()
Removes the component in the center of this dock.

Throws:
java.lang.IllegalStateException - If there is no center component in this dock.

getBottomDockingMode

public int getBottomDockingMode()
Gets the docking mode for a dockable that is docked at the bottom child dock.

Returns:
The docking mode for a dockable that is docked at the bottom child dock.

setBottomDockingMode

public void setBottomDockingMode(int bottomDockingMode)
Sets the docking mode for a dockable that is docked at the bottom child dock.

Parameters:
bottomDockingMode - The docking mode for a dockable that is docked at the bottom child dock.

getLeftDockingMode

public int getLeftDockingMode()
Gets the docking mode for a dockable that is docked at the left child dock.

Returns:
The docking mode for a dockable that is docked at the left child dock.

setLeftDockingMode

public void setLeftDockingMode(int leftDockingMode)
Sets the docking mode for a dockable that is docked at the left child dock.

Parameters:
leftDockingMode - The docking mode for a dockable that is docked at the left child dock.

getRightDockingMode

public int getRightDockingMode()
Gets the docking mode for a dockable that is docked at the right child dock.

Returns:
The docking mode for a dockable that is docked at the right child dock.

setRightDockingMode

public void setRightDockingMode(int rightDockingMode)
Sets the docking mode for a dockable that is docked at the right child dock.

Parameters:
rightDockingMode - The docking mode for a dockable that is docked at the right child dock.

getTopDockingMode

public int getTopDockingMode()
Gets the docking mode for a dockable that is docked at the top child dock.

Returns:
The docking mode for a dockable that is docked at the top child dock.

setTopDockingMode

public void setTopDockingMode(int topDockingMode)
Sets the docking mode for a dockable that is docked at the top child dock.

Parameters:
topDockingMode - The docking mode for a dockable that is docked at the top child dock.

getDockingMode

public int getDockingMode(int dockPosition)
Calculates the docking mode that corresponds with a given dock position in this dock.

Parameters:
dockPosition - The dock position of a dockable in this dock. This should be:
Returns:
The docking mode that corresponds with the given dock position. This will be:
  • topDockingMode,
  • bottomDockingMode,
  • leftDockingMode, or
  • rightDockingMode
  • DockingMode.CENTER
Throws:
java.lang.IllegalArgumentException - If the given position is not a valid position for this dock.

getChildDockWidth

protected int getChildDockWidth(int preferredWidth,
                                int totalWidth,
                                int position)
Computes the width for a component that will be added.

Parameters:
preferredWidth - The preferred width or height of the component that will be added.
totalWidth - The total width or height that is available.
position - The position where the new component will come. This can be Position.LEFT,Position.RIGHT, Position.TOP, or Position.BOTTOM.
Returns:
The new width for the component that will be added.

setDock

public void setDock(Dock dock,
                    int position)
Sets the given dock as child dock of this dock in the given position. The positions can be: The orientation of the child tool bar dock is set also.

Parameters:
dock - The new child dock for this dock.
Throws:
java.lang.IllegalStateException - If there is already a dock at this position.
java.lang.IllegalStateException - If the position is not valid.

setMode

public void setMode(int mode)
Defines the docking modes for the dockables that will be added to this dock.

Parameters:
mode - Defines the docking modes for the dockables that will be added to this dock. Possible values are: