net.infonode.docking
Class AbstractTabWindow

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.AbstractTabWindow
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
TabWindow, WindowBar

public abstract class AbstractTabWindow
extends DockingWindow

Abstract base class for windows containing a tabbed panel.

Version:
$Revision: 1.72 $
Author:
$Author: jesper $
See Also:
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  int draggedTabIndex
           
private  WindowTab dragTab
          Temporary drag tab.
private  DropAction dropAction
           
private  int ignoreSelected
           
private static int MINIMUM_SIZE
           
private  java.util.List tabAreaComponents
           
private  TabbedPanel tabbedPanel
           
 
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
protected AbstractTabWindow(boolean showContent, WindowItem windowItem)
           
 
Method Summary
protected  DropAction acceptInteriorDrop(java.awt.Point p, DockingWindow window)
           
 void addTab(DockingWindow window)
          Adds a window tab last in this tab window.
 int addTab(DockingWindow window, int index)
          Inserts a window tab at an index in this tab window.
protected  int addTabNoSelect(DockingWindow window, int index)
           
private  void beginIgnoreSelected()
           
protected  boolean childInsideTab()
           
protected  void clearChildrenFocus(DockingWindow child, View view)
           
protected  void clearFocus(View view)
           
(package private)  WindowTab createGhostTab(DockingWindow window)
           
protected  void doRemoveWindow(DockingWindow window)
           
protected  void doReplace(DockingWindow oldWindow, DockingWindow newWindow)
           
private  void endIgnoreSelected()
           
 DockingWindow getChildWindow(int index)
          Returns the child window with index index.
 int getChildWindowCount()
          Returns the number of child windows.
 java.util.List getCustomTabAreaComponents()
           Returns a list containing the custom tab area components.
 javax.swing.Icon getIcon()
          Returns the icon for this window.
protected  boolean getIgnoreSelected()
           
protected  DockingWindow getLocationWindow()
           
protected  DockingWindow getPreferredFocusChild()
           
 DockingWindow getSelectedWindow()
          Returns the currently selected window in the tabbed panel.
protected  int getTabAreaComponentCount()
           
protected  void getTabAreaComponents(int index, javax.swing.JComponent[] components)
           
protected  TabbedPanel getTabbedPanel()
           
private  java.awt.Dimension getTabbedPanelMinimumSize(java.awt.Dimension d)
           
private  WindowTabProperties getTabProperties(DockingWindow window)
           
abstract  TabWindowProperties getTabWindowProperties()
          Returns the properties for this tab window.
protected  void initMouseListener()
           
protected  boolean isChildShowingInRootWindow(DockingWindow child)
           
protected  boolean isInsideTabArea(java.awt.Point p2)
           
protected  DockingWindow newRead(java.io.ObjectInputStream in, ReadContext context, ViewReader viewReader)
           
protected  DockingWindow oldRead(java.io.ObjectInputStream in, ReadContext context)
           
(package private)  void removeWindowComponent(DockingWindow window)
           
(package private)  void restoreWindowComponent(DockingWindow window)
           
(package private)  void setDraggedTabIndex(int index)
           
 void setSelectedTab(int index)
          Selects the tab with the index.
protected  void setTabWindowProperties(TabWindowProperties properties)
           
protected  void showChildWindow(DockingWindow window)
           
protected  boolean showsWindowTitle()
           
private  void stopDrag()
           
protected  void tabSelected(WindowTab tab)
           
protected  void updateSelectedTab()
           
private  void updateTab(DockingWindow window)
           
protected  void updateTabAreaComponents()
           
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, childRemoved, cleanUpModel, close, closeWithAbort, createPropertyObject, createTabWindow, detach, doAcceptDrop, 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, getOptimizedWindow, getPopupMenuFactory, getPreferredMinimizeDirection, getPropertyObject, getRootWindow, getSplitDropFilter, getTab, getTitle, getUpdateModel, getWindowItem, getWindowParent, getWindowProperties, hasParent, init, insideTab, internalClose, internalReplaceChildWindow, isClosable, isDockable, isMaximizable, isMaximized, isMinimizable, isMinimized, isRestorable, isShowingInRootWindow, isUndockable, isUndocked, makeVisible, maximize, maximizeWithAbort, minimize, minimize, minimizeWithAbort, minimizeWithAbort, needsTitleWindow, notifyListeners, optimizeAfter, optimizeWindowLayout, readLocations, removeChildWindow, removeListener, removeTabMouseButtonListener, removeWindow, replaceChildWindow, restore, restoreFocus, restoreWithAbort, rootChanged, setFocused, setLastMinimizedDirection, setPopupMenuFactory, setPreferredMinimizeDirection, showPopupMenu, split, split, startDrag, storeAncestors, toString, undock, undockWithAbort, update, updateButtonVisibility, updateWindowItem, updateWindowItems, writeLocations
 
