com.jgoodies.uif_lite.component
Class UIFSplitPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JSplitPane
                  extended by com.jgoodies.uif_lite.component.UIFSplitPane
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public final class UIFSplitPane
extends javax.swing.JSplitPane

A JSplitPane subclass that can try to remove the divider border. Useful if the splitted components render their own borders. Note that this feature is not supported by all look&feels. Some look&feel implementation will always show a divider border, and conversely, others will never show a divider border.

Version:
$Revision: 1.5 $
Author:
Karsten Lentzsch
See Also:
BasicSplitPaneUI, 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
 
Field Summary
static java.lang.String PROPERTYNAME_DIVIDER_BORDER_VISIBLE
          Holds the name of the bound property that tries to show or hide the split pane's divider border.
 
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
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
UIFSplitPane()
          Constructs a UIFSplitPane configured to arrange the child components side-by-side horizontally with no continuous layout, using two buttons for the components.
UIFSplitPane(int newOrientation)
          Constructs a UIFSplitPane configured with the specified orientation and no continuous layout.
UIFSplitPane(int newOrientation, boolean newContinuousLayout)
          Constructs a UIFSplitPane with the specified orientation and redrawing style.
UIFSplitPane(int orientation, boolean continuousLayout, java.awt.Component leftComponent, java.awt.Component rightComponent)
          Constructs a UIFSplitPane with the specified orientation, redrawing style, and given components.
UIFSplitPane(int orientation, java.awt.Component leftComponent, java.awt.Component rightComponent)
          Constructs a UIFSplitPane with the specified orientation and the given componenents.
 
Method Summary
static UIFSplitPane createStrippedSplitPane(int orientation, java.awt.Component leftComponent, java.awt.Component rightComponent)
          Constructs a UIFSplitPane, i.e.
 boolean isDividerBorderVisible()
          Checks and answers whether the divider border shall be visible or invisible.
 void setDividerBorderVisible(boolean newVisibility)
          Makes the divider border visible or invisible.
 void updateUI()
          Updates the UI and sets an empty divider border.
 
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, resetToPreferredSizes, setBottomComponent, setContinuousLayout, setDividerLocation, setDividerLocation, setDividerSize, setLastDividerLocation, setLeftComponent, setOneTouchExpandable, setOrientation, setResizeWeight, setRightComponent, setTopComponent, 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, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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

PROPERTYNAME_DIVIDER_BORDER_VISIBLE

public static final java.lang.String PROPERTYNAME_DIVIDER_BORDER_VISIBLE
Holds the name of the bound property that tries to show or hide the split pane's divider border.

See Also:
isDividerBorderVisible(), setDividerBorderVisible(boolean), Constant Field Values
Constructor Detail

UIFSplitPane

public UIFSplitPane()
Constructs a UIFSplitPane configured to arrange the child components side-by-side horizontally with no continuous layout, using two buttons for the components.


UIFSplitPane

public UIFSplitPane(int newOrientation)
Constructs a UIFSplitPane configured with the specified orientation and no continuous layout.

Parameters:
newOrientation - JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT
Throws:
java.lang.IllegalArgumentException - if orientation is not one of HORIZONTAL_SPLIT or VERTICAL_SPLIT.

UIFSplitPane

public UIFSplitPane(int newOrientation,
                    boolean newContinuousLayout)
Constructs a UIFSplitPane with the specified orientation and redrawing style.

Parameters:
newOrientation - JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT
newContinuousLayout - a boolean, true for the components to redraw continuously as the divider changes position, false to wait until the divider position stops changing to redraw
Throws:
java.lang.IllegalArgumentException - if orientation is not one of HORIZONTAL_SPLIT or VERTICAL_SPLIT

UIFSplitPane

public UIFSplitPane(int orientation,
                    java.awt.Component leftComponent,
                    java.awt.Component rightComponent)
Constructs a UIFSplitPane with the specified orientation and the given componenents.

Parameters:
orientation - JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT
leftComponent - the Component that will appear on the left of a horizontally-split pane, or at the top of a vertically-split pane
rightComponent - the Component that will appear on the right of a horizontally-split pane, or at the bottom of a vertically-split pane
Throws:
java.lang.IllegalArgumentException - if orientation is not one of: HORIZONTAL_SPLIT or VERTICAL_SPLIT

UIFSplitPane

public UIFSplitPane(int orientation,
                    boolean continuousLayout,
                    java.awt.Component leftComponent,
                    java.awt.Component rightComponent)
Constructs a UIFSplitPane with the specified orientation, redrawing style, and given components.

Parameters:
orientation - JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT
continuousLayout - a boolean, true for the components to redraw continuously as the divider changes position, false to wait until the divider position stops changing to redraw
leftComponent - the Component that will appear on the left of a horizontally-split pane, or at the top of a vertically-split pane
rightComponent - the Component that will appear on the right of a horizontally-split pane, or at the bottom of a vertically-split pane
Throws:
java.lang.IllegalArgumentException - if orientation is not one of HORIZONTAL_SPLIT or VERTICAL_SPLIT
Method Detail

createStrippedSplitPane

public static UIFSplitPane createStrippedSplitPane(int orientation,
                                                   java.awt.Component leftComponent,
                                                   java.awt.Component rightComponent)
Constructs a UIFSplitPane, i.e. a JSplitPane that has no borders. Also disabled the one touch exandable property.

Parameters:
orientation - JSplitPane.HORIZONTAL_SPLIT or JSplitPane.VERTICAL_SPLIT
leftComponent - the Component that will appear on the left of a horizontally-split pane, or at the top of a vertically-split pane
rightComponent - the Component that will appear on the right of a horizontally-split pane, or at the bottom of a vertically-split pane
Throws:
java.lang.IllegalArgumentException - if orientation is not one of: HORIZONTAL_SPLIT or VERTICAL_SPLIT

isDividerBorderVisible

public boolean isDividerBorderVisible()
Checks and answers whether the divider border shall be visible or invisible. Note that this feature is not supported by all look&feels. Some look&feel implementation will always show a divider border, and conversely, others will never show a divider border.

Returns:
the desired (but potentially inaccurate) divider border visiblity

setDividerBorderVisible

public void setDividerBorderVisible(boolean newVisibility)
Makes the divider border visible or invisible. Note that this feature is not supported by all look&feels. Some look&feel implementation will always show a divider border, and conversely, others will never show a divider border.

Parameters:
newVisibility - true for visible, false for invisible

updateUI

public void updateUI()
Updates the UI and sets an empty divider border. The divider border may be restored by a L&F at UI installation time. And so, we try to reset it each time the UI is changed.

Overrides:
updateUI in class javax.swing.JSplitPane