net.infonode.docking
Class RootWindow

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 net.infonode.gui.panel.BaseContainer
                      extended by net.infonode.gui.panel.BasePanel
                          extended by net.infonode.docking.DockingWindow
                              extended by net.infonode.docking.RootWindow
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, Readable, ReadWritable, Writable

public class RootWindow
extends DockingWindow
implements ReadWritable

The root window is a top level container for docking windows. Docking windows can't be dragged outside of their root window. The property values of a root window is inherited to the docking windows inside it.

Version:
$Revision: 1.127 $
Author:
$Author: jesper $
See Also:
Serialized Form

Nested Class Summary
private  class RootWindow.SingleComponentLayout
           
 
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
private  boolean cleanUpModel
           
private  javax.swing.JRootPane currentDragRootPane
           
private  java.awt.Component dragRectangle
           
private  java.awt.Container dragTextContainer
           
private  javax.swing.JLabel dragTextLabel
           
private  DragLabelWindow dragTextWindow
           
private  javax.swing.JFrame dummyFrame
           
private static int FLOATING_WINDOW_MIN_HEIGHT
           
private static int FLOATING_WINDOW_MIN_WIDTH
           
private  java.util.ArrayList floatingWindows
           
private  View focusedView
           
private  java.util.ArrayList focusedWindows
           
private  boolean heavyweightSupport
           
private  java.util.ArrayList lastFocusedWindows
           
private  ShapedPanel layeredPane
           
private  SimplePanel mainPanel
           
private  DockingWindow maximizedWindow
           
private  java.lang.Runnable modelCleanUpEvent
           
private static int SERIALIZE_VERSION
           
private  java.util.ArrayList views
           
private  ViewSerializer viewSerializer
           
private  DockingWindow window
           
private  WindowBar[] windowBars
           
private  ShapedPanel windowPanel
           
 
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
RootWindow(boolean heavyweightSupport, ViewSerializer viewSerializer)
          Creates an empty root window with support for heavyweight components inside the views.
RootWindow(boolean heavyweightSupport, ViewSerializer viewSerializer, DockingWindow window)
          Creates a root window with support for heavyweight components inside the views and the given window inside as window inside this root window.
RootWindow(ViewSerializer viewSerializer)
          Creates an empty root window.
RootWindow(ViewSerializer viewSerializer, DockingWindow window)
          Creates a root window with the given window as window inside this root window.
 
Method Summary
protected  DropAction acceptInteriorDrop(java.awt.Point p, DockingWindow window)
           
protected  boolean acceptsSplitWith(DockingWindow window)
           
(package private)  void addFocusedWindow(DockingWindow window)
           
(package private)  void addView(View view)
           
protected  void cleanUpModel()
           
(package private)  FloatingWindow createFloatingWindow()
           
(package private)  FloatingWindow createFloatingWindow(DockingWindow window, java.awt.Point p)
           
 FloatingWindow createFloatingWindow(java.awt.Point location, java.awt.Dimension innerSize, DockingWindow window)
           Creates and shows a floating window with the given window as top-level window in the floating window or without any top-level window i.e. empty floating window.
protected  PropertyMap createPropertyObject()
           
private  void createWindowBars()
           
protected  DropAction doAcceptDrop(java.awt.Point p, DockingWindow window)
           
protected  void doRemoveWindow(DockingWindow window)
           
protected  void doReplace(DockingWindow oldWindow, DockingWindow newWindow)
           
(package private)  boolean floatingWindowsContainPoint(java.awt.Point p)
           
 DockingWindow getChildWindow(int index)
          Returns the child window with index index.
 int getChildWindowCount()
          Returns the number of child windows.
 Direction getClosestWindowBar(DockingWindow window)
          Returns the direction of the closest enabled window bar to a docking window.
(package private)  javax.swing.JRootPane getCurrentDragRootPane()
           
 View getFocusedView()
          Returns the view that currently contains the focus.
 javax.swing.Icon getIcon()
          Returns the icon for this window.
(package private)  javax.swing.JComponent getLayeredPane()
           
 DockingWindow getMaximizedWindow()
          Returns the maximized window in this root window, or null if there no maximized window.
protected  PropertyMap getPropertyObject()
           
 RootWindow getRootWindow()
          Returns the RootWindow which contains this window, null if there is none.
 RootWindowProperties getRootWindowProperties()
          Returns the property values for this root window.
