bibliothek.gui.dock
Class DockableDisplayer

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 bibliothek.gui.dock.DockableDisplayer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
BubbleDisplayer

public class DockableDisplayer
extends javax.swing.JPanel

A panel which shows one Dockable and one DockTitle. The location of the DockTitle is always at one of the four borders (left, right, top, bottom). The title may be null, in this case only the Dockable is shown.
Clients using a displayer should try to set the controller and the station property.
Subclasses may override getComponent(Dockable), addDockable(Component), removeDockable(Component), getComponent(DockTitle), addTitle(Component) and/or removeTitle(Component) if they want to introduce a completely new layout needing more Containers.

Author:
Benjamin Sigg
See Also:
DisplayerCollection, DisplayerFactory, Serialized Form

Nested Class Summary
static class DockableDisplayer.Location
          The four possible locations of the title
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  DockController controller
          the controller for which this displayer might be used
private  Dockable dockable
          The content of this displayer
private  DockableDisplayer.Location location
          the location of the title
private  DockStation station
          the station on which this displayer might be shown
private  DockTitle title
          The title on this displayer
 
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
DockableDisplayer()
          Creates a new displayer
DockableDisplayer(Dockable dockable, DockTitle title)
          Creates a new displayer, sets the title and the content.
DockableDisplayer(Dockable dockable, DockTitle title, DockableDisplayer.Location location)
          Creates a new displayer, sets the title, its location and the content.
 
Method Summary
protected  void addDockable(java.awt.Component component)
          Inserts a component representing the current dockable into the layout.
protected  void addTitle(java.awt.Component component)
          Inserts a component representing the current title into the layout.
 void doLayout()
           
protected  java.awt.Component getComponent(Dockable dockable)
          Gets the Component which should be used to layout the current Dockable.
protected  java.awt.Component getComponent(DockTitle title)
          Gets the Component which should be used to layout the current DockTitle.
 DockController getController()
          Gets the controller for which this displayer is used.
 Dockable getDockable()
          Gets the Dockable which is shown on this displayer.
 java.awt.Dimension getMinimumSize()
           
 DockStation getStation()
          Gets the station on which this displayer might be shown.
 DockTitle getTitle()
          Gets the title which is shown on this displayer.
 DockableDisplayer.Location getTitleLocation()
          Gest the location of the title in respect to the Dockable.
protected  DockTitle.Orientation orientation(DockableDisplayer.Location location)
          Determines the orientation of a DockTitle according to its location on this displayer.
protected  void removeDockable(java.awt.Component component)
          Removes the Component which represents the current dockable.
protected  void removeTitle(java.awt.Component component)
          Removes the Component which represents the current title.
 void setController(DockController controller)
          Sets the controller for which this displayer is used.
 void setDockable(Dockable dockable)
          Sets the Dockable which should be shown on this displayer.
 void setStation(DockStation station)
          Sets the station on which this displayer is shown.
 void setTitle(DockTitle title)
          Sets the title of this displayer.
 void setTitleLocation(DockableDisplayer.Location location)
          Sets the location of the title in respect to the Dockable.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, 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, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dockable

private Dockable dockable
The content of this displayer


title

private DockTitle title
The title on this displayer


location

private DockableDisplayer.Location location
the location of the title


station

private DockStation station
the station on which this displayer might be shown


controller

private DockController controller
the controller for which this displayer might be used

Constructor Detail

DockableDisplayer

public DockableDisplayer()
Creates a new displayer


DockableDisplayer

public DockableDisplayer(Dockable dockable,
                         DockTitle title)
Creates a new displayer, sets the title and the content.

Parameters:
dockable - the content, may be null
title - the title, may be null

DockableDisplayer

public DockableDisplayer(Dockable dockable,
                         DockTitle title,
                         DockableDisplayer.Location location)
Creates a new displayer, sets the title, its location and the content.

Parameters:
dockable - the content, may be null
title - the title of dockable, can be null
location - the location of the title, can be null
Method Detail

setController

public void setController(DockController controller)
Sets the controller for which this displayer is used. That property must be set by the client. Note that there is no guarantee, that a client sets this property.

Parameters:
controller - the controller, can be null

getController

public DockController getController()
Gets the controller for which this displayer is used. Note that there is no guarantee, that this property is set.

Returns:
the controller or null

setStation

public void setStation(DockStation station)
Sets the station on which this displayer is shown. That property must be set by the station itself. Note that there is no guarantee, that a station sets this property.

Parameters:
station - the station or null

getStation

public DockStation getStation()
Gets the station on which this displayer might be shown. Note that there is no guarantee, that a parent-station sets this property.

Returns:
the station or null

getDockable

public Dockable getDockable()
Gets the Dockable which is shown on this displayer.

Returns:
the child, can be null

setDockable

public void setDockable(Dockable dockable)
Sets the Dockable which should be shown on this displayer. A value of null means that no Dockable should be visible at all.

Parameters:
dockable - the child, can be null

getTitleLocation

public DockableDisplayer.Location getTitleLocation()
Gest the location of the title in respect to the Dockable.

Returns:
the location

setTitleLocation

public void setTitleLocation(DockableDisplayer.Location location)
Sets the location of the title in respect to the Dockable.

Parameters:
location - the location, a value of null is transformed into the default-value

orientation

protected DockTitle.Orientation orientation(DockableDisplayer.Location location)
Determines the orientation of a DockTitle according to its location on this displayer.

Parameters:
location - the location on this displayer
Returns:
the orientation

getTitle

public DockTitle getTitle()
Gets the title which is shown on this displayer.

Returns:
the title, can be null

setTitle

public void setTitle(DockTitle title)
Sets the title of this displayer. If the title is set to null, no title is visible. The displayer will change the orientation of the title.

Parameters:
title - the title or null

addDockable

protected void addDockable(java.awt.Component component)
Inserts a component representing the current dockable into the layout. This method is never called twice unless removeDockable(Component) is called before. Note that the name "add" is inspired by the method add of Container.

Parameters:
component - the new Component

removeDockable

protected void removeDockable(java.awt.Component component)
Removes the Component which represents the current dockable.

Parameters:
component - the component

getComponent

protected java.awt.Component getComponent(Dockable dockable)
Gets the Component which should be used to layout the current Dockable.

Parameters:
dockable - the current Dockable, never null
Returns:
the component representing dockable

addTitle

protected void addTitle(java.awt.Component component)
Inserts a component representing the current title into the layout. This method is never called twice unless removeTitle(Component) is called before. Note that the name "add" is inspired by the method add of Container.

Parameters:
component - the new Component

removeTitle

protected void removeTitle(java.awt.Component component)
Removes the Component which represents the current title.

Parameters:
component - the component

getComponent

protected java.awt.Component getComponent(DockTitle title)
Gets the Component which should be used to layout the current DockTitle.

Parameters:
title - the current DockTitle, never null
Returns:
the component representing title

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class javax.swing.JComponent

doLayout

public void doLayout()
Overrides:
doLayout in class java.awt.Container