javax.swing.plaf.basic
Class BasicSplitPaneDivider

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.plaf.basic.BasicSplitPaneDivider
All Implemented Interfaces:
ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener

public class BasicSplitPaneDivider
extends Container
implements PropertyChangeListener

The divider that separates the two parts of a JSplitPane in the Basic look and feel.

Implementation status: We do not have a real implementation yet. Currently, it is mostly a stub to allow compiling other parts of the javax.swing.plaf.basic package, although some parts are already functional.

See Also:
Serialized Form

Nested Class Summary
protected  class BasicSplitPaneDivider.DividerLayout
          This helper class acts as the Layout Manager for the divider.
protected  class BasicSplitPaneDivider.DragController
          Performs the tasks associated with an ongoing drag operation.
protected  class BasicSplitPaneDivider.MouseHandler
          The listener for handling mouse events from both the divider and the containing JSplitPane.
protected  class BasicSplitPaneDivider.VerticalDragController
          This is a helper class that controls dragging when the orientation is VERTICAL_SPLIT.
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  int dividerSize
          The thickness of the divider in pixels.
protected  BasicSplitPaneDivider.DragController dragger
          An object that performs the tasks associated with an ongoing drag operation, or null if the user is currently not dragging the divider.
protected  Component hiddenDivider
          A divider that is used for layout purposes.
protected  JButton leftButton
          The button for showing and hiding the left (or top) component of the JSplitPane.
protected  BasicSplitPaneDivider.MouseHandler mouseHandler
          The listener for handling mouse events from both the divider and the containing JSplitPane.
protected static int ONE_TOUCH_OFFSET
          The distance the one touch buttons will sit from the divider's edges.
protected static int ONE_TOUCH_SIZE
          The width and height of the little buttons for showing and hiding parts of a JSplitPane in a single mouse click.
protected  int orientation
          The current orientation of the containing JSplitPane, which is either JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT.
protected  JButton rightButton
          The button for showing and hiding the right (or bottom) component of the JSplitPane.
protected  JSplitPane splitPane
          The JSplitPane containing this divider.
protected  BasicSplitPaneUI splitPaneUI
          The delegate object that is responsible for the UI of the JSplitPane that contains this divider.
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BasicSplitPaneDivider(BasicSplitPaneUI ui)
          Constructs a new divider.
 
Method Summary
protected  JButton createLeftOneTouchButton()
          Creates a button for showing and hiding the left (or top) part of a JSplitPane.
protected  JButton createRightOneTouchButton()
          Creates a button for showing and hiding the right (or bottom) part of a JSplitPane.
protected  void dragDividerTo(int location)
          Drags the divider to a given location by calling the dragDividerTo method of the UI delegate of the enclosing JSplitPane.
protected  void finishDraggingTo(int location)
          Finishes a dragging gesture by calling the finishDraggingTo method of the UI delegate of the enclosing JSplitPane.
 BasicSplitPaneUI getBasicSplitPaneUI()
          Returns the delegate object that is responsible for the UI of the JSplitPane containing this divider.
 Border getBorder()
          Retrieves the border of this divider.
 int getDividerSize()
          Retrieves the thickness of the divider.
 Insets getInsets()
          Retrieves the insets of the divider.
 Dimension getMinimumSize()
          Returns the minimal size of this divider, which is dividerSize by dividerSize pixels.
 Dimension getPreferredSize()
          Returns the preferred size of this divider, which is dividerSize by dividerSize pixels.
protected  void oneTouchExpandableChanged()
          Reacts to changes of the oneToughExpandable property of the containing JSplitPane.
 void paint(Graphics g)
          Paints the divider by painting its border.
protected  void prepareForDragging()
          Prepares the divider for dragging by calling the startDragging method of the UI delegate of the enclosing JSplitPane.
 void propertyChange(PropertyChangeEvent e)
          Processes events from the JSplitPane that contains this divider.
 void setBasicSplitPaneUI(BasicSplitPaneUI newUI)
          Sets the delegate object that is responsible for the UI of the JSplitPane containing this divider.
 void setBorder(Border border)
          Sets the border of this divider.
 void setDividerSize(int newSize)
          Sets the thickness of the divider.
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getListeners, getMaximumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ONE_TOUCH_SIZE

protected static final int ONE_TOUCH_SIZE
The width and height of the little buttons for showing and hiding parts of a JSplitPane in a single mouse click.

See Also:
Constant Field Values

ONE_TOUCH_OFFSET

protected static final int ONE_TOUCH_OFFSET
The distance the one touch buttons will sit from the divider's edges.

See Also:
Constant Field Values

dragger

protected BasicSplitPaneDivider.DragController dragger
An object that performs the tasks associated with an ongoing drag operation, or null if the user is currently not dragging the divider.


splitPaneUI

protected BasicSplitPaneUI splitPaneUI
The delegate object that is responsible for the UI of the JSplitPane that contains this divider.


