org.openbp.swing.components
Class JMultiSplitPane

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 org.openbp.swing.components.JMultiSplitPane
All Implemented Interfaces:
java.awt.event.ComponentListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class JMultiSplitPane
extends javax.swing.JPanel
implements java.awt.event.ComponentListener

Split pane that supports an arbitary number of components.

Author:
Stephan Moritz
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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 int HORIZONTAL_SPLIT
          Split direction - Horizontal.
static int VERTICAL_SPLIT
          Split direction - Vertical.
 
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
JMultiSplitPane()
          Constructor.
JMultiSplitPane(int orientation)
          Constructor.
 
Method Summary
 void addClient(java.awt.Component comp)
          Adds a child component to the end of the multi split pane.
 void addClient(java.awt.Component comp, int index)
          Adds a child component at the given index to the multi split pane.
 void addClientAfter(java.awt.Component current, java.awt.Component add)
          Adds the given component before the current component.
 void addClientBefore(java.awt.Component current, java.awt.Component add)
          Adds the given component before the current component.
 void componentHidden(java.awt.event.ComponentEvent e)
           
 void componentMoved(java.awt.event.ComponentEvent e)
           
 void componentResized(java.awt.event.ComponentEvent e)
           
 void componentShown(java.awt.event.ComponentEvent e)
           
 void createDefaultProportions()
          Makes all components have the same size.
 java.awt.Component getClient(int n)
          Return the nth component of this pane.
 int getClientCount()
          Get the number of components in the split pane.
 double[] getClientProportions()
          Returns the sizes of the first n-1 components relative to the overall size.
 java.awt.Component[] getClients()
          Gets the components in this multi split pane.
 int getIndexOfClient(java.awt.Component comp)
          Gets the index of the given component.
 int getOrientation()
          Returns the orientation.
 void insertAllClients(java.awt.Component[] comps, int index)
          Inserts all components at the given index.
protected  void layoutDividers()
          Does a resize based on the currently set values for divider proportions.
static void main(java.lang.String[] args)
          Main method for test.
 void removeClient(java.awt.Component comp)
          Removes the given component from the split pane.
 void removeClient(int index)
          Removes the given component from the split pane.
 void replaceClient(java.awt.Component old, java.awt.Component substitute)
          Replaces the given component with a substitute.
 void replaceClient(int index, java.awt.Component substitute)
          Replaces the component at the given index with a substitute.
 void setClientProportions(double[] proportions)
          Sets the sizes of the clients in proportion to the total size of the pane.
 java.lang.String toString()
          Returns a string representation of this multi split pane.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, isValidateRoot, paint, paintBorder, paintChildren, 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, 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, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

HORIZONTAL_SPLIT

public static final int HORIZONTAL_SPLIT
Split direction - Horizontal.

See Also:
Constant Field Values

VERTICAL_SPLIT

public static final int VERTICAL_SPLIT
Split direction - Vertical.

See Also:
Constant Field Values
Constructor Detail

JMultiSplitPane

public JMultiSplitPane()
Constructor.


JMultiSplitPane

public JMultiSplitPane(int orientation)
Constructor.

Parameters:
orientation - Orientation of the split pane (HORIZONTAL_SPLIT/VERTICAL_SPLIT)
Method Detail

addClient

public void addClient(java.awt.Component comp,
                      int index)
Adds a child component at the given index to the multi split pane.

Parameters:
comp - Component to add
index - Index or -1 to add at the end

removeClient

public void removeClient(int index)
Removes the given component from the split pane.

Parameters:
index - Index of the component to remvoe

addClient

public void addClient(java.awt.Component comp)
Adds a child component to the end of the multi split pane.

Parameters:
comp - Component to add

insertAllClients

public void insertAllClients(java.awt.Component[] comps,
                             int index)
Inserts all components at the given index.

Parameters:
comps - Components to add
index - Index or -1 to add at the end

addClientBefore

public void addClientBefore(java.awt.Component current,
                            java.awt.Component add)
Adds the given component before the current component.

Parameters:
current - Component that will be preceeded by the new one
add - Component to add

addClientAfter

public void addClientAfter(java.awt.Component current,
                           java.awt.Component add)
Adds the given component before the current component.

Parameters:
current - Component that will be preceeded by the new one
add - Component to add

removeClient

public void removeClient(java.awt.Component comp)
Removes the given component from the split pane.

Parameters:
comp - Component to remove

replaceClient

public void replaceClient(int index,
                          java.awt.Component substitute)
Replaces the component at the given index with a substitute.

Parameters:
index - Index of the component
substitute - New component

replaceClient

public void replaceClient(java.awt.Component old,
                          java.awt.Component substitute)
Replaces the given component with a substitute.

Parameters:
old - Component to replace
substitute - New component

getClient

public java.awt.Component getClient(int n)
Return the nth component of this pane.

Parameters:
n - Component index
Returns:
The component

getClientCount

public int getClientCount()
Get the number of components in the split pane.


getClients

public java.awt.Component[] getClients()
Gets the components in this multi split pane.


getIndexOfClient

public int getIndexOfClient(java.awt.Component comp)
Gets the index of the given component.

Parameters:
comp - Comp
Returns:
The index or -1 if not found

setClientProportions

public void setClientProportions(double[] proportions)
Sets the sizes of the clients in proportion to the total size of the pane. The last component gets the remainder.

Parameters:
proportions - Proportions (values between 0..1)
The size of this array must match the number of the components - 1

getClientProportions

public double[] getClientProportions()
Returns the sizes of the first n-1 components relative to the overall size.

Returns:
Proportions (values between 0..1)
The size of this array matches the number of the components - 1

createDefaultProportions

public void createDefaultProportions()
Makes all components have the same size.


layoutDividers

protected void layoutDividers()
Does a resize based on the currently set values for divider proportions.


getOrientation

public int getOrientation()
Returns the orientation.

Returns:
int

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Specified by:
componentHidden in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Specified by:
componentResized in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Specified by:
componentShown in interface java.awt.event.ComponentListener

toString

public java.lang.String toString()
Returns a string representation of this multi split pane. This consits of the orientation followed by the actual contents.

Overrides:
toString in class java.awt.Component

main

public static void main(java.lang.String[] args)
Main method for test.



Copyright © 2011. All Rights Reserved.