net.infonode.docking
Class View

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.View
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class View
extends DockingWindow

A view is a docking window containing a component.

A view can also contain a title bar that can be shown on either side of the view component. The title bar is made visible by setting the visible property in the ViewTitleBarProperties in the ViewProperties for this view. The title bar automatically inherits the view's title and icon but it's possible to specify a specific title and icon for the title bar in the ViewTitleBarProperties in the ViewProperties for this view.

Version:
$Revision: 1.66 $
Author:
$Author: jesper $
See Also:
ViewProperties, ViewTitleBarProperties, 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
private  SimplePanel contentPanel
           
private  java.util.List customTitleBarComponents
           
private  java.awt.event.HierarchyListener focusComponentListener
           
private  WindowTab ghostTab
           
private  boolean isfocused
           
private  java.awt.Component lastFocusedComponent
           
private  java.lang.ref.WeakReference lastRootWindow
           
private  PropertyChangeListener listener
           
private  ViewProperties rootProperties
           
private  ViewTitleBar titleBar
           
private  DropAction titleBarDropAction
           
private  PropertyChangeListener titleBarPropertiesListener
           
 
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
View(java.lang.String title, javax.swing.Icon icon, java.awt.Component component)
          Constructor.
 
Method Summary
protected  DropAction acceptInteriorDrop(java.awt.Point p, DockingWindow window)
           
private  void addGhostTab(DockingWindow window)
           
private  void checkLastFocusedComponent()
           
protected  PropertyMap createPropertyObject()
           
protected  DropAction doAcceptDrop(java.awt.Point p, DockingWindow window)
           
protected  void doRemoveWindow(DockingWindow window)
           
protected  void doReplace(DockingWindow oldWindow, DockingWindow newWindow)
           
 DockingWindow getChildWindow(int index)
          Returns the child window with index index.
 int getChildWindowCount()
          Returns the number of child windows.
 java.awt.Component getComponent()
          Gets the component inside the view.
 java.util.List getCustomTabComponents()
           Returns a list containing the custom window tab components.
 java.util.List getCustomTitleBarComponents()
           Returns a list containing the custom view title bar components.
(package private)  java.awt.Component getFocusComponent()
           
 javax.swing.Icon getIcon()
          Returns the icon for this window.
protected  PropertyMap getPropertyObject()
           
 ViewProperties getViewProperties()
          Returns the property values for this view.
 boolean isFocusCycleRoot()
           
protected  boolean needsTitleWindow()
           
(package private) static View read(java.io.ObjectInputStream in, ReadContext context)
           
(package private)  void removeWindowComponent(DockingWindow window)
           
 void restoreFocus()
          Restores focus to the last focused child component or, if no child component has had focus, the first focusable component inside the view.
(package private)  void restoreWindowComponent(DockingWindow window)
           
protected  void rootChanged(RootWindow oldRoot, RootWindow newRoot)
           
 void setComponent(java.awt.Component component)
          Sets the component inside the view.
protected  void setFocused(boolean focused)
           
(package private)  void setLastFocusedComponent(java.awt.Component component)
           
(package private)  void setRootWindow(RootWindow newRoot)
           
 java.lang.String toString()
           
protected  void update()
           
protected  void updateButtonVisibility()
           
private  void updateTitleBar(Property property, java.lang.Object valueContainer)
           
protected  void write(java.io.ObjectOutputStream out, WriteContext context)
           
protected  void write(java.io.ObjectOutputStream out, WriteContext context, ViewWriter viewWriter)
           
 
Methods inherited from class net.infonode.docking.DockingWindow
acceptChildDrop, acceptDrop, acceptSplitDrop, acceptsSplitWith, addListener, addTabMouseButtonListener, addWindow, addWindowItem, afterWindowRemoved, beforeDrop, beginOptimize, beginUpdateModel, childGainedFocus, childInsideTab, childRemoved, cleanUpModel, 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, getRootWindow, getSplitDropFilter, getTab, getTitle, getUpdateModel, getWindowItem, getWindowParent, getWindowProperties, hasParent, init, insideTab, internalClose, internalReplaceChildWindow, isChildShowingInRootWindow, isClosable, isDockable, isMaximizable, isMaximized, isMinimizable, isMinimized, isRestorable, isShowingInRootWindow, isUndockable, isUndocked, makeVisible, maximize, maximizeWithAbort, minimize, minimize, minimizeWithAbort, minimizeWithAbort, notifyListeners, oldRead, optimizeAfter, optimizeWindowLayout, readLocations, removeChildWindow, removeListener, removeTabMouseButtonListener, removeWindow, replaceChildWindow, restore, restoreWithAbort, setLastMinimizedDirection, setPopupMenuFactory, setPreferredMinimizeDirection, showChildWindow, showPopupMenu, showsWindowTitle, split, split, startDrag, storeAncestors, undock, undockWithAbort, updateWindowItem, updateWindowItems, writeLocations
 
Methods inherited from class net.infonode.gui.panel.BasePanel
setSouthComponent
 
Methods inherited from class net.infonode.gui.panel.BaseContainer
paintComponent, setBackground, setFont, setForeground, setOpaque, setUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, 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, 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, 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

lastFocusedComponent

private java.awt.Component lastFocusedComponent

focusComponentListener

private java.awt.event.HierarchyListener focusComponentListener

contentPanel

private SimplePanel contentPanel

rootProperties

private ViewProperties rootProperties

lastRootWindow

private java.lang.ref.WeakReference lastRootWindow

listener

private PropertyChangeListener listener

titleBarPropertiesListener

private PropertyChangeListener titleBarPropertiesListener

titleBar

private ViewTitleBar titleBar

isfocused

private boolean isfocused

customTitleBarComponents

private java.util.List customTitleBarComponents

ghostTab

private WindowTab ghostTab

titleBarDropAction

private DropAction titleBarDropAction
Constructor Detail

View

public View(java.lang.String title,
            javax.swing.Icon icon,
            java.awt.Component component)
Constructor.

Parameters:
title - the title of the view
icon - the icon for the view
component - the component to place inside the view
Method Detail

getCustomTabComponents

public java.util.List getCustomTabComponents()

Returns a list containing the custom window tab components. Changes to the list will be propagated to the tab.

The custom tab components will be shown after the window title when the window tab is highlighted. The components are shown in the same order as they appear in the list. The custom tab components container layout is rotated with the tab direction.

Returns:
a list containing the custom tab components, list elements are of type JComponent
Since:
IDW 1.3.0

getCustomTitleBarComponents

public java.util.List getCustomTitleBarComponents()

Returns a list containing the custom view title bar components. Changes to the list will be propagated to the title bar.

The custom title bar components will be shown after the view title in the title bar but before the close, minimize and restore buttons. The components are shown in the same order as they appear in the list. The custom title bar components container layout is rotated with the title bar direction.

Note: The components are only shon if the title bar is visible, see ViewTitleBarProperties.

Returns:
a list containing the custom title bar components, list elements are of type JComponent
Since:
IDW 1.4.0

getComponent

public java.awt.Component getComponent()
Gets the component inside the view.

Returns:
the component inside the view
Since:
IDW 1.1.0

setComponent

public void setComponent(java.awt.Component component)
Sets the component inside the view.

Overrides:
setComponent in class BasePanel
Parameters:
component - the component to place inside the view
Since:
IDW 1.1.0

getViewProperties

public ViewProperties getViewProperties()
Returns the property values for this view.

Returns:
the property values for this view

update

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

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

setLastFocusedComponent

void setLastFocusedComponent(java.awt.Component component)

getFocusComponent

java.awt.Component getFocusComponent()

isFocusCycleRoot

public boolean isFocusCycleRoot()
Overrides:
isFocusCycleRoot in class java.awt.Container

restoreFocus

public void restoreFocus()
Restores focus to the last focused child component or, if no child component has had focus, the first focusable component inside the view.

Overrides:
restoreFocus in class DockingWindow
Since:
IDW 1.1.0

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

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

write

protected void write(java.io.ObjectOutputStream out,
                     WriteContext context)
              throws java.io.IOException
Throws:
java.io.IOException

read

static View read(java.io.ObjectInputStream in,
                 ReadContext context)
          throws java.io.IOException
Throws:
java.io.IOException

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

addGhostTab

private void addGhostTab(DockingWindow window)

toString

public java.lang.String toString()
Overrides:
toString in class DockingWindow

setRootWindow

void setRootWindow(RootWindow newRoot)

setFocused

protected void setFocused(boolean focused)
Overrides:
setFocused in class DockingWindow

rootChanged

protected void rootChanged(RootWindow oldRoot,
                           RootWindow newRoot)
Overrides:
rootChanged in class DockingWindow

getPropertyObject

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

createPropertyObject

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

needsTitleWindow

protected boolean needsTitleWindow()
Overrides:
needsTitleWindow in class DockingWindow

checkLastFocusedComponent

private void checkLastFocusedComponent()

removeWindowComponent

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

restoreWindowComponent

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

updateTitleBar

private void updateTitleBar(Property property,
                            java.lang.Object valueContainer)

updateButtonVisibility

protected void updateButtonVisibility()
Overrides:
updateButtonVisibility in class DockingWindow

write

protected void write(java.io.ObjectOutputStream out,
                     WriteContext context,
                     ViewWriter viewWriter)
              throws java.io.IOException
Overrides:
write in class DockingWindow
Throws:
java.io.IOException