Package org.flexdock.docking.defaults
Class DockingSplitPane
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JSplitPane
org.flexdock.docking.defaults.DockingSplitPane
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,DockingConstants
- Author:
- Christopher Butler
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JSplitPane
JSplitPane.AccessibleJSplitPane
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
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
protected boolean
protected DockingPort
protected double
protected double
protected String
Fields inherited from class javax.swing.JSplitPane
BOTTOM, CONTINUOUS_LAYOUT_PROPERTY, continuousLayout, DIVIDER, DIVIDER_LOCATION_PROPERTY, DIVIDER_SIZE_PROPERTY, dividerSize, HORIZONTAL_SPLIT, LAST_DIVIDER_LOCATION_PROPERTY, lastDividerLocation, LEFT, leftComponent, ONE_TOUCH_EXPANDABLE_PROPERTY, oneTouchExpandable, orientation, ORIENTATION_PROPERTY, RESIZE_WEIGHT_PROPERTY, RIGHT, rightComponent, TOP, VERTICAL_SPLIT
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorsConstructorDescriptionDockingSplitPane
(DockingPort port, String region) Creates a newDockingSplitPane
for the specifiedDockingPort
with the understanding that the resultingDockingSplitPane
will be used for docking aDockable
into theDockingPort's
specifiedregion
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
cleanup()
Releases any internal references to external objects to aid garbage collection.void
doLayout()
Overridden to ensure proper divider location on initial rendering.protected void
finalize()
Returns the 'oldest'Component
to have been added to thisDockingSplitPane
as a result of a docking operation.double
Returns the docking region for which thisDockingSplitPane
was created.protected boolean
boolean
Indicates whether the 'oldest'Component
to have been added to thisDockingSplitPane
as a result of a docking operation is in the TOP or LEFT side of the split pane.void
void
setBounds
(int x, int y, int w, int h) void
setConstantPercent
(boolean cstPercent) void
setDividerLocation
(double percent) void
setInitialDividerRatio
(double ratio) Sets the initial divider ration for creating split panes.Methods inherited from class javax.swing.JSplitPane
addImpl, getAccessibleContext, getBottomComponent, getDividerLocation, getDividerSize, getLastDividerLocation, getLeftComponent, getMaximumDividerLocation, getMinimumDividerLocation, getOrientation, getResizeWeight, getRightComponent, getTopComponent, getUI, getUIClassID, isContinuousLayout, isOneTouchExpandable, isValidateRoot, paintChildren, paramString, remove, remove, removeAll, setBottomComponent, setContinuousLayout, setDividerLocation, setDividerSize, setLastDividerLocation, setLeftComponent, setOneTouchExpandable, setOrientation, setResizeWeight, setRightComponent, setTopComponent, 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, paint, paintBorder, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, 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, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
dockingPort
-
region
-
dividerLocDetermined
protected boolean dividerLocDetermined -
controllerInTopLeft
protected boolean controllerInTopLeft -
initialDividerRatio
protected double initialDividerRatio -
percent
protected double percent
-
-
Constructor Details
-
DockingSplitPane
Creates a newDockingSplitPane
for the specifiedDockingPort
with the understanding that the resultingDockingSplitPane
will be used for docking aDockable
into theDockingPort's
specifiedregion
. Neitherport
orregion
may benull
.region
must be a valid docking region as defined byisValidDockingRegion(String region)
.- Parameters:
port
- theDockingPort
for which thisDockingSplitPane
is to be created.region
- the region within the specifiedDockingPort
for which thisDockingSplitPane
is to be created.- See Also:
-
-
Method Details
-
setBounds
public void setBounds(int x, int y, int w, int h) -
setConstantPercent
public void setConstantPercent(boolean cstPercent) -
resetToPreferredSizes
public void resetToPreferredSizes()- Overrides:
resetToPreferredSizes
in classJSplitPane
-
setDividerLocation
public void setDividerLocation(double percent) - Overrides:
setDividerLocation
in classJSplitPane
-
getPercent
public double getPercent() -
isDividerSizeProperlyDetermined
protected boolean isDividerSizeProperlyDetermined() -
getElderComponent
Returns the 'oldest'Component
to have been added to thisDockingSplitPane
as a result of a docking operation. ADockingSplitPane
is created based upon the need to share space within aDockingPort
between twoDockables
. This happens when a newDockable
is introduced into an outer region of aDockingPort
that already contains aDockable
. TheDockable
that was in theDockingPort
prior to splitting the layout is the 'elder'Component
and, in many circumstances, may be used to control initial divider location and resize weight.If this split pane contains
DockingPorts
as its child components, then this method will return theComponent
determined by callinggetDockedComponent()
for theDockingPort
in this split pane's elder region.The elder region of this
DockingSplitPane
is determined using the value returned fromgetRegion()
, wheregetRegion()
indicates the docking region of the 'new'Dockable
for thisDockingSplitPane
.- Returns:
- the 'oldest'
Component
to have been added to thisDockingSplitPane
as a result of a docking operation. - See Also:
-
getRegion
Returns the docking region for which thisDockingSplitPane
was created. ADockingSplitPane
is created based upon the need to share space within aDockingPort
between twoDockables
. This happens when a newDockable
is introduced into an outer region of aDockingPort
that already contains aDockable
. This method returns that outer region for which thisDockingSplitPane
was created and may be used to control the orientation of the split pane. The region returned by this method will be the same passed into theDockingSplitPane
constructor on instantiation.- Returns:
- the docking region for which this
DockingSplitPane
was created. - See Also:
-
isElderTopLeft
public boolean isElderTopLeft()Indicates whether the 'oldest'Component
to have been added to thisDockingSplitPane
as a result of a docking operation is in the TOP or LEFT side of the split pane. ADockingSplitPane
is created based upon the need to share space within aDockingPort
between twoDockables
. This happens when a newDockable
is introduced into an outer region of aDockingPort
that already contains aDockable
. TheDockable
that was in theDockingPort
prior to splitting the layout is the 'elder'Component
and is returned bygetElderComponent()
. This method indicates whether or not thatComponent
is in the TOP or LEFT side of thisDockingSplitPane
.The elder region of this
DockingSplitPane
is determined using the value returned fromgetRegion()
, wheregetRegion()
indicates the docking region of the 'new'Dockable
for thisDockingSplitPane
.- Returns:
true
if the 'oldest'Component
to have been added to thisDockingSplitPane
is in the TOP or LEFT side of the split pane;false
otherwise.- See Also:
-
doLayout
public void doLayout()Overridden to ensure proper divider location on initial rendering. Sometimes, a split divider location is set as a proportion before the split pane itself has been fully realized in the container hierarchy. This results in a layout calculation based on a proportion of zero width or height, rather than the desired proportion of width or height after the split pane has been fully rendered. This method ensures that defaultJSplitPane
layout behavior is deferred until after the initial dimensions of this split pane have been properly determined. -
cleanup
public void cleanup()Releases any internal references to external objects to aid garbage collection. This method ispublic
and may be invoked manually for proactive memory management. Otherwise, this method is invoked by thisDockingSplitPane's
finalize()
method. -
setInitialDividerRatio
public void setInitialDividerRatio(double ratio) Sets the initial divider ration for creating split panes. The default value is0.5
.- Parameters:
ratio
- a ratio for determining weighting between the two sides of a split pane.- Throws:
IllegalArgumentException
- ifratio
is less than 0.0 or greater than 1.0.
-
finalize
-