(package private)  java.awt.Component getTopLevelComponent()
           
 ViewSerializer getViewSerializer()
          Returns the view serializer object for the views inside this root window.
 DockingWindow getWindow()
          Returns the top level docking window inside this root window.
 WindowBar getWindowBar(Direction direction)
          Returns the window bar in the direction.
(package private)  javax.swing.JComponent getWindowPanel()
           
private  void internalSetMaximizedWindow(DockingWindow window)
           
(package private)  void internalStartDrag(javax.swing.JComponent component)
           
(package private)  boolean isHeavyweightSupported()
           
protected  boolean isShowingInRootWindow()
           
private  void newInternalRead(java.io.ObjectInputStream in, ReadContext context)
           
private  void oldInternalRead(java.io.ObjectInputStream in, ReadContext context)
           
protected  void paintComponent(java.awt.Graphics g)
           
 void read(java.io.ObjectInputStream in)
          Reads a previously written window state.
 void read(java.io.ObjectInputStream in, boolean readProperties)
          Reads a previously written window state.
private  void readMaximized(java.io.ObjectInputStream in)
           
(package private)  void removeFloatingWindow(FloatingWindow fw)
           
 void removeView(View view)
          Removes all internal references to a view.
(package private)  void removeWindowComponent(DockingWindow window)
           
private static boolean reparent(java.awt.Container parent, java.awt.Component c)
           
(package private)  void restoreWindowComponent(DockingWindow window)
           
(package private)  void setCurrentDragRootPane(javax.swing.JRootPane rootPane)
           
(package private)  void setDragCursor(java.awt.Cursor cursor)
           
(package private)  void setDragRectangle(java.awt.Rectangle rect)
           
(package private)  void setDragText(java.awt.Point textPoint, java.lang.String text)
           
(package private)  void setFocusedView(View view)
           
 void setMaximizedWindow(DockingWindow window)
          Sets the maximized window in this root window.
 void setWindow(DockingWindow newWindow)
          Sets the top level docking window inside this root window.
protected  void showChildWindow(DockingWindow window)
           
(package private)  void stopDrag()
           
protected  void update()
           
 void updateUI()
           
(package private)  boolean windowBarEnabled()
           
 void write(java.io.ObjectOutputStream out)
          Writes the state of this root window and all child windows.
 void write(java.io.ObjectOutputStream out, boolean writeProperties)
          Writes the state of this root window and all child windows.
private  void writeMaximized(DockingWindow window, java.io.ObjectOutputStream out)
           
private static void writeViews(java.util.ArrayList views, java.io.ObjectOutputStream out, WriteContext context)
           
private  void writeWindowItemIndex(WindowItem item, java.io.ObjectOutputStream out)
           
 
Methods inherited from class net.infonode.docking.DockingWindow
acceptChildDrop, acceptDrop, acceptSplitDrop, addListener, addTabMouseButtonListener, addWindow, addWindowItem, afterWindowRemoved, beforeDrop, beginOptimize, beginUpdateModel, childGainedFocus, childInsideTab, childRemoved, clearChildrenFocus, clearFocus, close, closeWithAbort, createTabWindow, detach, dock, dockWithAbort, endOptimize, endUpdateModel, fireTabWindowMouseButtonEvent, fireTabWindowMouseButtonEvent, fireTitleChanged, fireViewFocusChanged, fireWindowDocked, fireWindowDocked, fireWindowDocking, fireWindowHidden, fireWindowMaximized, fireWindowMaximizing, fireWindowMinimized, fireWindowMinimizing, fireWindowRestored, fireWindowRestoring, fireWindowShown, fireWindowUndocked, fireWindowUndocking, getAncestors, getBestFittedWindow, getChildDropFilter, getChildEdgeDepth, getChildWindowIndex, getContentWindow, getDefaultDropAction, getEdgeDepth, getInsertTabDropFilter, getInteriorDropFilter, getLastFocusedChildWindow, getLocationWindow, getOptimizedWindow, getPopupMenuFactory, getPreferredFocusChild, getPreferredMinimizeDirection, getSplitDropFilter, getTab, getTitle, getUpdateModel, getWindowItem, getWindowParent, getWindowProperties, hasParent, init, insideTab, internalClose, internalReplaceChildWindow, isChildShowingInRootWindow, isClosable, isDockable, isMaximizable, isMaximized, isMinimizable, isMinimized, isRestorable, isUndockable, isUndocked, makeVisible, maximize, maximizeWithAbort, minimize, minimize, minimizeWithAbort, minimizeWithAbort, needsTitleWindow, notifyListeners, oldRead, optimizeAfter, optimizeWindowLayout, readLocations, removeChildWindow, removeListener, removeTabMouseButtonListener, removeWindow, replaceChildWindow, restore, restoreFocus, restoreWithAbort, rootChanged, setFocused, setLastMinimizedDirection, setPopupMenuFactory, setPreferredMinimizeDirection, showPopupMenu, showsWindowTitle, split, split, startDrag, storeAncestors, toString, undock, undockWithAbort, updateButtonVisibility, updateWindowItem, updateWindowItems, write, writeLocations
 