Methods inherited from class net.infonode.gui.panel.BasePanel
setComponent, 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, 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

MINIMUM_SIZE

private static int MINIMUM_SIZE

dropAction

private DropAction dropAction

tabbedPanel

private TabbedPanel tabbedPanel

dragTab

private WindowTab dragTab
Temporary drag tab.


ignoreSelected

private int ignoreSelected

draggedTabIndex

private int draggedTabIndex

tabAreaComponents

private java.util.List tabAreaComponents
Constructor Detail

AbstractTabWindow

protected AbstractTabWindow(boolean showContent,
                            WindowItem windowItem)
Method Detail

getTabWindowProperties

public abstract TabWindowProperties getTabWindowProperties()
Returns the properties for this tab window.

Returns:
the properties for this tab window

initMouseListener

protected void initMouseListener()

getTabbedPanelMinimumSize

private java.awt.Dimension getTabbedPanelMinimumSize(java.awt.Dimension d)

getCustomTabAreaComponents

public final java.util.List getCustomTabAreaComponents()

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

The custom tab area components will between the scroll buttons and the window buttons in the tab area components panel. The components are shown in the same order as they appear in the list. The tab area components container layout is rotated with the tab window tab orientation.

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

getSelectedWindow

public DockingWindow getSelectedWindow()
Returns the currently selected window in the tabbed panel.

Returns:
the currently selected window in the tabbed panel

setSelectedTab

public void setSelectedTab(int index)
Selects the tab with the index.

Parameters:
index - the tab index

addTab

public void addTab(DockingWindow window)
Adds a window tab last in this tab window.

Parameters:
window - the window

addTab

public int addTab(DockingWindow window,
                  int index)
Inserts a window tab at an index in this tab window.

Parameters:
window - the window
index - the index where to insert the tab
Returns:
the index of the added tab, this might not be the same as index if the tab already is added to this tab window

addTabNoSelect

protected int addTabNoSelect(DockingWindow window,
                             int index)

isChildShowingInRootWindow

protected boolean isChildShowingInRootWindow(DockingWindow child)
Overrides:
isChildShowingInRootWindow in class DockingWindow

showChildWindow

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

childInsideTab

protected boolean childInsideTab()
Overrides:
childInsideTab in class DockingWindow
Returns:
true if the child windows are inside tabs __exclude__

setTabWindowProperties

protected void setTabWindowProperties(TabWindowProperties properties)

clearFocus

protected void clearFocus(View view)
Overrides:
clearFocus in class DockingWindow

getPreferredFocusChild

protected DockingWindow getPreferredFocusChild()
Overrides:
getPreferredFocusChild in class DockingWindow

clearChildrenFocus

protected void clearChildrenFocus(DockingWindow child,
                                  View view)
Overrides:
clearChildrenFocus in class DockingWindow

getTabAreaComponentCount

protected int getTabAreaComponentCount()

updateTabAreaComponents

protected void updateTabAreaComponents()

getTabAreaComponents

protected void getTabAreaComponents(int index,
                                    javax.swing.JComponent[] components)

getIgnoreSelected

protected final boolean getIgnoreSelected()

tabSelected

protected void tabSelected(WindowTab tab)

getTabbedPanel

protected TabbedPanel getTabbedPanel()

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

getLocationWindow

protected DockingWindow getLocationWindow()
Overrides:
getLocationWindow in class DockingWindow

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

updateTab

private void updateTab(DockingWindow window)

getTabProperties

private WindowTabProperties getTabProperties(DockingWindow window)

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

beginIgnoreSelected

private void beginIgnoreSelected()

endIgnoreSelected

private void endIgnoreSelected()

isInsideTabArea

protected boolean isInsideTabArea(java.awt.Point p2)

acceptInteriorDrop

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

createGhostTab

WindowTab createGhostTab(DockingWindow window)

stopDrag

private void stopDrag()

showsWindowTitle

protected boolean showsWindowTitle()
Overrides:
showsWindowTitle in class DockingWindow

oldRead

protected DockingWindow oldRead(java.io.ObjectInputStream in,
                                ReadContext context)
                         throws java.io.IOException
Overrides:
oldRead in class DockingWindow
Throws:
java.io.IOException

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

newRead

protected DockingWindow newRead(java.io.ObjectInputStream in,
                                ReadContext context,
                                ViewReader viewReader)
                         throws java.io.IOException
Throws:
java.io.IOException

updateSelectedTab

protected void updateSelectedTab()

setDraggedTabIndex

void setDraggedTabIndex(int index)

removeWindowComponent

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

restoreWindowComponent

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