bibliothek.gui.dock.themes.basic
Class BasicButtonDockTitle

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.gui.dock.themes.basic.BasicButtonDockTitle
All Implemented Interfaces:
DockComponentRoot, DockElementRepresentative, DockTitle, PaintableComponent, ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
EclipseButtonTitle, FlatButtonTitle, SmoothDefaultButtonTitle

@ColorCodes(value={"title.flap.active","title.flap.active.text","title.flap.inactive","title.flap.inactive.text","title.flap.selected","title.flap.selected.text","title.flap.active.knob.highlight","title.flap.active.knob.shadow","title.flap.inactive.knob.highlight","title.flap.inactive.knob.shadow","title.flap.selected.knob.highlight","title.flap.selected.knob.shadow"})
public class BasicButtonDockTitle
extends AbstractDockTitle

This title changes its border whenever the active-state changes.

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
protected  ButtonContentValue behavior
          tells what items to paint
protected  int KNOB_SIZE
          amount of space required to paint the knob
 
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
BasicButtonDockTitle(Dockable dockable, DockTitleVersion origin)
          Constructs a new title
 
Method Summary
 void bind()
          Called before this title is displayed.
protected  void changeBorder()
          Exchanges the current border.
 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.
 Color getActiveColor()
          Gets the color that is used as background if the title is focused.
 Color getActiveTextColor()
          Gets the color that is used as foreground if the title is focused.
protected  DockActionSource getChildrenActionSourceFor(Dockable dockable)
          Gets the "special" children actions for dockable
protected  DockActionSource getDefaultActionSourceFor(Dockable dockable)
          Gets the "normal" actions for dockable.
 Color getInactiveColor()
          Gets the color that is used as background
 Color getInactiveTextColor()
          Gets the color that is used as foreground
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.
 Color getSelectedColor()
          Gets the color that is used as background if the title is selected.
 Color getSelectedTextColor()
          Gets the color that is used as foreground if the title is selected.
protected  boolean isMousePressed()
          Tells whether the mouse is currently pressed or not.
 boolean isSelected()
          Whether this button is selected or not.
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 setActiveColor(Color color)
          Sets the color that is used as background if the title is focused.
 void setActiveTextColor(Color color)
          Sets the color that is used as foreground if the title is focused.
 void setInactiveColor(Color color)
          Sets the color that is used as background
 void setInactiveTextColor(Color color)
          Sets the color that is used as foreground
 void setSelectedColor(Color color)
          Sets the color that is used as background if the title is selected.
 void setSelectedTextColor(Color color)
          Sets the color that is used as foreground if the title is selected.
 void unbind()
          The reverse of DockTitle.bind().
protected  void updateColors()
          Updates the colors of this title.
protected  void updateIcon()
          Called when the icon of this title should be updated.
protected  void updateLayout()
          Updates various elements of this title such that the current state is met.
protected  void updateText()
          Called when the text of this title should be updated.
 
Methods inherited from class bibliothek.gui.dock.title.AbstractDockTitle
doTitleLayout, getPreferredSize, getSuggestedSource, init, isShowMiniButtons, setOrientation, setShowMiniButtons, setTooltip, suggestActions
 
Methods inherited from class bibliothek.gui.dock.title.AbstractMultiDockTitle
addColor, addConditionalFont, addFont, addMouseInputListener, createItemFor, createRootHandler, doLayout, getComponentConfiguration, getDockable, getElement, getIcon, getIconBounds, getIconTextGap, getLabel, getMinimumSize, getOrientation, getOrigin, getText, init, isActive, isBound, isDisabled, isUsedAsTitle, paintBackground, paintBackground, paintForeground, paintIcon, removeAllConditionalFonts, removeColor, removeFont, removeMouseInputListener, setBackground, setBorder, setComponentConfiguration, setDisabled, setFont, setFontModifier, setForeground, setIcon, setIconTextGap, setText, setupRenderingHints, 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, 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
 

Field Detail

KNOB_SIZE

protected final int KNOB_SIZE
amount of space required to paint the knob

See Also:
Constant Field Values

behavior

protected ButtonContentValue behavior
tells what items to paint

Constructor Detail

BasicButtonDockTitle

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

Parameters:
dockable - the Dockable for which this title is created
origin - the version which was used to create this title
Method Detail

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 AbstractDockTitle

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

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 AbstractMultiDockTitle
Returns:
the insets, not null

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

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

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

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 AbstractMultiDockTitle
Parameters:
active - true if the Dockable of this title has the focus.

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

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

isMousePressed

protected boolean isMousePressed()
Tells whether the mouse is currently pressed or not.

Returns:
true if the mouse is pressed

isSelected

public boolean isSelected()
Whether this button is selected or not.

Returns:
true if selected, false otherwise

updateLayout

protected void updateLayout()
Updates various elements of this title such that the current state is met.


changeBorder

protected void changeBorder()
Exchanges the current border.


updateColors

protected void updateColors()
Updates the colors of this title.


getActiveTextColor

public Color getActiveTextColor()
Gets the color that is used as foreground if the title is focused.

Returns:
the color, might be null

setActiveTextColor

public void setActiveTextColor(Color color)
Sets the color that is used as foreground if the title is focused.

Parameters:
color - the new color, null to reset the property

getActiveColor

public Color getActiveColor()
Gets the color that is used as background if the title is focused.

Returns:
the color, might be null

setActiveColor

public void setActiveColor(Color color)
Sets the color that is used as background if the title is focused.

Parameters:
color - the new color, null to reset the property

getSelectedTextColor

public Color getSelectedTextColor()
Gets the color that is used as foreground if the title is selected.

Returns:
the color, might be null

setSelectedTextColor

public void setSelectedTextColor(Color color)
Sets the color that is used as foreground if the title is selected.

Parameters:
color - the new color, null to reset the property

getSelectedColor

public Color getSelectedColor()
Gets the color that is used as background if the title is selected.

Returns:
the color, might be null

setSelectedColor

public void setSelectedColor(Color color)
Sets the color that is used as background if the title is selected.

Parameters:
color - the new color, null to reset the property

getInactiveTextColor

public Color getInactiveTextColor()
Gets the color that is used as foreground

Returns:
the color, might be null

setInactiveTextColor

public void setInactiveTextColor(Color color)
Sets the color that is used as foreground

Parameters:
color - the new color, null to reset the property

getInactiveColor

public Color getInactiveColor()
Gets the color that is used as background

Returns:
the color, might be null

setInactiveColor

public void setInactiveColor(Color color)
Sets the color that is used as background

Parameters:
color - the new color, null to reset the property