Methods inherited from class net.infonode.gui.panel.BasePanel
setComponent, setSouthComponent
 
Methods inherited from class net.infonode.gui.panel.BaseContainer
setBackground, setFont, setForeground, setOpaque, setUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString
 
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, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, 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

SERIALIZE_VERSION

private static final int SERIALIZE_VERSION
See Also:
Constant Field Values

FLOATING_WINDOW_MIN_WIDTH

private static final int FLOATING_WINDOW_MIN_WIDTH
See Also:
Constant Field Values

FLOATING_WINDOW_MIN_HEIGHT

private static final int FLOATING_WINDOW_MIN_HEIGHT
See Also:
Constant Field Values

heavyweightSupport

private boolean heavyweightSupport

layeredPane

private ShapedPanel layeredPane

windowPanel

private ShapedPanel windowPanel

mainPanel

private SimplePanel mainPanel

dummyFrame

private javax.swing.JFrame dummyFrame

viewSerializer

private ViewSerializer viewSerializer

window

private DockingWindow window

windowBars

private WindowBar[] windowBars

floatingWindows

private java.util.ArrayList floatingWindows

maximizedWindow

private DockingWindow maximizedWindow

focusedView

private View focusedView

lastFocusedWindows

private java.util.ArrayList lastFocusedWindows

focusedWindows

private java.util.ArrayList focusedWindows

views

private java.util.ArrayList views

cleanUpModel

private boolean cleanUpModel

modelCleanUpEvent

private java.lang.Runnable modelCleanUpEvent

dragTextLabel

private javax.swing.JLabel dragTextLabel

dragTextContainer

private java.awt.Container dragTextContainer

dragTextWindow

private DragLabelWindow dragTextWindow

dragRectangle

private java.awt.Component dragRectangle

currentDragRootPane

private javax.swing.JRootPane currentDragRootPane
Constructor Detail

RootWindow

public RootWindow(ViewSerializer viewSerializer)
Creates an empty root window.

Parameters:
viewSerializer - used when reading and writing views
Since:
IDW 1.1.0

RootWindow

public RootWindow(boolean heavyweightSupport,
                  ViewSerializer viewSerializer)
Creates an empty root window with support for heavyweight components inside the views.

Parameters:
heavyweightSupport - true for heavy weight component support, otherwise false
viewSerializer - used when reading and writing views
Since:
IDW 1.4.0

RootWindow

public RootWindow(ViewSerializer viewSerializer,
                  DockingWindow window)
Creates a root window with the given window as window inside this root window.

Parameters:
viewSerializer - used when reading and writing views
window - the window that is placed inside the root window

RootWindow

public RootWindow(boolean heavyweightSupport,
                  ViewSerializer viewSerializer,
                  DockingWindow window)
Creates a root window with support for heavyweight components inside the views and the given window inside as window inside this root window.

Parameters:
heavyweightSupport - true for heavy weight component support, otherwise false
viewSerializer - used when reading and writing views
window - the window that is placed inside the root window
Since:
IDW 1.4.0
Method Detail

getFocusedView

public View getFocusedView()
Returns the view that currently contains the focus.

Returns:
The currently focused view, null if no view has focus

addFocusedWindow

void addFocusedWindow(DockingWindow window)

setFocusedView

void setFocusedView(View view)

getRootWindowProperties

public RootWindowProperties getRootWindowProperties()
Returns the property values for this root window. The property values will be inherited to docking windows inside this root window.

Returns:
the property values for this root window

getClosestWindowBar

public Direction getClosestWindowBar(DockingWindow window)
Returns the direction of the closest enabled window bar to a docking window. The distance is measured from the window edge that is furthest away from the bar.

Parameters:
window - the docking window
Returns:
the direction of the closest enabled window bar to a docking window

getWindowBar

public WindowBar getWindowBar(Direction direction)
Returns the window bar in the direction.

Parameters:
direction - the direction
Returns:
the window bar in the direction

setWindow

public void setWindow(DockingWindow newWindow)
Sets the top level docking window inside this root window.

Parameters:
newWindow - the top level docking window

getWindow

public DockingWindow getWindow()
Returns the top level docking window inside this root window.

Returns:
the top level docking window inside this root window

createFloatingWindow

public FloatingWindow createFloatingWindow(java.awt.Point location,
                                           java.awt.Dimension innerSize,
                                           DockingWindow window)

Creates and shows a floating window with the given window as top-level window in the floating window or without any top-level window i.e. empty floating window.

Note 1: The created floating window is not visible per default. To make it visible, call FloatingWindow.getTopLevelAncestor().setVisible(true);

Note 2: Floating windows are dynamically created when a window is undocked and closed/removed when all windows inside the floating window has been removed (i.e. cloased/docked/undocked to another floating window) from the floating window. The root window has a refernce to the floating window as long as the floating window has windows inside it i.e. it is not necessary to keep references to the floating window because the root window will handle this.

Parameters:
location - the floating window's location on the screen
innerSize - the inner dimension of the floating window's top level container i.e.the size of the root pane
window - the docking window that is the top level window in this floating window or null for no top-level window i.e. empty floating window
Returns:
the floating window
Since:
IDW 1.4.0

createFloatingWindow

FloatingWindow createFloatingWindow()

createFloatingWindow

FloatingWindow createFloatingWindow(DockingWindow window,
                                    java.awt.Point p)

removeFloatingWindow

void removeFloatingWindow(FloatingWindow fw)

getViewSerializer

public ViewSerializer getViewSerializer()
Returns the view serializer object for the views inside this root window.

Returns:
the view serializer object for the views inside this root window

getChildWindow

public DockingWindow getChildWindow(int index)
Description copied from class: DockingWindow
Returns the child window with index index.

Specified by:
getChildWindow in class DockingWindow
Parameters:
index - the child window index
Returns:
the child window

getChildWindowCount

public int getChildWindowCount()
Description copied from class: DockingWindow
Returns the number of child windows.

Specified by:
getChildWindowCount in class DockingWindow
Returns:
the number of child windows

getIcon

public javax.swing.Icon getIcon()
Description copied from class: DockingWindow
Returns the icon for this window.

Specified by:
getIcon in class DockingWindow
Returns:
the icon

write

public void write(java.io.ObjectOutputStream out)
           throws java.io.IOException
Writes the state of this root window and all child windows.

Specified by:
write in interface Writable
Parameters:
out - the stream on which to write the state
Throws:
java.io.IOException - if there is a stream error

write

public void write(java.io.ObjectOutputStream out,
                  boolean writeProperties)
           throws java.io.IOException
Writes the state of this root window and all child windows.

Parameters:
out - the stream on which to write the state
writeProperties - true if the property values for all docking windows should be written to the stream
Throws:
java.io.IOException - if there is a stream error

writeWindowItemIndex

private void writeWindowItemIndex(WindowItem item,
                                  java.io.ObjectOutputStream out)
                           throws java.io.IOException
Throws:
java.io.IOException

writeMaximized

private void writeMaximized(DockingWindow window,
                            java.io.ObjectOutputStream out)
                     throws java.io.IOException
Throws:
java.io.IOException

writeViews

private static void writeViews(java.util.ArrayList views,
                               java.io.ObjectOutputStream out,
                               WriteContext context)
                        throws java.io.IOException
Throws:
java.io.IOException

read

public void read(java.io.ObjectInputStream in)
          throws java.io.IOException
Reads a previously written window state. This will create child windows and read their state.

Specified by:
read in interface Readable
Parameters:
in - the stream from which to read the state
Throws:
java.io.IOException - if there is a stream error

oldInternalRead

private void oldInternalRead(java.io.ObjectInputStream in,
                             ReadContext context)
                      throws java.io.IOException
Throws:
java.io.IOException

newInternalRead

private void newInternalRead(java.io.ObjectInputStream in,
                             ReadContext context)
                      throws java.io.IOException
Throws:
java.io.IOException

read

public void read(java.io.ObjectInputStream in,
                 boolean readProperties)
          throws java.io.IOException
Reads a previously written window state. This will create child windows and read their state.

