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:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,DockingConstants
public class DockingSplitPane extends javax.swing.JSplitPane implements DockingConstants
- Author:
- Christopher Butler
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JSplitPane
javax.swing.JSplitPane.AccessibleJSplitPane
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
controllerInTopLeft
protected boolean
dividerLocDetermined
protected DockingPort
dockingPort
protected double
initialDividerRatio
protected double
percent
protected java.lang.String
region
-
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
-
-
Constructor Summary
Constructors Constructor Description DockingSplitPane(DockingPort port, java.lang.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
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()
java.awt.Component
getElderComponent()
Returns the 'oldest'Component
to have been added to thisDockingSplitPane
as a result of a docking operation.double
getPercent()
java.lang.String
getRegion()
Returns the docking region for which thisDockingSplitPane
was created.protected boolean
isDividerSizeProperlyDetermined()
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.void
resetToPreferredSizes()
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 Detail
-
dockingPort
protected DockingPort dockingPort
-
region
protected java.lang.String region
-
dividerLocDetermined
protected boolean dividerLocDetermined
-
controllerInTopLeft
protected boolean controllerInTopLeft
-
initialDividerRatio
protected double initialDividerRatio
-
percent
protected double percent
-
-
Constructor Detail
-
DockingSplitPane
public DockingSplitPane(DockingPort port, java.lang.String region)
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:
DockingManager.isValidDockingRegion(String)
-
-
Method Detail
-
setBounds
public void setBounds(int x, int y, int w, int h)
- Overrides:
setBounds
in classjava.awt.Component
-
setConstantPercent
public void setConstantPercent(boolean cstPercent)
-
resetToPreferredSizes
public void resetToPreferredSizes()
- Overrides:
resetToPreferredSizes
in classjavax.swing.JSplitPane
-
setDividerLocation
public void setDividerLocation(double percent)
- Overrides:
setDividerLocation
in classjavax.swing.JSplitPane
-
getPercent
public double getPercent()
-
isDividerSizeProperlyDetermined
protected boolean isDividerSizeProperlyDetermined()
-
getElderComponent
public java.awt.Component 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()
,DockingPort.getDockedComponent()
-
getRegion
public java.lang.String 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:
DockingSplitPane(DockingPort, String)
-
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:
getElderComponent()
,getRegion()
-
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.- Overrides:
doLayout
in classjava.awt.Container
- See Also:
Container.doLayout()
,JSplitPane.setDividerLocation(double)
-
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:
java.lang.IllegalArgumentException
- ifratio
is less than 0.0 or greater than 1.0.
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
-