Class UIFSplitPane

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JSplitPane
org.nuiton.jaxx.widgets.extra.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$
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

    Fields
    Modifier and Type Field Description
    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

    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

    accessibleContext, 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

    Constructors
    Constructor Description
    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

    Modifier and Type Method Description
    static UIFSplitPane createStrippedSplitPane​(int orientation, java.awt.Component leftComponent, java.awt.Component rightComponent)
    Constructs a UIFSplitPane, i.e. a JSplitPane that has no borders.
    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, 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, 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, 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, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • 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 Details

    • 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
      Returns:
      the constructed splitepane
      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