Parameters:
in - the stream from which to read the state
readProperties - true if the property values for all child windows should be read. This parameter can be set to true or false regardless of if the property values was included when the state was written, though obviously no property values are read if there aren't any in the stream.
Throws:
java.io.IOException - if there is a stream error

readMaximized

private void readMaximized(java.io.ObjectInputStream in)
                    throws java.io.IOException
Throws:
java.io.IOException

getMaximizedWindow

public DockingWindow getMaximizedWindow()
Returns the maximized window in this root window, or null if there no maximized window.

Returns:
the maximized window in this root window, or null if there no maximized window
Since:
IDW 1.1.0

setMaximizedWindow

public void setMaximizedWindow(DockingWindow window)
Sets the maximized window in this root window. This method takes the window component and displays it at the top in the root window. It does NOT modify the window tree structure, ie the window parent remains the unchanged.

Parameters:
window - the maximized window in this root window, null means no maximized window
Since:
IDW 1.1.0

addView

void addView(View view)

removeView

public void removeView(View view)
Removes all internal references to a view. It's not possible to restore the view to the previous location after this method has been called. If the view is located in the window tree where this is the root nothing happens.

Parameters:
view - all internal references to this view are removed
Since:
IDW 1.4.0

internalSetMaximizedWindow

private void internalSetMaximizedWindow(DockingWindow window)

createWindowBars

private void createWindowBars()

getLayeredPane

javax.swing.JComponent getLayeredPane()

getWindowPanel

javax.swing.JComponent getWindowPanel()

showChildWindow

protected void showChildWindow(DockingWindow window)
Overrides:
showChildWindow in class DockingWindow

update

protected void update()
Specified by:
update in class DockingWindow

internalStartDrag

void internalStartDrag(javax.swing.JComponent component)

stopDrag

void stopDrag()

floatingWindowsContainPoint

boolean floatingWindowsContainPoint(java.awt.Point p)

setCurrentDragRootPane

void setCurrentDragRootPane(javax.swing.JRootPane rootPane)

getCurrentDragRootPane

javax.swing.JRootPane getCurrentDragRootPane()

getTopLevelComponent

java.awt.Component getTopLevelComponent()

isHeavyweightSupported

boolean isHeavyweightSupported()

reparent

private static boolean reparent(java.awt.Container parent,
                                java.awt.Component c)

setDragCursor

void setDragCursor(java.awt.Cursor cursor)

setDragText

void setDragText(java.awt.Point textPoint,
                 java.lang.String text)

setDragRectangle

void setDragRectangle(java.awt.Rectangle rect)

doReplace

protected void doReplace(DockingWindow oldWindow,
                         DockingWindow newWindow)
Specified by:
doReplace in class DockingWindow

doRemoveWindow

protected void doRemoveWindow(DockingWindow window)
Specified by:
doRemoveWindow in class DockingWindow

getRootWindow

public RootWindow getRootWindow()
Description copied from class: DockingWindow
Returns the RootWindow which contains this window, null if there is none.

Overrides:
getRootWindow in class DockingWindow
Returns:
the RootWindow, null if there is none

acceptsSplitWith

protected boolean acceptsSplitWith(DockingWindow window)
Overrides:
acceptsSplitWith in class DockingWindow

doAcceptDrop

protected DropAction doAcceptDrop(java.awt.Point p,
                                  DockingWindow window)
Overrides:
doAcceptDrop in class DockingWindow

acceptInteriorDrop

protected DropAction acceptInteriorDrop(java.awt.Point p,
                                        DockingWindow window)
Overrides:
acceptInteriorDrop in class DockingWindow

getPropertyObject

protected PropertyMap getPropertyObject()
Specified by:
getPropertyObject in class DockingWindow

createPropertyObject

protected PropertyMap createPropertyObject()
Specified by:
createPropertyObject in class DockingWindow

windowBarEnabled

boolean windowBarEnabled()

removeWindowComponent

void removeWindowComponent(DockingWindow window)
Specified by:
removeWindowComponent in class DockingWindow

restoreWindowComponent

void restoreWindowComponent(DockingWindow window)
Specified by:
restoreWindowComponent in class DockingWindow

cleanUpModel

protected void cleanUpModel()
Overrides:
cleanUpModel in class DockingWindow

isShowingInRootWindow

protected boolean isShowingInRootWindow()
Overrides:
isShowingInRootWindow in class DockingWindow

updateUI

public void updateUI()
Overrides:
updateUI in class javax.swing.JPanel

paintComponent

protected void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class BaseContainer