Class MultiSplitPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.openstreetmap.josm.gui.widgets.MultiSplitPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class MultiSplitPane extends javax.swing.JPanel
All properties in this class are bound: when a properties value is changed, all PropertyChangeListeners are fired.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
MultiSplitPane.AccessibleMultiSplitPane
private class
MultiSplitPane.DefaultDividerPainter
static interface
MultiSplitPane.DividerPainter
Draws a single Divider.private class
MultiSplitPane.InputHandler
-
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
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
continuousLayout
private MultiSplitPane.DividerPainter
dividerPainter
private MultiSplitLayout.Divider
dragDivider
private int
dragMax
private int
dragMin
private int
dragOffsetX
private int
dragOffsetY
private boolean
dragUnderway
private java.awt.Rectangle
initialDividerBounds
private boolean
oldFloatingDividers
-
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
-
-
Constructor Summary
Constructors Constructor Description MultiSplitPane()
Creates a MultiSplitPane with it's LayoutManager set to to an empty MultiSplitLayout.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MultiSplitLayout.Divider
activeDivider()
Returns the Divider that's currently being moved, typically because the user is dragging it, or null.private void
cancelDrag()
private void
clearDragState()
private void
finishDrag()
javax.accessibility.AccessibleContext
getAccessibleContext()
MultiSplitPane.DividerPainter
getDividerPainter()
The DividerPainter that's used to paint Dividers on this MultiSplitPane.MultiSplitLayout
getMultiSplitLayout()
A convenience method that returns the layout manager cast to MultiSplitLayout.boolean
isContinuousLayout()
Returns true if dragging a divider only updates the layout when the drag gesture ends (typically, when the mouse button is released).protected void
paintChildren(java.awt.Graphics g)
Uses the DividerPainter (if any) to paint each Divider that overlaps the clip Rectangle.private void
repaintDragLimits()
void
setContinuousLayout(boolean continuousLayout)
Sets the value of thecontinuousLayout
property.void
setDividerPainter(MultiSplitPane.DividerPainter dividerPainter)
Sets the DividerPainter that's used to paint Dividers on this MultiSplitPane.void
setDividerSize(int dividerSize)
A convenience method that sets the MultiSplitLayout dividerSize property.void
setModel(MultiSplitLayout.Node model)
A convenience method that sets the MultiSplitLayout model.private void
startDrag(int mx, int my)
private void
updateCursor(int x, int y, boolean show)
private void
updateDrag(int mx, int my)
-
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, isValidateRoot, 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, 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, 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
-
-
-
-
Field Detail
-
continuousLayout
private boolean continuousLayout
-
dividerPainter
private transient MultiSplitPane.DividerPainter dividerPainter
-
dragUnderway
private boolean dragUnderway
-
dragDivider
private transient MultiSplitLayout.Divider dragDivider
-
initialDividerBounds
private java.awt.Rectangle initialDividerBounds
-
oldFloatingDividers
private boolean oldFloatingDividers
-
dragOffsetX
private int dragOffsetX
-
dragOffsetY
private int dragOffsetY
-
dragMin
private int dragMin
-
dragMax
private int dragMax
-
-
Constructor Detail
-
MultiSplitPane
public MultiSplitPane()
Creates a MultiSplitPane with it's LayoutManager set to to an empty MultiSplitLayout.
-
-
Method Detail
-
getMultiSplitLayout
public final MultiSplitLayout getMultiSplitLayout()
A convenience method that returns the layout manager cast to MultiSplitLayout.- Returns:
- this MultiSplitPane's layout manager
- See Also:
Container.getLayout()
,setModel(org.openstreetmap.josm.gui.widgets.MultiSplitLayout.Node)
-
setModel
public final void setModel(MultiSplitLayout.Node model)
A convenience method that sets the MultiSplitLayout model. Equivalent togetMultiSplitLayout.setModel(model)
- Parameters:
model
- the root of the MultiSplitLayout model- See Also:
getMultiSplitLayout()
,MultiSplitLayout.setModel(org.openstreetmap.josm.gui.widgets.MultiSplitLayout.Node)
-
setDividerSize
public final void setDividerSize(int dividerSize)
A convenience method that sets the MultiSplitLayout dividerSize property. Equivalent togetMultiSplitLayout().setDividerSize(newDividerSize)
.- Parameters:
dividerSize
- the value of the dividerSize property- See Also:
getMultiSplitLayout()
,MultiSplitLayout.setDividerSize(int)
-
setContinuousLayout
public void setContinuousLayout(boolean continuousLayout)
Sets the value of thecontinuousLayout
property. If true, then the layout is revalidated continuously while a divider is being moved. The default value of this property is true.- Parameters:
continuousLayout
- value of the continuousLayout property- See Also:
isContinuousLayout()
-
isContinuousLayout
public boolean isContinuousLayout()
Returns true if dragging a divider only updates the layout when the drag gesture ends (typically, when the mouse button is released).- Returns:
- the value of the
continuousLayout
property - See Also:
setContinuousLayout(boolean)
-
activeDivider
public MultiSplitLayout.Divider activeDivider()
Returns the Divider that's currently being moved, typically because the user is dragging it, or null.- Returns:
- the Divider that's being moved or null.
-
getDividerPainter
public MultiSplitPane.DividerPainter getDividerPainter()
The DividerPainter that's used to paint Dividers on this MultiSplitPane. This property may be null.- Returns:
- the value of the dividerPainter Property
- See Also:
setDividerPainter(org.openstreetmap.josm.gui.widgets.MultiSplitPane.DividerPainter)
-
setDividerPainter
public void setDividerPainter(MultiSplitPane.DividerPainter dividerPainter)
Sets the DividerPainter that's used to paint Dividers on this MultiSplitPane. The default DividerPainter only draws the activeDivider (if there is one) and then, only if continuousLayout is false. The value of this property is used by the paintChildren method: Dividers are painted after the MultiSplitPane's children have been rendered so that the activeDivider can appear "on top of" the children.- Parameters:
dividerPainter
- the value of the dividerPainter property, can be null- See Also:
paintChildren(java.awt.Graphics)
,activeDivider()
-
paintChildren
protected void paintChildren(java.awt.Graphics g)
Uses the DividerPainter (if any) to paint each Divider that overlaps the clip Rectangle. This is done after the call tosuper.paintChildren()
so that Dividers can be rendered "on top of" the children.- Overrides:
paintChildren
in classjavax.swing.JComponent
-
startDrag
private void startDrag(int mx, int my)
-
repaintDragLimits
private void repaintDragLimits()
-
updateDrag
private void updateDrag(int mx, int my)
-
clearDragState
private void clearDragState()
-
finishDrag
private void finishDrag()
-
cancelDrag
private void cancelDrag()
-
updateCursor
private void updateCursor(int x, int y, boolean show)
-
getAccessibleContext
public javax.accessibility.AccessibleContext getAccessibleContext()
- Specified by:
getAccessibleContext
in interfacejavax.accessibility.Accessible
- Overrides:
getAccessibleContext
in classjavax.swing.JPanel
-
-