bibliothek.gui.dock.themes.basic
Class BasicDockableDisplayer

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.themes.basic.BasicDockableDisplayer
All Implemented Interfaces:
DockableDisplayer, ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
BubbleDisplayer

public class BasicDockableDisplayer
extends JPanel
implements DockableDisplayer

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
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Nested classes/interfaces inherited from interface bibliothek.gui.dock.DockableDisplayer
DockableDisplayer.Location
 
Field Summary
 
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
  BasicDockableDisplayer()
          Creates a new displayer
protected BasicDockableDisplayer(boolean initialize)
          Creates a new displayer but does not set the properties of the displayer.
  BasicDockableDisplayer(Dockable dockable, DockTitle title)
          Creates a new displayer, sets the title and the content.
  BasicDockableDisplayer(Dockable dockable, DockTitle title, DockableDisplayer.Location location)
          Creates a new displayer, sets the title, its location and the content.
 
Method Summary
protected  void addDockable(Component component)
          Inserts a component representing the current dockable into the layout.
protected  void addTitle(Component component)
          Inserts a component representing the current title into the layout.
 void doLayout()
           
 Component getComponent()
          Gets the Component which represents this displayer.
protected  Component getComponent(Dockable dockable)
          Gets the Component which should be used to layout the current Dockable.
protected  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.
 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()
          Gets the location of the title in respect to the Dockable.
protected  void init(Dockable dockable, DockTitle title, DockableDisplayer.Location location)
          Initialises all properties of this DockableDisplayer.
protected  DockTitle.Orientation orientation(DockableDisplayer.Location location)
          Determines the orientation of a DockTitle according to its location on this displayer.
protected  void removeDockable(Component component)
          Removes the Component which represents the current dockable.
protected  void removeTitle(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.
 boolean titleContains(int x, int y)
          Tells whether the point x/y is inside the title of this displayer or not.
 
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
 

Constructor Detail

BasicDockableDisplayer

public BasicDockableDisplayer()
Creates a new displayer


BasicDockableDisplayer

public BasicDockableDisplayer(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

BasicDockableDisplayer

public BasicDockableDisplayer(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

BasicDockableDisplayer

protected BasicDockableDisplayer(boolean initialize)
Creates a new displayer but does not set the properties of the displayer. Subclasses may call init to initialize all variables of the new displayer.

Parameters:
initialize - true if all properties should be set to default, false if nothing should happen, and init will be called.
Method Detail

init

protected void init(Dockable dockable,
                    DockTitle title,
                    DockableDisplayer.Location location)
Initialises all properties of this DockableDisplayer. This method should only be called once, by a constructor of a subclass which invoked DockableDisplayer( false ).

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

setController

public void setController(DockController controller)
Description copied from interface: DockableDisplayer
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.

Specified by:
setController in interface DockableDisplayer
Parameters:
controller - the controller, can be null

getController

public DockController getController()
Description copied from interface: DockableDisplayer
Gets the controller for which this displayer is used. Note that there is no guarantee, that this property is set.

Specified by:
getController in interface DockableDisplayer
Returns:
the controller or null

setStation

public void setStation(DockStation station)
Description copied from interface: DockableDisplayer
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.

Specified by:
setStation in interface DockableDisplayer
Parameters:
station - the station or null

getStation

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

Specified by:
getStation in interface DockableDisplayer
Returns:
the station or null

getDockable

public Dockable getDockable()
Description copied from interface: DockableDisplayer
Gets the Dockable which is shown on this displayer.

Specified by:
getDockable in interface DockableDisplayer
Returns:
the child, can be null

setDockable

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

Specified by:
setDockable in interface DockableDisplayer
Parameters:
dockable - the child, can be null

getTitleLocation

public DockableDisplayer.Location getTitleLocation()
Description copied from interface: DockableDisplayer
Gets the location of the title in respect to the Dockable.

Specified by:
getTitleLocation in interface DockableDisplayer
Returns:
the location

setTitleLocation

public void setTitleLocation(DockableDisplayer.Location location)
Description copied from interface: DockableDisplayer
Sets the location of the title in respect to the Dockable.

Specified by:
setTitleLocation in interface DockableDisplayer
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()
Description copied from interface: DockableDisplayer
Gets the title which is shown on this displayer.

Specified by:
getTitle in interface DockableDisplayer
Returns:
the title, can be null

setTitle

public void setTitle(DockTitle title)
Description copied from interface: DockableDisplayer
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.

Specified by:
setTitle in interface DockableDisplayer
Parameters:
title - the title or null

addDockable

protected void addDockable(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(Component component)
Removes the Component which represents the current dockable.

Parameters:
component - the component

getComponent

protected 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(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(Component component)
Removes the Component which represents the current title.

Parameters:
component - the component

getComponent

protected 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

titleContains

public boolean titleContains(int x,
                             int y)
Description copied from interface: DockableDisplayer
Tells whether the point x/y is inside the title of this displayer or not.

Specified by:
titleContains in interface DockableDisplayer
Parameters:
x - the x-coordinate, relatively to this component
y - the y-coordinate, relatively to this component
Returns:
true if the title contains the point

getComponent

public Component getComponent()
Description copied from interface: DockableDisplayer
Gets the Component which represents this displayer.

Specified by:
getComponent in interface DockableDisplayer
Returns:
the component

getMinimumSize

public Dimension getMinimumSize()
Overrides:
getMinimumSize in class JComponent

doLayout

public void doLayout()
Overrides:
doLayout in class Container