Class 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
      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      DockingSplitPane​(DockingPort port, java.lang.String region)
      Creates a new DockingSplitPane for the specified DockingPort with the understanding that the resulting DockingSplitPane will be used for docking a Dockable into the DockingPort's specified region.
    • 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 this DockingSplitPane as a result of a docking operation.
      double getPercent()  
      java.lang.String getRegion()
      Returns the docking region for which this DockingSplitPane was created.
      protected boolean isDividerSizeProperlyDetermined()  
      boolean isElderTopLeft()
      Indicates whether the 'oldest' Component to have been added to this DockingSplitPane 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
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • 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 new DockingSplitPane for the specified DockingPort with the understanding that the resulting DockingSplitPane will be used for docking a Dockable into the DockingPort's specified region. Neither port or region may be null. region must be a valid docking region as defined by isValidDockingRegion(String region).
        Parameters:
        port - the DockingPort for which this DockingSplitPane is to be created.
        region - the region within the specified DockingPort for which this DockingSplitPane 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 class java.awt.Component
      • setConstantPercent

        public void setConstantPercent​(boolean cstPercent)
      • resetToPreferredSizes

        public void resetToPreferredSizes()
        Overrides:
        resetToPreferredSizes in class javax.swing.JSplitPane
      • setDividerLocation

        public void setDividerLocation​(double percent)
        Overrides:
        setDividerLocation in class javax.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 this DockingSplitPane as a result of a docking operation. A DockingSplitPane is created based upon the need to share space within a DockingPort between two Dockables. This happens when a new Dockable is introduced into an outer region of a DockingPort that already contains a Dockable. The Dockable that was in the DockingPort 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 the Component determined by calling getDockedComponent() for the DockingPort in this split pane's elder region.

        The elder region of this DockingSplitPane is determined using the value returned from getRegion(), where getRegion() indicates the docking region of the 'new' Dockable for this DockingSplitPane.

        Returns:
        the 'oldest' Component to have been added to this DockingSplitPane as a result of a docking operation.
        See Also:
        getRegion(), DockingPort.getDockedComponent()
      • getRegion

        public java.lang.String getRegion()
        Returns the docking region for which this DockingSplitPane was created. A DockingSplitPane is created based upon the need to share space within a DockingPort between two Dockables. This happens when a new Dockable is introduced into an outer region of a DockingPort that already contains a Dockable. This method returns that outer region for which this DockingSplitPane 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 the DockingSplitPane 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 this DockingSplitPane as a result of a docking operation is in the TOP or LEFT side of the split pane. A DockingSplitPane is created based upon the need to share space within a DockingPort between two Dockables. This happens when a new Dockable is introduced into an outer region of a DockingPort that already contains a Dockable. The Dockable that was in the DockingPort prior to splitting the layout is the 'elder' Component and is returned by getElderComponent(). This method indicates whether or not that Component is in the TOP or LEFT side of this DockingSplitPane.

        The elder region of this DockingSplitPane is determined using the value returned from getRegion(), where getRegion() indicates the docking region of the 'new' Dockable for this DockingSplitPane.

        Returns:
        true if the 'oldest' Component to have been added to this DockingSplitPane 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 default JSplitPane layout behavior is deferred until after the initial dimensions of this split pane have been properly determined.
        Overrides:
        doLayout in class java.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 is public and may be invoked manually for proactive memory management. Otherwise, this method is invoked by this DockingSplitPane's finalize() method.
      • setInitialDividerRatio

        public void setInitialDividerRatio​(double ratio)
        Sets the initial divider ration for creating split panes. The default value is 0.5.
        Parameters:
        ratio - a ratio for determining weighting between the two sides of a split pane.
        Throws:
        java.lang.IllegalArgumentException - if ratio is less than 0.0 or greater than 1.0.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable