JIDE 3.5.15

com.jidesoft.swing
Class JideSplitPaneDivider

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.jidesoft.swing.JideSplitPaneDivider
All Implemented Interfaces:
ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible
Direct Known Subclasses:
ContainerContainerDivider

public class JideSplitPaneDivider
extends JPanel
implements PropertyChangeListener

Divider used by JideSplitPane.

See Also:
Serialized Form

Nested Class Summary
protected  class JideSplitPaneDivider.DragController
          Handles the events during a dragging session for a HORIZONTAL_SPLIT oriented split pane.
protected  class JideSplitPaneDivider.MouseHandler
          MouseHandler is responsible for converting mouse events (released, dragged...) into the appropriate DragController methods.
protected  class JideSplitPaneDivider.OneTouchActionHandler
          The actionListener that will listen for button presses on either the leftButton or the rightButton.
protected  class JideSplitPaneDivider.VerticalDragController
          Handles the events during a dragging session for a VERTICAL_SPLIT oriented split pane.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
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
protected  int _dividerSize
          Size of the divider.
protected  JideSplitPaneDivider.DragController _dragger
          Handles mouse dragging message to do the actual dragging.
protected  JideSplitPane _jideSplitPane
          JideSplitPane the receiver is contained in.
protected  JButton _leftButton
          Button for quickly toggling the left component.
protected  JideSplitPaneDivider.MouseHandler _mouseHandler
          Handles mouse events from both this class, and the split pane.
protected  int _orientation
          Orientation of the JideSplitPane.
protected  JButton _rightButton
          Button for quickly toggling the right component.
static int COLLAPSED_STATE
          Indicates that the pane of the left of this component has been collapse by the one-touch button.
static int DEFAULT_STATE
          Indicates that this divider has not been expanded or collapsed.
static int EXPANDED_STATE
          Indicates that the pane of the right of this component has been collapse by the one-touch button.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
JideSplitPaneDivider(JideSplitPane splitPane)
          Creates an instance of BasicJideSplitPaneDivider.
 
Method Summary
 void collapse()
          Collapses the divider to the left side (or to the top if vertically).
protected  JButton createLeftOneTouchButton()
          Builds the Button that can be used to collapse the component to the left/above this divider.
protected  JideSplitPaneDivider.MouseHandler createMouseHandler()
           
protected  JButton createRightOneTouchButton()
          Builds the rightButton that can be used to expand/collapse a split panes divider to the right.
protected  void dragDividerTo(int location)
           
 void expand()
          Expands the divider to the right side (or to the bottom if vertically).
protected  void finishDraggingTo(int location)
           
 int getCurrentState()
          Gets the current collapse/expand state.
protected  Color getDarkShadowColor()
          Returns a dark shadow color.
 int getDividerSize()
          Returns the size of the divider, that is the width if the split pane is HORIZONTAL_SPLIT, or the height of VERTICAL_SPLIT.
 Component getFirstComponent(boolean ignoreVisibility)
          Gets the first component.
 JideSplitPane getJideSplitPane()
          Gets the JideSplitPane.
 Dimension getMinimumSize()
          Returns dividerSize x dividerSize
protected  int getNextDividerLocation(boolean ignoreVisibility, boolean reversed)
           
 Dimension getPreferredSize()
          Returns dividerSize x dividerSize
protected  int getPreviousDividerLocation(boolean ignoreVisibility, boolean reversed)
           
 Component getSecondComponent(boolean ignoreVisibility)
          Gets the second component.
protected  void oneTouchExpandableChanged()
          Invoked when the oneTouchExpandable value of the JideSplitPane changes.
 void paintComponent(Graphics g)
          Paints the divider.
protected  void prepareForDragging()
          Message to prepare for dragging.
 void propertyChange(PropertyChangeEvent e)
          Property change event, presumably from the JideSplitPane, will message updateOrientation if necessary.
 void setDefaultResizeCursor()
           
 void setDividerSize(int newSize)
          Sets the size of the divider to newSize.
 void setJideSplitPane(JideSplitPane splitPane)
          Sets the JideSplitPane that is using this divider.
 void updateUI()
          Resets the UI property to a value from the current look and feel.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_dragger

protected JideSplitPaneDivider.DragController _dragger
Handles mouse dragging message to do the actual dragging.


_dividerSize

protected int _dividerSize
Size of the divider.


_jideSplitPane

protected JideSplitPane _jideSplitPane
JideSplitPane the receiver is contained in.


_mouseHandler

protected JideSplitPaneDivider.MouseHandler _mouseHandler
Handles mouse events from both this class, and the split pane. Mouse events are handled for the JideSplitPane since you want to be able to drag when clicking on the border of the divider, which is not drawn by the divider.


_orientation

protected int _orientation
Orientation of the JideSplitPane.


COLLAPSED_STATE

public static final int COLLAPSED_STATE
Indicates that the pane of the left of this component has been collapse by the one-touch button.

See Also:
Constant Field Values

DEFAULT_STATE

public static final int DEFAULT_STATE
Indicates that this divider has not been expanded or collapsed.

See Also:
Constant Field Values

EXPANDED_STATE

public static final int EXPANDED_STATE
Indicates that the pane of the right of this component has been collapse by the one-touch button. Hence, the pane on the left has been "expanded".

See Also:
Constant Field Values

_leftButton

protected JButton _leftButton
Button for quickly toggling the left component.


_rightButton

protected JButton _rightButton
Button for quickly toggling the right component.

Constructor Detail

JideSplitPaneDivider

public JideSplitPaneDivider(JideSplitPane splitPane)
Creates an instance of BasicJideSplitPaneDivider. Registers this instance for mouse events and mouse dragged events.

Parameters:
splitPane - the JideSplitPane.
Method Detail

setDefaultResizeCursor

public void setDefaultResizeCursor()

getJideSplitPane

public JideSplitPane getJideSplitPane()
Gets the JideSplitPane.

Returns:
the JideSplitPane

setJideSplitPane

public void setJideSplitPane(JideSplitPane splitPane)
Sets the JideSplitPane that is using this divider.

Parameters:
splitPane - the JideSplitPane.

createMouseHandler

protected JideSplitPaneDivider.MouseHandler createMouseHandler()

setDividerSize

public void setDividerSize(int newSize)
Sets the size of the divider to newSize. That is the width if the split pane is HORIZONTAL_SPLIT, or the height of VERTICAL_SPLIT.

Parameters:
newSize - the new divider size.

getDividerSize

public int getDividerSize()
Returns the size of the divider, that is the width if the split pane is HORIZONTAL_SPLIT, or the height of VERTICAL_SPLIT.

Returns:
the divider size.

getPreferredSize

public Dimension getPreferredSize()
Returns dividerSize x dividerSize

Overrides:
getPreferredSize in class JComponent

getMinimumSize

public Dimension getMinimumSize()
Returns dividerSize x dividerSize

Overrides:
getMinimumSize in class JComponent

propertyChange

public void propertyChange(PropertyChangeEvent e)
Property change event, presumably from the JideSplitPane, will message updateOrientation if necessary.

Specified by:
propertyChange in interface PropertyChangeListener

updateUI

public void updateUI()
Resets the UI property to a value from the current look and feel. JComponent subclasses must override this method like this:
   public void updateUI() {
      setUI((SliderUI)UIManager.getUI(this);
   }
  

Overrides:
updateUI in class JPanel
See Also:
JPanel.setUI(javax.swing.plaf.PanelUI), UIManager.getLookAndFeel(), UIManager.getUI(javax.swing.JComponent)

paintComponent

public void paintComponent(Graphics g)
Paints the divider.

Overrides:
paintComponent in class JComponent

prepareForDragging

protected void prepareForDragging()
Message to prepare for dragging. This messages the BasicJideSplitPaneUI with startDragging.


dragDividerTo

protected void dragDividerTo(int location)

finishDraggingTo

protected void finishDraggingTo(int location)

getPreviousDividerLocation

protected int getPreviousDividerLocation(boolean ignoreVisibility,
                                         boolean reversed)

getNextDividerLocation

protected int getNextDividerLocation(boolean ignoreVisibility,
                                     boolean reversed)

getFirstComponent

public Component getFirstComponent(boolean ignoreVisibility)
Gets the first component. This divider is installed between two components. The first component is usually the one on the left or on the top.

Parameters:
ignoreVisibility - true to not check if the component is visible.
Returns:
the first component

getSecondComponent

public Component getSecondComponent(boolean ignoreVisibility)
Gets the second component. This divider is installed between two components. The second component is usually the one on the right or on the bottom.

Parameters:
ignoreVisibility - true to not check if the component is visible.
Returns:
the first component

oneTouchExpandableChanged

protected void oneTouchExpandableChanged()
Invoked when the oneTouchExpandable value of the JideSplitPane changes.

Responsible for creating the one-touch buttons and revalidating the UI.

#see JideSplitePane#setOneTouchExpandable(boolean)


createLeftOneTouchButton

protected JButton createLeftOneTouchButton()
Builds the Button that can be used to collapse the component to the left/above this divider.

Returns:
a JButton instance used to collapse the component to the left/above this divider.

getCurrentState

public int getCurrentState()
Gets the current collapse/expand state.

The default value is DEFAULT_STATE when JideSplitPane.isOneTouchExpandable() returns false. It could be EXPANDED_STATE or COLLAPSED_STATE when one touch expandable is activated.

Returns:
the current state
Since:
3.3.8

createRightOneTouchButton

protected JButton createRightOneTouchButton()
Builds the rightButton that can be used to expand/collapse a split panes divider to the right.

Returns:
a JButton instance used to expand/collapse a split panes divider to the right.

getDarkShadowColor

protected Color getDarkShadowColor()
Returns a dark shadow color. This color is used to paint the left and right buttons graphics. It is based on the current Look and Feel. (And thus fits all look and Feels.)

Returns:
UIManager.getColor("controlDkShadow")

collapse

public void collapse()
Collapses the divider to the left side (or to the top if vertically).


expand

public void expand()
Expands the divider to the right side (or to the bottom if vertically).


JIDE 3.5.15