bibliothek.extension.gui.dock.theme.bubble
Class BubbleButtonDockTitle

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
                                  extended by bibliothek.extension.gui.dock.theme.bubble.AbstractBubbleDockTitle
                                      extended by bibliothek.extension.gui.dock.theme.bubble.BubbleButtonDockTitle
All Implemented Interfaces:
DockElementRepresentative, DockTitle, PaintableComponent, ImageObserver, MenuContainer, Serializable, Accessible

@ColorCodes(value={"title.background.top.active.mouse.flap","title.background.top.active.flap","title.background.top.inactive.mouse.flap","title.background.top.inactive.flap","title.background.top.selected.mouse.flap","title.background.top.selected.flap","title.background.top.disabled.flap","title.background.bottom.active.mouse.flap","title.background.bottom.active.flap","title.background.bottom.inactive.mouse.flap","title.background.bottom.inactive.flap","title.background.bottom.selected.mouse.flap","title.background.bottom.selected.flap","title.background.bottom.disabled.flap","title.foreground.active.mouse.flap","title.foreground.active.flap","title.foreground.inactive.mouse.flap","title.foreground.inactive.flap","title.foreground.selected.mouse.flap","title.foreground.selected.flap","title.flap.active.knob.highlight","title.flap.active.knob.shadow","title.flap.active.mouse.knob.highlight","title.flap.active.mouse.knob.shadow","title.flap.inactive.knob.highlight","title.flap.inactive.knob.shadow","title.flap.inactive.mouse.knob.highlight","title.flap.inactive.mouse.knob.shadow","title.flap.selected.knob.highlight","title.flap.selected.knob.shadow","title.flap.selected.mouse.knob.highlight","title.flap.selected.mouse.knob.shadow","title.flap.disabled.knob.highlight","title.flap.disabled.knob.shadow"})
public class BubbleButtonDockTitle
extends AbstractBubbleDockTitle

A DockTitle used for the buttons on a FlapDockStation.

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.BltBufferStrategy, Component.FlipBufferStrategy
 
Nested classes/interfaces inherited from interface bibliothek.gui.dock.title.DockTitle
DockTitle.Orientation
 
Field Summary
static String ANIMATION_KEY_KNOB_HIGHLIGHT
          key for the color that is used to paint the knob
static String ANIMATION_KEY_KNOB_SHADOW
          key for the color that is used to paint the knob
static DockTitleFactory FACTORY
          A factory which creates new BubbleButtonDockTitles.
 
Fields inherited from class bibliothek.extension.gui.dock.theme.bubble.AbstractBubbleDockTitle
ANIMATION_KEY_BACKGROUND_BOTTOM, ANIMATION_KEY_BACKGROUND_TOP, ANIMATION_KEY_TEXT
 
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 BubbleButtonDockTitle()
          Constructor that does nothing, subclasses should call init(Dockable, DockTitleVersion, boolean) to initialize the tile.
  BubbleButtonDockTitle(Dockable dockable, DockTitleVersion origin)
          Creates a new title.
 
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  DockActionSource createFilter(DockActionSource actions)
          Creates a filter around actions, only the actions going through the filter will be shown.
protected  DockActionSource getActionSourceFor(Dockable dockable)
          Gets a list of all actions which will be shown on this title.
protected  DockActionSource getChildrenActionSourceFor(Dockable dockable)
          Gets the "special" children actions for dockable
protected  DockActionSource getDefaultActionSourceFor(Dockable dockable)
          Gets the "normal" actions for dockable.
protected  Insets getInnerInsets()
          Gets the insets that have to be applied between the border and the content (icon, text, actions) of 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.
protected  void init(Dockable dockable, DockTitleVersion origin, boolean showMiniButtons)
          Initializes this title, this method should be called only once.
 boolean isSelected()
          Tells whether this title is selected, being focused implies being selected.
protected  void paintForeground(Graphics g, JComponent component)
          Paints the whole foreground of this title.
 void setActive(boolean active)
          Sets whether this title should be painted as focused or not.
 void setOrientation(DockTitle.Orientation orientation)
          Sets the orientation of this title.
 void unbind()
          The reverse of DockTitle.bind().
protected  void updateAnimation()
          Called when the mouse entered or left this title, or when the active state changed.
protected  void updateIcon()
          Called when the icon of this title should be updated.
protected  void updateText()
          Called when the text of this title should be updated.
 
Methods inherited from class bibliothek.extension.gui.dock.theme.bubble.AbstractBubbleDockTitle
addColor, doPaintBackground, getColor, isMouseOver, paintBackground, paintOverlay, pulse, setDisabled, updateAnimation
 
Methods inherited from class bibliothek.gui.dock.title.AbstractDockTitle
doTitleLayout, getPreferredSize, getSuggestedSource, isShowMiniButtons, setShowMiniButtons, setTooltip, suggestActions
 
Methods inherited from class bibliothek.gui.dock.title.AbstractMultiDockTitle
addColor, addConditionalFont, addFont, addMouseInputListener, createItemFor, doLayout, getDockable, getElement, getIcon, getIconBounds, getIconTextGap, getLabel, getMinimumSize, getOrientation, getOrigin, getText, init, isActive, isBound, isDisabled, isUsedAsTitle, paintBackground, paintForeground, paintIcon, removeAllConditionalFonts, removeColor, removeFont, removeMouseInputListener, setBackground, setBorder, setFont, setFontModifier, setForeground, setIcon, setIconTextGap, setText, shouldFocus, shouldTransfersFocus, titleInsets, updateFonts, 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, 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, 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, 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
 

