bibliothek.gui.dock.title
Class AbstractDockTitle

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.util.BackgroundPanel
                      extended by bibliothek.gui.dock.util.ConfiguredBackgroundPanel
                          extended by bibliothek.gui.dock.title.AbstractMultiDockTitle
                              extended by bibliothek.gui.dock.title.AbstractDockTitle
All Implemented Interfaces:
DockComponentRoot, DockElementRepresentative, DockTitle, PaintableComponent, ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
AbstractBubbleDockTitle, BasicButtonDockTitle, BasicDockTitle, BasicStationTitle

public class AbstractDockTitle
extends AbstractMultiDockTitle

An abstract implementation of DockTitle. This title can have an icon, a title-text and some small buttons to display actions. The icon is at the top or left edge, the text in the middle, and the actions at the lower or the right edge of the title. If the orientation of the title is set to vertical, the text will be rotated by 90 degrees.
This title has also an ActionPopup which will appear when the user presses the right mouse-button. The popup shows a list of all actions known to this title.
The whole logic a DockTitle needs is implemented in this class, but subclasses may add graphical features - like a border or another background.
Subclasses may override AbstractMultiDockTitle.getInnerInsets() to add a space between border and contents of this title.

Author:
Benjamin Sigg
See Also:
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Nested classes/interfaces inherited from interface bibliothek.gui.dock.title.DockTitle
DockTitle.Orientation
 
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 bibliothek.gui.dock.title.DockTitle
ORIENTATION_STRATEGY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
protected AbstractDockTitle()
          Constructor which does not do anything.
  AbstractDockTitle(Dockable dockable, DockTitleVersion origin)
          Constructs a new title
  AbstractDockTitle(Dockable dockable, DockTitleVersion origin, boolean showMiniButtons)
          Standard constructor
 
Method Summary
 void bind()
          Called before this title is displayed.
 void changed(DockTitleEvent event)
          Called if a property changed that might be important for painting this title.
protected  void doTitleLayout()
          Updates the layout (position and size of all children) of this title.
protected  DockActionSource getActionSourceFor(Dockable dockable)
          Gets a list of all actions which will be shown on this title.
 Point getPopupLocation(Point click, boolean popupTrigger)
          Tells whether a popup menu should be opened when the user clicks at click with the mouse.
 Dimension getPreferredSize()
           
protected  DockActionSource getSuggestedSource()
          Gets the DockActionSource that was suggested to this title.
protected  void init(Dockable dockable, DockTitleVersion origin, boolean showMiniButtons)
          Initializer called by the constructor.
 boolean isShowMiniButtons()
          Tells whether this titel is able to show any DockAction.
 void setOrientation(DockTitle.Orientation orientation)
          Sets the orientation of this title.
 void setShowMiniButtons(boolean showMiniButtons)
          Enables or disables DockActions for this title.
protected  void setTooltip(String text)
          Sets the tooltip that will be shown on this title.
protected  void suggestActions(DockActionSource actions)
          Called if a module using the DockTitle suggests using a specific set of DockActions.
 void unbind()
          The reverse of DockTitle.bind().
 
Methods inherited from class bibliothek.gui.dock.title.AbstractMultiDockTitle
addColor, addConditionalFont, addFont, addMouseInputListener, createItemFor, createRootHandler, doLayout, getComponentConfiguration, getDockable, getElement, getIcon, getIconBounds, getIconTextGap, getInnerInsets, getLabel, getMinimumSize, getOrientation, getOrigin, getText, init, isActive, isBound, isDisabled, isUsedAsTitle, paintBackground, paintBackground, paintForeground, paintForeground, paintIcon, removeAllConditionalFonts, removeColor, removeFont, removeMouseInputListener, setActive, setBackground, setBorder, setComponentConfiguration, setDisabled, setFont, setFontModifier, setForeground, setIcon, setIconTextGap, setText, setupRenderingHints, shouldFocus, shouldTransfersFocus, titleInsets, updateFonts, updateIcon, updateText, updateTooltip
 
Methods inherited from class bibliothek.gui.dock.util.ConfiguredBackgroundPanel
configure
 
Methods inherited from class bibliothek.gui.dock.util.BackgroundPanel
getBackgroundAlgorithm, getComponent, getTransparency, paint, paintBorder, paintChildren, paintComponent, paintOverlay, setBackground, setTransparency
 
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, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, 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
 
Methods inherited from interface bibliothek.gui.dock.title.DockTitle
getComponent
 

Constructor Detail

AbstractDockTitle

public AbstractDockTitle(Dockable dockable,
                         DockTitleVersion origin)
Constructs a new title

Parameters:
dockable - the Dockable which is the owner of this title
origin - the version which was used to create this title

AbstractDockTitle

