|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
com.javadocking.dock.CompositeGridDock
public class CompositeGridDock
This is a composite dock that has child docks that are organized in a grid. 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 composite grid 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 first position value of a child dock is between 0 and the number of child docks minus 1, it is the position in the grid.
A dockable can be added to this dock if:
DockingMode.GRID
.CompositeDockable
, but a child dock could not be created for the composite,
the dockable can be added, if a child dock can be created for every child dockable of the composite.When a dockable is added, a child dock is created with the 'childDockFactory'. The dockable is added to the child dock.
This kind of dock is never full. It is empty when there are 0 child docks.
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 |
FILL_FLOW_HORIZONTAL
With this fill mode the number of columns and rows is calculated to fill the panel of the grid optimally. |
static int |
FILL_FLOW_VERTICAL
With this fill mode the number of columns and rows is calculated to fill the panel of the grid optimally. |
static int |
FILL_SQUARE_HORIZONTAL
With this fill mode the number of rows and columns are equal or there is one more column. |
static int |
FILL_SQUARE_VERTICAL
With this fill mode the number of rows and columns are equal or there is one more row. |
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 | |
---|---|
CompositeGridDock()
Constructs a composite grid dock with a SingleDockFactory
as factory for creating the child docks. |
|
CompositeGridDock(DockFactory childDockFactory)
Constructs a composite grid dock with the given factory for the creating child docks. |
Method Summary | |
---|---|
void |
addChildDock(Dock dock,
Position position)
Adds the given dock as child dock at 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 DockingEvent s of this dock. |
protected int |
calculateColumnCount()
Calculates the number of columns there will be in the grid. |
protected boolean |
canAddDockableWithPriority(Dockable dockable,
java.awt.Point relativeLocation)
Determines if the given dockable can be added to this dock with priority. |
protected boolean |
checkDockingModes(Dockable dockable)
Checks the docking modes of the dockable. |
void |
clearGhosts()
Clears the ghost child docks from this dock. |
void |
emptyChild(Dock emptyChildDock)
Is called when the specified child dock is empty. |
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. |
Position |
getChildDockPosition(Dock childDock)
Gets the position, where the child dock is docked in this dock. |
protected int |
getDockingMode()
Gets the docking mode for a dockable that is docked in this dock. |
protected int |
getDockPosition(Dockable newDockable,
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 |
getFillMode()
Determines the strategy for organizing the dockables in rows and columns. |
CompositeDock |
getParentDock()
Gets the parent dock of this dock. |
void |
ghostChild(Dock emptyChildDock)
Makes the given empty child dock invisible. |
boolean |
isEmpty()
Determines if this dock doesn't have any dockables docked in it, or doesn't have any child docks docked in it. |
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 newChildDocks,
java.util.Map dockables,
java.awt.Window owner)
Loads the properties for 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 |
setChildDockFactory(DockFactory childDockFactory)
Sets the factory that creates the child docks for this composite dock. |
void |
setFillMode(int newFillMode)
Sets the strategy for organizing the dockables in rows and columns. |
void |
setParentDock(CompositeDock parentDock)
Sets the specified dock as new parent dock of this 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 |
---|
public static final int FILL_SQUARE_HORIZONTAL
public static final int FILL_SQUARE_VERTICAL
public static final int FILL_FLOW_HORIZONTAL
public static final int FILL_FLOW_VERTICAL
Constructor Detail |
---|
public CompositeGridDock()
SingleDockFactory
as factory for creating the child docks.
public CompositeGridDock(DockFactory childDockFactory)
childDockFactory
- The factory for creating the child docks.Method Detail |
---|
public int getDockPriority(Dockable dockable, java.awt.Point relativeLocation)
Determines if the dockable can be added.
A dockable can be added in if:
checkDockingModes(Dockable)
returns true
.CompositeDockable
, but a child dock could not be created for the composite,
the dockable can be added, if a child dock can be created for every child dockable of the composite.
getDockPriority
in interface Dock
dockable
- The dockable that will be added.relativeLocation
- The location where the dockable will be added.
public int retrieveDockingRectangle(Dockable dockable, java.awt.Point relativeLocation, java.awt.Point dockableOffset, java.awt.Rectangle rectangle)
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.
retrieveDockingRectangle
in interface Dock
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.
Priority.CANNOT_DOCK
is returned, otherwise a positive integer.public boolean addDockable(Dockable dockableToAdd, java.awt.Point relativeLocation, java.awt.Point dockableOffset)
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.
addDockable
in interface Dock
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.
public boolean isEmpty()
Dock
isEmpty
in interface Dock
public boolean isFull()
Dock
isFull
in interface Dock
public CompositeDock getParentDock()
Dock
getParentDock
in interface Dock
public void setParentDock(CompositeDock parentDock)
Dock
setParentDock
in interface Dock
parentDock
- The parent dock of this dock.public void saveProperties(java.lang.String prefix, java.util.Properties properties, java.util.Map childDockIds)
Dock
Saves the properties of this dock in the given properties object.
The property names for this dock should start with the given prefix.
saveProperties
in interface Dock
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.
Dock
).public void loadProperties(java.lang.String prefix, java.util.Properties properties, java.util.Map newChildDocks, java.util.Map dockables, java.awt.Window owner) throws java.io.IOException
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.
loadProperties
in interface Dock
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.newChildDocks
- A mapping between the dock keys of the child docks that are already loaded and the docks.
Dock
).dockables
- A mapping that contains the available dockables.
Dockable
).owner
- The owner window of the dock in the dock model (DockModel
).
java.io.IOException
- If an error occures while decoding the properties.public void addDockingListener(DockingListener listener)
Dock
DockingEvent
s of this dock.
The listener will be informed before and after
adding, moving or removing dockables or child docks from this dock.
addDockingListener
in interface Dock
listener
- A docking listener that will be notified when a dockable or child dock is added, moved, or removed.public void removeDockingListener(DockingListener listener)
Dock
removeDockingListener
in interface Dock
listener
- The docking listener to remove.public void addChildDock(Dock dock, Position position) throws java.lang.IllegalStateException
CompositeDock
Adds the given dock as child dock at the given position.
If there is already a dock at the given position, the child is added at the first free position. If the given position is illegal, then the dock is added at the first free position.
addChildDock
in interface CompositeDock
dock
- The new child dock for this dock.position
- The position for the child dock.
java.lang.IllegalStateException
- If the dock is full.public int getChildDockCount()
CompositeDock
getChildDockCount
in interface CompositeDock
public Dock getChildDock(int index) throws java.lang.IndexOutOfBoundsException
CompositeDock
getChildDock
in interface CompositeDock
index
- The index of the child dock.
java.lang.IndexOutOfBoundsException
- If the index is out of range (index < 0 || index >= getChildDockCount()).public Position getChildDockPosition(Dock childDock) throws java.lang.IllegalArgumentException
CompositeDock
getChildDockPosition
in interface CompositeDock
childDock
- The dockable that is docked in this dock.
java.lang.IllegalArgumentException
- If the given dock is not docked in this dock.public void emptyChild(Dock emptyChildDock)
CompositeDock
emptyChild
in interface CompositeDock
emptyChildDock
- The child dock that is empty.public void ghostChild(Dock emptyChildDock)
CompositeDock
ghostChild
in interface CompositeDock
emptyChildDock
- The child dock that is empty, but not may be removed.public void clearGhosts()
CompositeDock
clearGhosts
in interface CompositeDock
public DockFactory getChildDockFactory()
CompositeDock
getChildDockFactory
in interface CompositeDock
public void setChildDockFactory(DockFactory childDockFactory)
CompositeDock
setChildDockFactory
in interface CompositeDock
childDockFactory
- The factory that creates the child docks for this composite dock.public int getFillMode()
public void setFillMode(int newFillMode)
newFillMode
- The strategy for organizing the dockables in rows and columns.protected int getDockPosition(Dockable newDockable, java.awt.Point relativePosition)
newDockable
- The dockable to add.relativePosition
- The relative mouse location in this dock.
protected boolean canAddDockableWithPriority(Dockable dockable, java.awt.Point relativeLocation)
dockable
- The dockable that may be added to this dock.relativeLocation
- The location of the mouse relative to this dock.
protected int calculateColumnCount()
fillMode
.
Valid fill modes are FILL_SQUARE_HORIZONTAL, FILL_SQUARE_VERTICAL, FILL_FLOW_HORIZONTAL or FILL_FLOW_VERTICAL.
java.lang.IllegalStateException
- when the fillMode
is not FILL_SQUARE_HORIZONTAL,
FILL_SQUARE_VERTICAL, FILL_FLOW_HORIZONTAL or FILL_FLOW_VERTICAL.protected boolean checkDockingModes(Dockable dockable)
DockingMode.GRID
as possible docking mode.
dockable
- The dockable to add.
protected int getDockingMode()
DockingMode.GRID
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |