net.infonode.docking
Class DockingWindow

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bynet.infonode.gui.panel.BaseContainer
                      extended bynet.infonode.gui.panel.BasePanel
                          extended bynet.infonode.docking.DockingWindow
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Serializable
Direct Known Subclasses:
AbstractTabWindow, FloatingWindow, RootWindow, SplitWindow, View

public abstract class DockingWindow
extends BasePanel

This is the base class for all types of docking windows. The windows are structured in a tree, typically with a RootWindow at the root. Each DockingWindow has a window parent and a number of child windows.

Warning: the non-public methods in this class can be changed in non-compatible ways in future versions.

Version:
$Revision: 1.120 $
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
 
Method Summary
 void addListener(DockingWindowListener listener)
          Adds a listener which will reveive events for this window and all child windows.
 void addTabMouseButtonListener(MouseButtonListener listenerDocking)
           Adds a listener that receives mouse button events for window tabs.
 void close()
          Removes this window from it's window parent.
 void closeWithAbort()
          Same as close(), but the DockingWindowListener.windowClosing(DockingWindow) method of the window listeners will be called before closing the window, giving them the possibility to abort the close operation.
 void dock()
          Docks the window to the RootWindow to the location it had before it was undocked.
 void dockWithAbort()
          Same as dock(), but the DockingWindowListener.windowDocking(DockingWindow) method of the window listeners will be called before docking the window, giving them the possibility to abort the dock operation.
abstract  DockingWindow getChildWindow(int index)
          Returns the child window with index index.
abstract  int getChildWindowCount()
          Returns the number of child windows.
 int getChildWindowIndex(DockingWindow window)
          Returns the index of a child windows.
abstract  Icon getIcon()
          Returns the icon for this window.
 DockingWindow getLastFocusedChildWindow()
          Returns the child window that last contained focus.
 WindowPopupMenuFactory getPopupMenuFactory()
          Returns the popup menu factory for this window.
 Direction getPreferredMinimizeDirection()
           Gets the preferred minimize direction of this window.
 RootWindow getRootWindow()
          Returns the RootWindow which contains this window, null if there is none.
 String getTitle()
          Returns the title of this window.
 DockingWindow getWindowParent()
          Returns the window parent of this window.
 DockingWindowProperties getWindowProperties()
          Returns the properties for this window.
 boolean isClosable()
          Returns true if this window can be closed by the user.
 boolean isDockable()
          Returns true if this window can be docked to the root window from a floating window.
 boolean isMaximizable()
          Returns true if this window can be maximized by the user.
 boolean isMaximized()
          Returns true if this window has a root window and is maximized in that root window or in a floating window.
 boolean isMinimizable()
          Returns true if this window can be minimized by the user.
 boolean isMinimized()
          Returns true if this window is minimized, ie located in a WindowBar.
 boolean isRestorable()
          Returns true if this window can be restored by the user.
 boolean isUndockable()
          Returns true if this window can be undocked to a floating window.
 boolean isUndocked()
           
 void makeVisible()
          Makes this window visible.
 void maximize()
          Maximizes this window in its root window or in its floating window.
 void maximizeWithAbort()
          Same as maximize(), but the DockingWindowListener.windowMaximized(DockingWindow) method of the window listeners will be called before maximizing the window, giving them the possibility to abort the maximize operation.
 void minimize()
          Minimizes this window.
 void minimize(Direction direction)
          Minimizes this window to a WindowBarlocated in direction.
 void minimizeWithAbort()
          Same as minimize(), but the DockingWindowListener.windowMinimizing(DockingWindow) method of the window listeners will be called before minimizing the window, giving them the possibility to abort the minimize operation.
 void minimizeWithAbort(Direction direction)
          Same as minimize(Direction), but the DockingWindowListener.windowMinimizing(DockingWindow) method of the window listeners will be called before minimizing the window, giving them the possibility to abort the minimize operation.
 void removeListener(DockingWindowListener listener)
          Removes a previously added listener.
 void removeTabMouseButtonListener(MouseButtonListener listenerDocking)
          Removes a mouse button listener that has been previously added using the addTabMouseButtonListener(MouseButtonListener).
 void replaceChildWindow(DockingWindow oldWindow, DockingWindow newWindow)
          Replaces a child window with another window.
 void restore()
          Restores this window to the location before it was minimized, maximized or closed.
 void restoreFocus()
          Requests that the last focused child window becomes visible and that focus is restored to the last focused component in that window.
 void restoreWithAbort()
          Same as restore(), but the DockingWindowListener.windowRestoring(DockingWindow) method of the window listeners will be called before restoring the window, giving them the possibility to abort the restore operation.
 void setPopupMenuFactory(WindowPopupMenuFactory popupMenuFactory)
          Sets the popup menu factory for this window.
 void setPreferredMinimizeDirection(Direction direction)
           Sets the preferred minimize direction of this window.
 SplitWindow split(DockingWindow splitWithWindow, Direction direction, float dividerLocation)
          Splits this window in the given direction.
 DockingWindowDragger startDrag(RootWindow dropTarget)
          Starts a drag and drop operation for this window.
 String toString()
           
 FloatingWindow undock(Point location)
          Undocks this window from it's window parent i.e. creates a FloatingWindow containing this window.
 FloatingWindow undockWithAbort(Point location)
          Same as undock(Point), but the DockingWindowListener.windowUndocking(DockingWindow) method of the window listeners will be called before undocking the window, giving them the possibility to abort the undock operation.
 
Methods inherited from class net.infonode.gui.panel.BaseContainer
setBackground, setFont, setForeground, setOpaque, setUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, 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, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, 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, getWidth, getVisibleRect, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, 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, 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, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getIcon

public abstract Icon getIcon()
Returns the icon for this window.

Returns:
the icon

getChildWindow

public abstract DockingWindow getChildWindow(int index)
Returns the child window with index index.

Parameters:
index - the child window index
Returns:
the child window

getChildWindowCount

public abstract int getChildWindowCount()
Returns the number of child windows.

Returns:
the number of child windows

setPreferredMinimizeDirection

public void setPreferredMinimizeDirection(Direction direction)

Sets the preferred minimize direction of this window. If the WindowBar in this direction is enabled this window will be placed on that bar when minimize() is called.

Note that a window will "remember" the last WindowBar it was added to so the preferred minimize direction is changed when the window is added to another WindowBar.

Parameters:
direction - the preferred minimize direction of this window, null (which is default value) means use the closest, enabled WindowBar
Since:
IDW 1.3.0

getPreferredMinimizeDirection

public Direction getPreferredMinimizeDirection()

Gets the preferred minimize direction of this window. See setPreferredMinimizeDirection(net.infonode.util.Direction) for more information.

Returns:
the preferred minimize direction of this window, null if the closest WindowBar is used
Since:
IDW 1.3.0

isUndocked

public boolean isUndocked()

addTabMouseButtonListener

public void addTabMouseButtonListener(MouseButtonListener listenerDocking)

Adds a listener that receives mouse button events for window tabs. The listener will be called when a mouse button is pressed, clicked or released on a window tab of this window or a descendant of this window.

The listeners are called in the reverse order they were added, so the last added listener will be called first. When all the listeners of this window has been called, the event is propagated up to the window parent of this window, if there is one.

The MouseEventsource is the docking window connected to the tab in which the mouse event occured. The event point is the mouse coordinate where the event occured relative to the window.

Parameters:
listenerDocking - the listener
Since:
IDW 1.3.0

removeTabMouseButtonListener

public void removeTabMouseButtonListener(MouseButtonListener listenerDocking)
Removes a mouse button listener that has been previously added using the addTabMouseButtonListener(MouseButtonListener).

Parameters:
listenerDocking - the listener
Since:
IDW 1.3.0

addListener

public void addListener(DockingWindowListener listener)
Adds a listener which will reveive events for this window and all child windows.

Parameters:
listener - the listener
Since:
IDW 1.1.0

removeListener

public void removeListener(DockingWindowListener listener)
Removes a previously added listener.

Parameters:
listener - the listener
Since:
IDW 1.1.0

getWindowParent

public DockingWindow getWindowParent()
Returns the window parent of this window.

Returns:
the window parent of this window

split

public SplitWindow split(DockingWindow splitWithWindow,
                         Direction direction,
                         float dividerLocation)
Splits this window in the given direction. If this window is a View which is contained in a TabWindow with a single tab, the TabWindow will splitted instead of this View.

Parameters:
splitWithWindow - the splitWithWindow which to split with
direction - the split direction
dividerLocation - the relative split divider location (0 - 1)
Returns:
the resulting split window

startDrag

public DockingWindowDragger startDrag(RootWindow dropTarget)
Starts a drag and drop operation for this window.

Parameters:
dropTarget - the RootWindow in which the window can be dropped
Returns:
an DockingWindowDragger object which controls the drag and drop operation
Since:
IDW 1.3.0

getWindowProperties

public DockingWindowProperties getWindowProperties()
Returns the properties for this window.

Returns:
the properties for this window

getRootWindow

public RootWindow getRootWindow()
Returns the RootWindow which contains this window, null if there is none.

Returns:
the RootWindow, null if there is none