public AbstractDockTitle(Dockable dockable,
                         DockTitleVersion origin,
                         boolean showMiniButtons)
Standard constructor

Parameters:
dockable - The Dockable whose title this will be
origin - The version which was used to create this title
showMiniButtons - true if the actions of the Dockable should be shown, false if they should not be visible

AbstractDockTitle

protected AbstractDockTitle()
Constructor which does not do anything. Subclasses should call init(Dockable, DockTitleVersion, boolean) to initialize the title.

Method Detail

init

protected void init(Dockable dockable,
                    DockTitleVersion origin,
                    boolean showMiniButtons)
Initializer called by the constructor.

Parameters:
dockable - The Dockable whose title this will be
origin - The version which was used to create this title
showMiniButtons - true if the actions of the Dockable should be shown, false if they should not be visible

isShowMiniButtons

public boolean isShowMiniButtons()
Tells whether this titel is able to show any DockAction.

Returns:
true if DockActions are enabled
See Also:
setShowMiniButtons(boolean)

setShowMiniButtons

public void setShowMiniButtons(boolean showMiniButtons)
Enables or disables DockActions for this title.

Parameters:
showMiniButtons - whether to show actions or not

setTooltip

protected void setTooltip(String text)
Sets the tooltip that will be shown on this title.

Overrides:
setTooltip in class AbstractMultiDockTitle
Parameters:
text - the new tooltip, can be null

setOrientation

public void setOrientation(DockTitle.Orientation orientation)
Description copied from interface: DockTitle
Sets the orientation of this title. The layout of this title should be influenced by the orientation.

Specified by:
setOrientation in interface DockTitle
Overrides:
setOrientation in class AbstractMultiDockTitle
Parameters:
orientation - the orientation

doTitleLayout

protected void doTitleLayout()
Description copied from class: AbstractMultiDockTitle
Updates the layout (position and size of all children) of this title.

Overrides:
doTitleLayout in class AbstractMultiDockTitle

getPopupLocation

public Point getPopupLocation(Point click,
                              boolean popupTrigger)
Description copied from interface: DockElementRepresentative
Tells whether a popup menu should be opened when the user clicks at click with the mouse. If yes, then the top left edge of the popup should be returned, otherwise null should be returned.

Specified by:
getPopupLocation in interface DockElementRepresentative
Overrides:
getPopupLocation in class AbstractMultiDockTitle
Parameters:
click - the location where the user clicked with the mouse
popupTrigger - whether the invocation is the systems popup trigger or not. Many implementations of this method will return click in case of true, and null in case of false
Returns:
the preferred location of a popup or null if no popup-menu should be opened

changed

public void changed(DockTitleEvent event)
Description copied from interface: DockTitle
Called if a property changed that might be important for painting this title. The property can be anything, it does not necessarily have to be a property of this title nor of its owner. Modules using this title might send subclasses of DockTitleEvent to transmit more information to this title than DockTitleEvent would allow.

Specified by:
changed in interface DockTitle
Overrides:
changed in class AbstractMultiDockTitle
Parameters:
event - information about the current state

getPreferredSize

public Dimension getPreferredSize()
Overrides:
getPreferredSize in class AbstractMultiDockTitle

getActionSourceFor

protected DockActionSource getActionSourceFor(Dockable dockable)
Gets a list of all actions which will be shown on this title.

Parameters:
dockable - the owner of the actions
Returns:
the list of actions

suggestActions

protected void suggestActions(DockActionSource actions)
Called if a module using the DockTitle suggests using a specific set of DockActions. It is up to the DockTitle to follow the suggestions or to ignore them. The default behavior of this AbstractDockTitle is to set the result of getActionSourceFor(Dockable) equal to actions and update the itemPanel if necessary.

Parameters:
actions - the set of actions that should be used

getSuggestedSource

protected DockActionSource getSuggestedSource()
Gets the DockActionSource that was suggested to this title.

Returns:
the source, can be null

bind

public void bind()
Description copied from interface: DockTitle
Called before this title is displayed. This method should connect the title with other objects such as its owner. If the title wants to show some DockActions (see the method DockController.listOffers(Dockable)), then this method should bind them too.
Clients should never call this method directly, they should call Dockable.bind(DockTitle). The DockController will call the bind-method, as soon as the Dockable knows the controller.

Specified by:
bind in interface DockTitle
Overrides:
bind in class AbstractMultiDockTitle

unbind

public void unbind()
Description copied from interface: DockTitle
The reverse of DockTitle.bind(). The title should remove any connections to other objects and unbind its DockActions.
Clients should never call this method directly, they should call Dockable.unbind(DockTitle). The DockController will call the unbind-method before the Dockable looses the controller.

Specified by:
unbind in interface DockTitle
Overrides:
unbind in class AbstractMultiDockTitle