Module java.desktop

Class BasicSplitPaneUI

Direct Known Subclasses:
MetalSplitPaneUI, SynthSplitPaneUI

public class BasicSplitPaneUI
extends SplitPaneUI
A Basic L&F implementation of the SplitPaneUI.
  • Field Details

    • NON_CONTINUOUS_DIVIDER

      protected static final String NON_CONTINUOUS_DIVIDER
      The divider used for non-continuous layout is added to the split pane with this object.
      See Also:
      Constant Field Values
    • KEYBOARD_DIVIDER_MOVE_OFFSET

      protected static int KEYBOARD_DIVIDER_MOVE_OFFSET
      How far (relative) the divider does move when it is moved around by the cursor keys on the keyboard.
    • splitPane

      protected JSplitPane splitPane
      JSplitPane instance this instance is providing the look and feel for.
    • layoutManager

      LayoutManager that is created and placed into the split pane.
    • divider

      protected BasicSplitPaneDivider divider
      Instance of the divider for this JSplitPane.
    • propertyChangeListener

      protected PropertyChangeListener propertyChangeListener
      Instance of the PropertyChangeListener for this JSplitPane.
    • focusListener

      protected FocusListener focusListener
      Instance of the FocusListener for this JSplitPane.
    • dividerSize

      protected int dividerSize
      The size of the divider while the dragging session is valid.
    • nonContinuousLayoutDivider

      protected Component nonContinuousLayoutDivider
      Instance for the shadow of the divider when non continuous layout is being used.
    • draggingHW

      protected boolean draggingHW
      Set to true in startDragging if any of the children (not including the nonContinuousLayoutDivider) are heavy weights.
    • beginDragDividerLocation

      protected int beginDragDividerLocation
      Location of the divider when the dragging session began.
    • upKey

      @Deprecated protected KeyStroke upKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • downKey

      @Deprecated protected KeyStroke downKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • leftKey

      @Deprecated protected KeyStroke leftKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • rightKey

      @Deprecated protected KeyStroke rightKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • homeKey

      @Deprecated protected KeyStroke homeKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • endKey

      @Deprecated protected KeyStroke endKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • dividerResizeToggleKey

      @Deprecated protected KeyStroke dividerResizeToggleKey
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • keyboardUpLeftListener

      @Deprecated protected ActionListener keyboardUpLeftListener
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • keyboardDownRightListener

      @Deprecated protected ActionListener keyboardDownRightListener
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • keyboardHomeListener

      @Deprecated protected ActionListener keyboardHomeListener
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • keyboardEndListener

      @Deprecated protected ActionListener keyboardEndListener
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
    • keyboardResizeToggleListener

      @Deprecated protected ActionListener keyboardResizeToggleListener
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this previously undocumented field is no longer used. Key bindings are now defined by the LookAndFeel, please refer to the key bindings specification for further details.
  • Constructor Details

    • BasicSplitPaneUI

      public BasicSplitPaneUI()
  • Method Details

    • createUI

      public static ComponentUI createUI​(JComponent x)
      Creates a new instance of BasicSplitPaneUI.
      Parameters:
      x - a component
      Returns:
      a new instance of BasicSplitPaneUI
    • installUI

      public void installUI​(JComponent c)
      Installs the UI.
      Overrides:
      installUI in class ComponentUI
      Parameters:
      c - the component where this UI delegate is being installed
      See Also:
      ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()
    • installDefaults

      protected void installDefaults()
      Installs the UI defaults.
    • installListeners

      protected void installListeners()
      Installs the event listeners for the UI.
    • installKeyboardActions

      protected void installKeyboardActions()
      Installs the keyboard actions for the UI.
    • uninstallUI

      public void uninstallUI​(JComponent c)
      Uninstalls the UI.
      Overrides:
      uninstallUI in class ComponentUI
      Parameters:
      c - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
      See Also:
      ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()
    • uninstallDefaults

      protected void uninstallDefaults()
      Uninstalls the UI defaults.
    • uninstallListeners

      protected void uninstallListeners()
      Uninstalls the event listeners for the UI.
    • uninstallKeyboardActions

      protected void uninstallKeyboardActions()
      Uninstalls the keyboard actions for the UI.
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      Creates a PropertyChangeListener for the JSplitPane UI.
      Returns:
      an instance of PropertyChangeListener
    • createFocusListener

      protected FocusListener createFocusListener()
      Creates a FocusListener for the JSplitPane UI.
      Returns:
      an instance of FocusListener
    • createKeyboardUpLeftListener

      @Deprecated protected ActionListener createKeyboardUpLeftListener()
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this method is no longer used. Subclassers previously using this method should instead create an Action wrapping the ActionListener, and register that Action by overriding installKeyboardActions and placing the Action in the SplitPane's ActionMap. Please refer to the key bindings specification for further details.

      Creates an ActionListener for the JSplitPane UI that listens for specific key presses.

      Returns:
      an instance of ActionListener
    • createKeyboardDownRightListener

      @Deprecated protected ActionListener createKeyboardDownRightListener()
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this method is no longer used. Subclassers previously using this method should instead create an Action wrapping the ActionListener, and register that Action by overriding installKeyboardActions and placing the Action in the SplitPane's ActionMap. Please refer to the key bindings specification for further details.

      Creates an ActionListener for the JSplitPane UI that listens for specific key presses.

      Returns:
      an instance of ActionListener
    • createKeyboardHomeListener

      @Deprecated protected ActionListener createKeyboardHomeListener()
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this method is no longer used. Subclassers previously using this method should instead create an Action wrapping the ActionListener, and register that Action by overriding installKeyboardActions and placing the Action in the SplitPane's ActionMap. Please refer to the key bindings specification for further details.

      Creates an ActionListener for the JSplitPane UI that listens for specific key presses.

      Returns:
      an instance of ActionListener
    • createKeyboardEndListener

      @Deprecated protected ActionListener createKeyboardEndListener()
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this method is no longer used. Subclassers previously using this method should instead create an Action wrapping the ActionListener, and register that Action by overriding installKeyboardActions and placing the Action in the SplitPane's ActionMap. Please refer to the key bindings specification for further details.

      Creates an ActionListener for the JSplitPane UI that listens for specific key presses.

      Returns:
      an instance of ActionListener
    • createKeyboardResizeToggleListener

      @Deprecated protected ActionListener createKeyboardResizeToggleListener()
      Deprecated.
      As of Java 2 platform v1.3.
      As of Java 2 platform v1.3 this method is no longer used. Subclassers previously using this method should instead create an Action wrapping the ActionListener, and register that Action by overriding installKeyboardActions and placing the Action in the SplitPane's ActionMap. Please refer to the key bindings specification for further details.

      Creates an ActionListener for the JSplitPane UI that listens for specific key presses.

      Returns:
      an instance of ActionListener
    • getOrientation

      public int getOrientation()
      Returns the orientation for the JSplitPane.
      Returns:
      the orientation
    • setOrientation

      public void setOrientation​(int orientation)
      Set the orientation for the JSplitPane.
      Parameters:
      orientation - the orientation
    • isContinuousLayout

      public boolean isContinuousLayout()
      Determines whether the JSplitPane is set to use a continuous layout.
      Returns:
      true if a continuous layout is set
    • setContinuousLayout

      public void setContinuousLayout​(boolean b)
      Turn continuous layout on/off.
      Parameters:
      b - if true the continuous layout turns on
    • getLastDragLocation

      public int getLastDragLocation()
      Returns the last drag location of the JSplitPane.
      Returns:
      the last drag location
    • setLastDragLocation

      public void setLastDragLocation​(int l)
      Set the last drag location of the JSplitPane.
      Parameters:
      l - the drag location
    • getDivider

      public BasicSplitPaneDivider getDivider()
      Returns the divider between the top Components.
      Returns:
      the divider between the top Components
    • createDefaultNonContinuousLayoutDivider

      protected Component createDefaultNonContinuousLayoutDivider()
      Returns the default non continuous layout divider, which is an instance of Canvas that fills in the background with dark gray.
      Returns:
      the default non continuous layout divider
    • setNonContinuousLayoutDivider

      protected void setNonContinuousLayoutDivider​(Component newDivider)
      Sets the divider to use when the JSplitPane is configured to not continuously layout. This divider will only be used during a dragging session. It is recommended that the passed in component be a heavy weight.
      Parameters:
      newDivider - the new divider
    • setNonContinuousLayoutDivider

      protected void setNonContinuousLayoutDivider​(Component newDivider, boolean rememberSizes)
      Sets the divider to use.
      Parameters:
      newDivider - the new divider
      rememberSizes - if true the pane size is remembered
    • getNonContinuousLayoutDivider

      public Component getNonContinuousLayoutDivider()
      Returns the divider to use when the JSplitPane is configured to not continuously layout. This divider will only be used during a dragging session.
      Returns:
      the divider
    • getSplitPane

      public JSplitPane getSplitPane()
      Returns the JSplitPane this instance is currently contained in.
      Returns:
      the instance of JSplitPane
    • createDefaultDivider

      public BasicSplitPaneDivider createDefaultDivider()
      Creates the default divider.
      Returns:
      the default divider
    • resetToPreferredSizes

      public void resetToPreferredSizes​(JSplitPane jc)
      Messaged to reset the preferred sizes.
      Specified by:
      resetToPreferredSizes in class SplitPaneUI
      Parameters:
      jc - a JSplitPane
    • setDividerLocation

      public void setDividerLocation​(JSplitPane jc, int location)
      Sets the location of the divider to location.
      Specified by:
      setDividerLocation in class SplitPaneUI
      Parameters:
      jc - a JSplitPane
      location - an integer specifying the location of the divider
    • getDividerLocation

      public int getDividerLocation​(JSplitPane jc)
      Returns the location of the divider, which may differ from what the splitpane thinks the location of the divider is.
      Specified by:
      getDividerLocation in class SplitPaneUI
      Parameters:
      jc - a JSplitPane
      Returns:
      an integer specifying the location of the divider
    • getMinimumDividerLocation

      public int getMinimumDividerLocation​(JSplitPane jc)
      Gets the minimum location of the divider.
      Specified by:
      getMinimumDividerLocation in class SplitPaneUI
      Parameters:
      jc - a JSplitPane
      Returns:
      and integer specifying the minimum location of the divider
    • getMaximumDividerLocation

      public int getMaximumDividerLocation​(JSplitPane jc)
      Gets the maximum location of the divider.
      Specified by:
      getMaximumDividerLocation in class SplitPaneUI
      Parameters:
      jc - a JSplitPane
      Returns:
      an integer specifying the maximum location of the divider
    • finishedPaintingChildren

      public void finishedPaintingChildren​(JSplitPane sp, Graphics g)
      Called when the specified split pane has finished painting its children.
      Specified by:
      finishedPaintingChildren in class SplitPaneUI
      Parameters:
      sp - a JSplitPane
      g - the Graphics context
    • getPreferredSize

      public Dimension getPreferredSize​(JComponent jc)
      Returns the preferred size for the passed in component, This is passed off to the current layout manager.
      Overrides:
      getPreferredSize in class ComponentUI
      Parameters:
      jc - the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
      Returns:
      a Dimension object containing given component's preferred size appropriate for the look and feel
      See Also:
      JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)
    • getMinimumSize

      public Dimension getMinimumSize​(JComponent jc)
      Returns the minimum size for the passed in component, This is passed off to the current layout manager.
      Overrides:
      getMinimumSize in class ComponentUI
      Parameters:
      jc - the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
      Returns:
      a Dimension object or null
      See Also:
      JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), ComponentUI.getPreferredSize(javax.swing.JComponent)
    • getMaximumSize

      public Dimension getMaximumSize​(JComponent jc)
      Returns the maximum size for the passed in component, This is passed off to the current layout manager.
      Overrides:
      getMaximumSize in class ComponentUI
      Parameters:
      jc - the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
      Returns:
      a Dimension object or null
      See Also:
      JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)
    • getInsets

      public Insets getInsets​(JComponent jc)
      Returns the insets. The insets are returned from the border insets of the current border.
      Parameters:
      jc - a component
      Returns:
      the insets
    • resetLayoutManager

      protected void resetLayoutManager()
      Resets the layout manager based on orientation and messages it with invalidateLayout to pull in appropriate Components.
    • startDragging

      protected void startDragging()
      Should be messaged before the dragging session starts, resets lastDragLocation and dividerSize.
    • dragDividerTo

      protected void dragDividerTo​(int location)
      Messaged during a dragging session to move the divider to the passed in location. If continuousLayout is true the location is reset and the splitPane validated.
      Parameters:
      location - the location of divider
    • finishDraggingTo

      protected void finishDraggingTo​(int location)
      Messaged to finish the dragging session. If not continuous display the dividers location will be reset.
      Parameters:
      location - the location of divider
    • getDividerBorderSize

      @Deprecated protected int getDividerBorderSize()
      Deprecated.
      As of Java 2 platform v1.3, instead set the border on the divider.
      As of Java 2 platform v1.3 this method is no longer used. Instead you should set the border on the divider.

      Returns the width of one side of the divider border.

      Returns:
      the width of one side of the divider border