restoreWithAbort

public void restoreWithAbort()
                      throws OperationAbortedException
Same as restore(), but the DockingWindowListener.windowRestoring(DockingWindow) method of the window listeners will be called before restoring the window, giving them the possibility to abort the restore operation.

Throws:
OperationAbortedException - if the restore operation was aborted by a window listener
Since:
IDW 1.4.0
See Also:
restore(), DockingWindowListener.windowMinimizing(DockingWindow)

restore

public void restore()
Restores this window to the location before it was minimized, maximized or closed. If the window can't be restored to the exact same location, a good approximation is performed. It's not guaranteed that the window is shown anywhere after this method has returned.


close

public void close()

Removes this window from it's window parent. If the window parent is a split window or a tab window with one child, it will be removed as well.

The location of this window is saved and the window can be restored to that location using the restore() method.

This method will call the DockingWindowListener.windowClosed(DockingWindow) method of all the listeners of this window and all window ancestors. The listeners of child windows will not be notified, for example closing a tab window containing views will not notify the listeners of views in that tab window.


closeWithAbort

public void closeWithAbort()
                    throws OperationAbortedException
Same as close(), but the DockingWindowListener.windowClosing(DockingWindow) method of the window listeners will be called before closing the window, giving them the possibility to abort the close operation.

Throws:
OperationAbortedException - if the close operation was aborted by a window listener
Since:
IDW 1.1.0
See Also:
close(), DockingWindowListener.windowClosing(DockingWindow)

undock

public FloatingWindow undock(Point location)

Undocks this window from it's window parent i.e. creates a FloatingWindow containing this window.

The window can be docked again by calling dock().

This method will call the DockingWindowListener.windowUndocked(DockingWindow) method of all the listeners of this window and all window ancestors. The listeners of child windows will not be notified, for example undocking a tab window containing views will not notify the listeners of views in that tab window.

Parameters:
location - floating window location in screen coordinates
Returns:
the floating window containing the undocked window
Since:
IDW 1.4.0

undockWithAbort

public FloatingWindow undockWithAbort(Point location)
                               throws OperationAbortedException
Same as undock(Point), but the DockingWindowListener.windowUndocking(DockingWindow) method of the window listeners will be called before undocking the window, giving them the possibility to abort the undock operation.

Parameters:
location - floating window location in screen coordinates
Returns:
the floating window containing the undocked window
Throws:
OperationAbortedException - if the undock operation was aborted by a window listener
Since:
IDW 1.4.0
See Also:
undock(Point), DockingWindowListener.windowClosing(DockingWindow)

dock

public void dock()

Docks the window to the RootWindow to the location it had before it was undocked.

If the window can't be docked to the exact same location, a good approximation is performed. It's not guaranteed that the window is shown anywhere after this method has returned.

This method will call the DockingWindowListener.windowDocked(DockingWindow) method of all the listeners of this window and all window ancestors. The listeners of child windows will not be notified, for example docking a tab window containing views will not notify the listeners of views in that tab window.

Since:
IDW 1.4.0

dockWithAbort

public void dockWithAbort()
                   throws OperationAbortedException
Same as dock(), but the DockingWindowListener.windowDocking(DockingWindow) method of the window listeners will be called before docking the window, giving them the possibility to abort the dock operation.

Throws:
OperationAbortedException - if the dock operation was aborted by a window listener
Since:
IDW 1.4.0
See Also:
dock(), DockingWindowListener.windowDocking(DockingWindow)

getChildWindowIndex

public int getChildWindowIndex(DockingWindow window)
Returns the index of a child windows.

Parameters:
window - the child window
Returns:
the index of the child window, -1 if the window is not a child of this window

getPopupMenuFactory

public WindowPopupMenuFactory getPopupMenuFactory()
Returns the popup menu factory for this window. If it's null the window parent popup menu factory will be used when the mouse popup trigger is activated on this window.

Returns:
the popup menu factory for this window, null if there is none

setPopupMenuFactory

public void setPopupMenuFactory(WindowPopupMenuFactory popupMenuFactory)
Sets the popup menu factory for this window. If it's not null a popup menu will be created and shown when the mouse popup trigger is activated on this window.

Parameters:
popupMenuFactory - the popup menu factory, null if no popup menu should be shown

isMinimized

public boolean isMinimized()
Returns true if this window is minimized, ie located in a WindowBar.

Returns:
true if this window is minimized

getLastFocusedChildWindow

public DockingWindow getLastFocusedChildWindow()
Returns the child window that last contained focus.

Returns:
the child window that last contained focus, null if no child window has contained focus or the child has been removed from this window

maximize

