Class FloatingDockingPort
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,DockingConstants
,DockingPort
,DockingListener
,DockingMonitor
- Author:
- Christopher Butler
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.flexdock.docking.defaults.DefaultDockingPort
DefaultDockingPort.PortLayout
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Nested classes/interfaces inherited from interface org.flexdock.docking.event.DockingListener
DockingListener.Stub
-
Field Summary
FieldsFields inherited from class org.flexdock.docking.defaults.DefaultDockingPort
dockingListeners
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface org.flexdock.docking.DockingConstants
ACTIVE_WINDOW, BOTTOM, CENTER, CENTER_REGION, CLOSE_ACTION, DEFAULT_PERSISTENCE_KEY, DOCKING_ID, EAST_REGION, HEAVYWEIGHT_DOCKABLES, HORIZONTAL, LEFT, MOUSE_PRESSED, NORTH_REGION, PERMANENT_FOCUS_OWNER, PIN_ACTION, REGION, RIGHT, SOUTH_REGION, TOP, UNINITIALIZED, UNINITIALIZED_RATIO, UNKNOWN_REGION, UNSPECIFIED_SIBLING_PREF, VERTICAL, WEST_REGION
Fields inherited from interface org.flexdock.docking.DockingPort
INITIAL_TAB_POSITION
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Docks the specifiedDockable
within the specified region.void
dragStarted
(DockingEvent evt) No operation.int
protected Set
getFrameDragSources
(Dockable dockable) Returns the docking region within thisDockingPort
that contains the specifiedPoint
.protected void
installListeners
(Dockable dockable) boolean
isDockingAllowed
(String region, Component comp) protected void
toggleListeners
(Component comp, boolean add) boolean
Undocks the specifiedComponent
and returns a boolean indicating the success of the operation.void
No operation.protected void
uninstallListeners
(Dockable dockable) Methods inherited from class org.flexdock.docking.defaults.DefaultDockingPort
add, add, add, add, add, addDockingListener, clear, createBorderManager, createLayout, createTabbedPane, dock, dockingCanceled, dockingComplete, dropStarted, exportLayout, getBorderManager, getCenterDockable, getComponent, getDockable, getDockableAt, getDockables, getDockableSet, getDockedComponent, getDockingListeners, getDockingProperties, getDockingStrategy, getInitTabPlacement, getPersistentId, getRegionChecker, importLayout, installMaximizedDockable, isDockingAllowed, isParentDockingPort, isRoot, isSingleTabAllowed, isTabsAsDragSource, isValidDockableChild, isValidDockingRegion, paint, releaseForMaximization, remove, removeAll, removeDockingListener, returnFromMaximization, setBorderManager, setDragInProgress, setPersistentId, setRoot, setSingleTabAllowed, setTabsAsDragSource, undockingStarted, uninstallMaximizedDockable, updateTab
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, remove, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.flexdock.docking.DockingPort
getClientProperty, putClientProperty
-
Field Details
-
frame
-
dragListener
-
-
Constructor Details
-
FloatingDockingPort
-
-
Method Details
-
getRegion
Description copied from class:DefaultDockingPort
Returns the docking region within thisDockingPort
that contains the specifiedPoint
. Valid return values are those regions defined inDockingConstants
and includeNORTH_REGION
,SOUTH_REGION
,EAST_REGION
,WEST_REGION
,CENTER_REGION
, andUNKNOWN_REGION
.If
location
isnull
, thenUNKNOWN_REGION
is returned.This method gets the
RegionChecker
for thisDockingPort
by callinggetRegionChecker()
. It then attempts to locate theDockable
at the specifiedlocation
by callinggetDockableAt(Point location)
.This method defers processing to
getRegion(Component c, Point p)
for the currentRegionChecker
. If aDockable
was found at the specifiedPoint
, then the location of thePoint
is translated to the coordinate system of theComponent
for the embeddedDockable
and thatComponent
and modifiedPoint
are passed intogetRegion(Component c, Point p)
} for the currentRegionChecker
. If noDockable
was found, then the specifiedPoint
is left unmodified and thisDockingPort
and the suppliedPoint
are passed togetRegion(Component c, Point p)
} for the currentRegionChecker
.- Specified by:
getRegion
in interfaceDockingPort
- Overrides:
getRegion
in classDefaultDockingPort
- Parameters:
p
- the location within thisDockingPort
to examine for a docking region.- Returns:
- the docking region within this
DockingPort
that contains the specifiedPoint
- See Also:
-
isDockingAllowed
-
dock
Description copied from class:DefaultDockingPort
Docks the specifiedDockable
within the specified region. TheComponent
used for docking is returned by callinggetComponent()
on the specifiedDockable
. This method returnsfalse
immediately if the specifiedDockable
isnull
or ifisDockingAllowed(Component comp, String region)
returnsfalse
.If this
DockingPort
is currently empty, then theDockable
is docked into theCENTER_REGION
, regardless of the suppliedregion
parameter's value.If
isSingleTabAllowed()
returnsfalse
and theDockingPort
is emtpy, then theDockable
will be added directly to theDockingPort
and will take up all available space within theDockingPort
. In this case, subsequent calls togetDockedComponent()
will return the dockableComponent
.If
isSingleTabAllowed()
returnstrue
and theDockingPort
is emtpy, then aJTabbedPane
will be added directly to theDockingPort
and will take up all available space within theDockingPort
. The dockableComponent
will be added as a tab within the tabbed pane. In this case, subsequent calls togetDockedComponent()
will return theJTabbedPane
.If the
DockingPort
is not empty, and the specified region isCENTER_REGION
, then the dockableComponent
will be added to theJTabbedPane
returned bygetDockedComponent()
. If thisDockingPort
only contained a single dockableComponent
without a tabbed pane, then the currently dockedComponent
is removed, aJTabbedPane
is created and added, and both the oldComponent
and the new one are added to theJTabbedPane
. In this case, subsequent calls togetDockedComponent()
will return theJTabbedPane
.If the
DockingPort
is not empty, and the specified region isNORTH_REGION
,SOUTH_REGION
,EAST_REGION
, orWEST_REGION
, then the currently dockedComponent
is removed and replaced with aJSplitPane
. Two newDefaultDockingPorts
are created as sub-ports and are added to each side of theJSplitPane
. The previously dockedComponent
is docked to the CENTER_REGION of one of the sub-ports and the newComponent
is added to the other. In this case, subsequent calls togetDockedComponent()
will return theJSplitPane
. In this fasion, the sub-ports will now be capable of handling further sub-docking within the layout.JSplitPane
and sub-DockingPort
creation are delegated to theDockingStrategy
returned bygetDockingStrategy()
. Initial splitpane divider location is also controlled by thisDockingStrategy
.- Specified by:
dock
in interfaceDockingPort
- Overrides:
dock
in classDefaultDockingPort
- Parameters:
dockable
- theDockable
to be docked within thisDockingPort
region
- the region within thisDockingPort
to dock the specifiedDockable
- Returns:
true
if the docking operation was successful,false
otherwise.- See Also:
-
DockingPort.dock(Dockable, String)
DefaultDockingPort.isDockingAllowed(Component, String)
DefaultDockingPort.getDockedComponent()
DefaultDockingPort.getDockingStrategy()
DockingStrategy.createDockingPort(DockingPort)
DockingStrategy.createSplitPane(DockingPort, String)
DockingStrategy.getInitialDividerLocation(DockingPort, JSplitPane)
DockingStrategy.getDividerProportion(DockingPort, JSplitPane)
-
undock
Description copied from class:DefaultDockingPort
Undocks the specifiedComponent
and returns a boolean indicating the success of the operation.Since
DefaultDockingPort
may only contain one child component, there i s a container hierarchy to manage tabbed interfaces, split layouts, and sub-docking. As components are removed from this hierarchy, the hierarchy itself must be reevaluated. Removing a component from a child code>DefaultDockingPort} within aJSplitPane
renders the childDefaultDockingPort
unnecessary, which, in turn, renders the notion of splitting the layout with aJSplitPane
unnecessary (since there are no longer two components to split the layout between). Likewise, removing a child component from aJTabbedPane
such that there is only one child left within theJTabbedPane
removes the need for a tabbed interface to begin with.This method automatically handles the reevaluation of the container hierarchy to keep wrapper-container usage at a minimum. Since
DockingManager
makes this callback automatic, developers normally will not need to call this method explicitly. However, when removing a component from aDefaultDockingPort
using application code, developers should keep in mind to use this method instead ofremove()
.- Specified by:
undock
in interfaceDockingPort
- Overrides:
undock
in classDefaultDockingPort
- Parameters:
comp
- theComponent
to be undocked.- Returns:
- a boolean indicating the success of the operation
- See Also:
-
dragStarted
Description copied from class:DefaultDockingPort
No operation. Provided as a method stub to fulfull theDockingListener
interface contract.- Specified by:
dragStarted
in interfaceDockingListener
- Overrides:
dragStarted
in classDefaultDockingPort
- Parameters:
evt
- theDockingEvent
to respond to.- See Also:
-
undockingComplete
Description copied from class:DefaultDockingPort
No operation. Provided as a method stub to fulfull theDockingListener
interface contract.- Specified by:
undockingComplete
in interfaceDockingListener
- Overrides:
undockingComplete
in classDefaultDockingPort
- Parameters:
evt
- theDockingEvent
to respond to.- See Also:
-
toggleListeners
-
installListeners
-
uninstallListeners
-
getDockableCount
public int getDockableCount() -
getFrameDragSources
-