org.fife.ui.dockablewindows
Class DockableWindowPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byorg.fife.ui.dockablewindows.DockableWindowPanel
All Implemented Interfaces:
javax.accessibility.Accessible, DockableWindowConstants, DockableWindowListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable

public class DockableWindowPanel
extends javax.swing.JPanel
implements DockableWindowListener, java.beans.PropertyChangeListener, DockableWindowConstants

A panel capable of having "windows" docked to any of its four sides, as well as manage "floating" windows.

Version:
0.1
Author:
Robert Futrell
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int LARGE_ON_SIDES
           
static int LARGE_ON_TOP_AND_BOTTOM
           
protected  java.util.List windowList
           
 
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 org.fife.ui.dockablewindows.DockableWindowConstants
BOTTOM, FLOATING, LEFT, RIGHT, TOP
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DockableWindowPanel()
          Constructor.
 
Method Summary
 boolean addDockableWindow(DockableWindow window)
          Adds a dockable window.
 void dockableWindowPositionChanged(DockableWindowEvent e)
          Called whenever a dockable window changed its preferred position.
 void dockableWindowPositionWillChange(DockableWindowEvent e)
          This method does nothing.
 javax.swing.JPanel getContentPanel()
          Returns the panel containing the "actual" content (e.g., the stuff that isn't a dockable window).
 int getDividerLocation(int splitPane)
           
 DockableWindow[] getDockableWindows()
          Returns all dockable windows.
 void propertyChange(java.beans.PropertyChangeEvent e)
          The only property we care about is a dockable window becoming active or inactive (i.e., visible or not visible).
 boolean removeContentPanel(java.awt.Container contentPanel)
          Removes the content panel (e.g. the stuff that isn't dockable windows).
 boolean removeDockableWindow(DockableWindow window)
          Removes the specified dockable window from this panel's management.
 void setContentPanel(java.awt.Container contentPanel)
          Sets the content panel (e.g., the non-dockable window stuff).
 void setDividerLocation(int splitPane, int pos)
           
 void setDockingStyle(int style)
          Sets the docking style.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

LARGE_ON_SIDES

public static final int LARGE_ON_SIDES
See Also:
Constant Field Values

LARGE_ON_TOP_AND_BOTTOM

public static final int LARGE_ON_TOP_AND_BOTTOM
See Also:
Constant Field Values

windowList

protected java.util.List windowList
Constructor Detail

DockableWindowPanel

public DockableWindowPanel()
Constructor.

Method Detail

addDockableWindow

public boolean addDockableWindow(DockableWindow window)
Adds a dockable window.

Parameters:
window - The window to add.
Returns:
Whether or not the window was added successfully.
See Also:
removeDockableWindow(org.fife.ui.dockablewindows.DockableWindow)

dockableWindowPositionChanged

public void dockableWindowPositionChanged(DockableWindowEvent e)
Called whenever a dockable window changed its preferred position. This method removes the dockable window from its old location and adds it to its new location.

Specified by:
dockableWindowPositionChanged in interface DockableWindowListener
Parameters:
e - The dockable window event.

dockableWindowPositionWillChange

public void dockableWindowPositionWillChange(DockableWindowEvent e)
This method does nothing.

Specified by:
dockableWindowPositionWillChange in interface DockableWindowListener
Parameters:
e - The dockable window event.

getContentPanel

public javax.swing.JPanel getContentPanel()
Returns the panel containing the "actual" content (e.g., the stuff that isn't a dockable window).

Returns:
The "acutal" content.

getDividerLocation

public int getDividerLocation(int splitPane)
Parameters:
splitPane - The position of the split pane for which to get its divider location; one of GUIApplicationConstants.TOP, LEFT, BOTTOM or RIGHT.

getDockableWindows

public DockableWindow[] getDockableWindows()
Returns all dockable windows. This will return the actual dockable windows, not deep copies, so any changes made to the returned array will affect the actual dockable windows themselves.

Returns:
All dockable windows. If no windows are being managed, a zero-length array is returned.
See Also:
addDockableWindow(org.fife.ui.dockablewindows.DockableWindow), removeDockableWindow(org.fife.ui.dockablewindows.DockableWindow)

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
The only property we care about is a dockable window becoming active or inactive (i.e., visible or not visible).

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
e - The property change event.

removeContentPanel

public boolean removeContentPanel(java.awt.Container contentPanel)
Removes the content panel (e.g. the stuff that isn't dockable windows).

Parameters:
contentPanel - The content panel.
Returns:
Whether or not the removal was successful.

removeDockableWindow

public boolean removeDockableWindow(DockableWindow window)
Removes the specified dockable window from this panel's management.

Parameters:
window - The dockable window to remove.
Returns:
Whether or not the removal was successful.
See Also:
addDockableWindow(org.fife.ui.dockablewindows.DockableWindow)

setContentPanel

public void setContentPanel(java.awt.Container contentPanel)
Sets the content panel (e.g., the non-dockable window stuff).

Parameters:
contentPanel - The new content panel.

setDividerLocation

public void setDividerLocation(int splitPane,
                               int pos)
Parameters:
splitPane - The split pane for which to set the divider location; one of GUIApplicationConstants.TOP, LEFT, BOTTOM or RIGHT.
pos - The position of the divider.

setDockingStyle

public void setDockingStyle(int style)
Sets the docking style.

Parameters:
style - Either LARGE_ON_SIDES or LARGE_ON_TOP_AND_BOTTOM.