public final void maximize()
Maximizes this window in its root window or in its floating window. If this window has no root window nothing happens. This method takes the window component and displays it at the top in the root window or in the floating window. It does NOT modify the window tree structure, ie the window parent remains the unchanged.

The location of this window is saved and the window can be restored to that location using the restore() method.

Since:
IDW 1.1.0

maximizeWithAbort

public void maximizeWithAbort()
                       throws OperationAbortedException
Same as maximize(), but the DockingWindowListener.windowMaximized(DockingWindow) method of the window listeners will be called before maximizing the window, giving them the possibility to abort the maximize operation.

Throws:
OperationAbortedException - if the maximize operation was aborted by a window listener
Since:
IDW 1.4.0
See Also:
maximize(), DockingWindowListener.windowMinimizing(DockingWindow)

isMaximized

public boolean isMaximized()
Returns true if this window has a root window and is maximized in that root window or in a floating window.

Returns:
true if this window has a root window and is maximized in that root window or in a floating window
Since:
IDW 1.1.0

minimize

public void minimize()
Minimizes this window. The window is minimized to the WindowBar in the preferred minimize direction, see setPreferredMinimizeDirection(net.infonode.util.Direction) and getPreferredMinimizeDirection(). If the WindowBar in that direction is not enabled, or the direction is null, thiw window is placed on the closest enabled WindowBar. If no suitable WindowBar was found or this window already is minimized, no action is performed.

The location of this window is saved and the window can be restored to that location using the restore() method.


minimize

public void minimize(Direction direction)
Minimizes this window to a WindowBarlocated in direction. If no suitable WindowBarwas found or this window already is minimized, no action is performed.

The location of this window is saved and the window can be restored to that location using the restore() method.

Parameters:
direction - the direction in which the window bar to be minimized to is located

minimizeWithAbort

public void minimizeWithAbort()
                       throws OperationAbortedException
Same as minimize(), but the DockingWindowListener.windowMinimizing(DockingWindow) method of the window listeners will be called before minimizing the window, giving them the possibility to abort the minimize operation.

Throws:
OperationAbortedException - if the minimize operation was aborted by a window listener
Since:
IDW 1.4.0
See Also:
minimize(), DockingWindowListener.windowMinimizing(DockingWindow)

minimizeWithAbort

public void minimizeWithAbort(Direction direction)
                       throws OperationAbortedException
Same as minimize(Direction), but the DockingWindowListener.windowMinimizing(DockingWindow) method of the window listeners will be called before minimizing the window, giving them the possibility to abort the minimize operation.

Throws:
OperationAbortedException - if the minimize operation was aborted by a window listener
Since:
IDW 1.4.0
See Also:
minimize(Direction), DockingWindowListener.windowMinimizing(DockingWindow)

isMinimizable

public boolean isMinimizable()
Returns true if this window can be minimized by the user.

Returns:
true if this window can be minimized
See Also:
minimize()

isMaximizable

public boolean isMaximizable()
Returns true if this window can be maximized by the user.

Returns:
true if this window can be maximized
Since:
IDW 1.2.0
See Also:
maximize()

isClosable

public boolean isClosable()
Returns true if this window can be closed by the user.

Returns:
true if this window can be closed
Since:
IDW 1.2.0
See Also:
close(), closeWithAbort()

isRestorable

public boolean isRestorable()
Returns true if this window can be restored by the user.

Returns:
true if this window can be restored
Since:
IDW 1.2.0
See Also:
restore()

isUndockable

public boolean isUndockable()
Returns true if this window can be undocked to a floating window.

Returns:
true if this window can be undocked
Since:
IDW 1.4.0
See Also:
undock(Point)

isDockable

public boolean isDockable()
Returns true if this window can be docked to the root window from a floating window.

Returns:
true if this window can be docked
Since:
IDW 1.4.0
See Also:
dock()

replaceChildWindow

public void replaceChildWindow(DockingWindow oldWindow,
                               DockingWindow newWindow)
Replaces a child window with another window.

Parameters:
oldWindow - the child window to replaceChildWindow
newWindow - the window to replaceChildWindow it with

getTitle

public String getTitle()
Returns the title of this window.

Returns:
the window title

toString

public String toString()

makeVisible

public void makeVisible()
Makes this window visible. This causes the tabs of all TabWindow parents containing this window to be selected.

Since:
IDW 1.1.0

restoreFocus

public void restoreFocus()
Requests that the last focused child window becomes visible and that focus is restored to the last focused component in that window. If no child window has had focus or the child window has been removed from this window, focus is transferred to a child component of this window.

Since:
IDW 1.1.0


Copyright © 2007 NNL Technology AB. All Rights Reserved.