dividerSize

protected int dividerSize
The thickness of the divider in pixels.


hiddenDivider

protected Component hiddenDivider
A divider that is used for layout purposes.


splitPane

protected JSplitPane splitPane
The JSplitPane containing this divider.


mouseHandler

protected BasicSplitPaneDivider.MouseHandler mouseHandler
The listener for handling mouse events from both the divider and the containing JSplitPane.

The reason for also handling MouseEvents from the containing JSplitPane is that users should be able to start a drag gesture from inside the JSplitPane, but slightly outisde the divider.


orientation

protected int orientation
The current orientation of the containing JSplitPane, which is either JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT.


leftButton

protected JButton leftButton
The button for showing and hiding the left (or top) component of the JSplitPane.


rightButton

protected JButton rightButton
The button for showing and hiding the right (or bottom) component of the JSplitPane.

Constructor Detail

BasicSplitPaneDivider

public BasicSplitPaneDivider(BasicSplitPaneUI ui)
Constructs a new divider.

Parameters:
ui - the UI delegate of the enclosing JSplitPane.
Method Detail

setBasicSplitPaneUI

public void setBasicSplitPaneUI(BasicSplitPaneUI newUI)
Sets the delegate object that is responsible for the UI of the JSplitPane containing this divider.

Parameters:
newUI - the UI delegate, or null to release the connection to the current delegate.

getBasicSplitPaneUI

public BasicSplitPaneUI getBasicSplitPaneUI()
Returns the delegate object that is responsible for the UI of the JSplitPane containing this divider.

Returns:
The UI for the JSplitPane.

setDividerSize

public void setDividerSize(int newSize)
Sets the thickness of the divider.

Parameters:
newSize - the new width or height in pixels.

getDividerSize

public int getDividerSize()
Retrieves the thickness of the divider.

Returns:
The thickness of the divider.

setBorder

public void setBorder(Border border)
Sets the border of this divider.

Parameters:
border - the new border. Typically, this will be an instance of BasicBorders.SplitPaneBorder.
Since:
1.3

getBorder

public Border getBorder()
Retrieves the border of this divider.

Returns:
the current border, or null if no border has been set.
Since:
1.3

getInsets

public Insets getInsets()
Retrieves the insets of the divider. If a border has been installed on the divider, the result of calling its getBorderInsets method is returned. Otherwise, the inherited implementation will be invoked.

Overrides:
getInsets in class Container
Returns:
The insets for this container.
See Also:
Border.getBorderInsets(java.awt.Component)

getPreferredSize

public Dimension getPreferredSize()
Returns the preferred size of this divider, which is dividerSize by dividerSize pixels.

Overrides:
getPreferredSize in class Container
Returns:
The preferred size of the divider.
See Also:
Component.getMinimumSize(), Component.setPreferredSize(Dimension), LayoutManager

getMinimumSize

public Dimension getMinimumSize()
Returns the minimal size of this divider, which is dividerSize by dividerSize pixels.

Overrides:
getMinimumSize in class Container
Returns:
The minimal size of the divider.
See Also:
Component.getPreferredSize(), Component.setMinimumSize(Dimension), LayoutManager

propertyChange

public void propertyChange(PropertyChangeEvent e)
Processes events from the JSplitPane that contains this divider.

Specified by:
propertyChange in interface PropertyChangeListener
Parameters:
e - The PropertyChangeEvent.

paint

public void paint(Graphics g)
Paints the divider by painting its border.

Overrides:
paint in class Container
Parameters:
g - The Graphics Object to paint with.
See Also:
Component.update(Graphics)

oneTouchExpandableChanged

protected void oneTouchExpandableChanged()
Reacts to changes of the oneToughExpandable property of the containing JSplitPane.


createLeftOneTouchButton

protected JButton createLeftOneTouchButton()
Creates a button for showing and hiding the left (or top) part of a JSplitPane.

Returns:
The left one touch button.

createRightOneTouchButton

protected JButton createRightOneTouchButton()
Creates a button for showing and hiding the right (or bottom) part of a JSplitPane.

Returns:
The right one touch button.

prepareForDragging

protected void prepareForDragging()
Prepares the divider for dragging by calling the startDragging method of the UI delegate of the enclosing JSplitPane.

See Also:
BasicSplitPaneUI.startDragging()

dragDividerTo

protected void dragDividerTo(int location)
Drags the divider to a given location by calling the dragDividerTo method of the UI delegate of the enclosing JSplitPane.

Parameters:
location - the new location of the divider.
See Also:
BasicSplitPaneUI.dragDividerTo(int location)

finishDraggingTo

protected void finishDraggingTo(int location)
Finishes a dragging gesture by calling the finishDraggingTo method of the UI delegate of the enclosing JSplitPane.

Parameters:
location - the new, final location of the divider.
See Also:
BasicSplitPaneUI.finishDraggingTo(int location)