Field Detail

FACTORY

public static final DockTitleFactory FACTORY
A factory which creates new BubbleButtonDockTitles.


ANIMATION_KEY_KNOB_HIGHLIGHT

public static final String ANIMATION_KEY_KNOB_HIGHLIGHT
key for the color that is used to paint the knob

See Also:
Constant Field Values

ANIMATION_KEY_KNOB_SHADOW

public static final String ANIMATION_KEY_KNOB_SHADOW
key for the color that is used to paint the knob

See Also:
Constant Field Values
Constructor Detail

BubbleButtonDockTitle

public BubbleButtonDockTitle(Dockable dockable,
                             DockTitleVersion origin)
Creates a new title.

Parameters:
dockable - the dockable for which this title will be shown
origin - the DockTitleVersion which was used to create this title

BubbleButtonDockTitle

protected BubbleButtonDockTitle()
Constructor that does nothing, subclasses should call init(Dockable, DockTitleVersion, boolean) to initialize the tile.

Method Detail

init

protected void init(Dockable dockable,
                    DockTitleVersion origin,
                    boolean showMiniButtons)
Description copied from class: AbstractBubbleDockTitle
Initializes this title, this method should be called only once.

Overrides:
init in class AbstractBubbleDockTitle
Parameters:
dockable - the Dockable for which this title is shown
origin - the creator of this title
showMiniButtons - whether this title should show the actions or not

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 AbstractBubbleDockTitle

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 AbstractDockTitle

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 AbstractDockTitle
Parameters:
event - information about the current state

setActive

public void setActive(boolean active)
Description copied from class: AbstractMultiDockTitle
Sets whether this title should be painted as focused or not.

Overrides:
setActive in class AbstractBubbleDockTitle
Parameters:
active - true if the Dockable of this title has the focus.

updateAnimation

protected void updateAnimation()
Description copied from class: AbstractBubbleDockTitle
Called when the mouse entered or left this title, or when the active state changed. This method has to update the animation, it should call AbstractBubbleDockTitle.updateAnimation(String, String) for all animation-keys using the currently best fitting identifiers. Subclasses might want to call this method when some additional states changed which imply a change of the look of this title.

Specified by:
updateAnimation in class AbstractBubbleDockTitle

isSelected

public boolean isSelected()
Tells whether this title is selected, being focused implies being selected.

Returns:
true if this button is selected

updateIcon

protected void updateIcon()
Description copied from class: AbstractMultiDockTitle
Called when the icon of this title should be updated. This title never calls AbstractMultiDockTitle.setIcon(Icon) directly, it always calls this method which then calls AbstractMultiDockTitle.setIcon(Icon) (the only exception: on unbinding the icon is set to null)

Overrides:
updateIcon in class AbstractMultiDockTitle

updateText

protected void updateText()
Description copied from class: AbstractMultiDockTitle
Called when the text of this title should be updated. This title never calls AbstractMultiDockTitle.setText(String) directly, it always calls this method which then calls AbstractMultiDockTitle.setText(String) (the only exception: on unbinding the text is set to null)

Overrides:
updateText in class AbstractMultiDockTitle

getActionSourceFor

protected DockActionSource getActionSourceFor(Dockable dockable)
Description copied from class: AbstractDockTitle
Gets a list of all actions which will be shown on this title.

Overrides:
getActionSourceFor in class AbstractDockTitle
Parameters:
dockable - the owner of the actions
Returns:
the list of actions

createFilter

protected DockActionSource createFilter(DockActionSource actions)
Creates a filter around actions, only the actions going through the filter will be shown.

Parameters:
actions - the actions to filter
Returns:
the filter

getDefaultActionSourceFor

protected DockActionSource getDefaultActionSourceFor(Dockable dockable)
Gets the "normal" actions for dockable.

Parameters:
dockable - some item for which actions are required
Returns:
the normal actions, may be a new DockActionSource, not null

getChildrenActionSourceFor

protected DockActionSource getChildrenActionSourceFor(Dockable dockable)
Gets the "special" children actions for dockable

Parameters:
dockable - some item for which actions are required
Returns:
the children actions, may be a new DockActionSource, not null

getInnerInsets

protected Insets getInnerInsets()
Description copied from class: AbstractMultiDockTitle
Gets the insets that have to be applied between the border and the content (icon, text, actions) of this title. Subclasses may use this method to create free space in which they can paint additional items.

Overrides:
getInnerInsets in class AbstractBubbleDockTitle
Returns:
the insets, not null

paintForeground

protected void paintForeground(Graphics g,
                               JComponent component)
Description copied from class: AbstractMultiDockTitle
Paints the whole foreground of this title. The default implementation only paints an icon.

Overrides:
paintForeground in class AbstractMultiDockTitle
Parameters:
g - the graphics context to use
component - the Component which represents this title

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 AbstractDockTitle
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

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 AbstractDockTitle
Parameters:
orientation - the orientation