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

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.title.AbstractDockTitle
                      extended by bibliothek.extension.gui.dock.theme.bubble.BubbleDockTitle
All Implemented Interfaces:
DockTitle, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
ReducedBubbleTitleFactory.Title

public class BubbleDockTitle
extends AbstractDockTitle

A BubbleDockTitle is a title which has two or four round edges. The title can smoothly change its colors when touched by the mouse.

Author:
Benjamin Sigg
See Also:
Serialized Form

Nested Class Summary
 
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
 
Nested classes/interfaces inherited from interface bibliothek.gui.dock.title.DockTitle
DockTitle.Orientation
 
Field Summary
private  BubbleColorAnimation animation
          An animation which can change a set of colors smoothly
private  int arc
          The size of the round edges
private  boolean mouse
          Tells whether the mouse is over this title or not
 
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
BubbleDockTitle(BubbleTheme theme, Dockable dockable, DockTitleVersion origin)
          Creates a new title.
BubbleDockTitle(BubbleTheme theme, Dockable dockable, DockTitleVersion origin, boolean showMiniButtons)
          Creates a new title.
 
Method Summary
private  void drawRoundRect(java.awt.Graphics2D g2, int x, int y, int w, int h)
          Draws a rectangle which has some round edges within the bounds x,y,w,h.
protected  java.awt.Insets getInnerInsets()
          Gets the insets that have to be applied between the border and the content of this title.
private  void initAnimation(BubbleTheme theme)
          Sets up the animation such that it can be started at any time.
 void paint(java.awt.Graphics g)
           
protected  void paintBackground(java.awt.Graphics g, javax.swing.JComponent component)
          Paints the whole background of this title.
protected  void pulse()
          Called every time when the colors of the animation have been changed.
 void setActive(boolean active)
          Sets whether this title should be painted as focused or not.
protected  void updateAnimation(boolean mouse)
          Updates the setting of the animation to reflect new properties of this title.
 
Methods inherited from class bibliothek.gui.dock.title.AbstractDockTitle
addMouseInputListener, bind, changed, createItemFor, doLayout, getComponent, getDockable, getIcon, getIconBounds, getMinimumSize, getOrientation, getOrigin, getPopupLocation, getPreferredSize, getText, isActive, isBinded, paintComponent, removeMouseInputListener, setBackground, setForeground, setIcon, setOrientation, setText, unbind
 
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, paintBorder, paintChildren, 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, setFont, 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

animation

private BubbleColorAnimation animation
An animation which can change a set of colors smoothly


mouse

private boolean mouse
Tells whether the mouse is over this title or not


arc

private int arc
The size of the round edges

Constructor Detail

BubbleDockTitle

public BubbleDockTitle(BubbleTheme theme,
                       Dockable dockable,
                       DockTitleVersion origin)
Creates a new title.

Parameters:
theme - the theme from which this title will read some colors
dockable - the Dockable for which this title is shown
origin - the creator of this title

BubbleDockTitle

public BubbleDockTitle(BubbleTheme theme,
                       Dockable dockable,
                       DockTitleVersion origin,
                       boolean showMiniButtons)
Creates a new title.

Parameters:
theme - the theme from which this title will read some colors
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
Method Detail

initAnimation

private void initAnimation(BubbleTheme theme)
Sets up the animation such that it can be started at any time.

Parameters:
theme - the theme to read colors from

setActive

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

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

updateAnimation

protected void updateAnimation(boolean mouse)
Updates the setting of the animation to reflect new properties of this title.

Parameters:
mouse - whether the mouse is pressed or not

pulse

protected void pulse()
Called every time when the colors of the animation have been changed.


getInnerInsets

protected java.awt.Insets getInnerInsets()
Description copied from class: AbstractDockTitle
Gets the insets that have to be applied between the border and the content of this title.

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

paint

public void paint(java.awt.Graphics g)
Overrides:
paint in class javax.swing.JComponent

paintBackground

protected void paintBackground(java.awt.Graphics g,
                               javax.swing.JComponent component)
Description copied from class: AbstractDockTitle
Paints the whole background of this title. The default implementation just fills the background with the background color of component.

Overrides:
paintBackground in class AbstractDockTitle
Parameters:
g - the graphics context used to paint
component - the Component which represents this title

drawRoundRect

private void drawRoundRect(java.awt.Graphics2D g2,
                           int x,
                           int y,
                           int w,
                           int h)
Draws a rectangle which has some round edges within the bounds x,y,w,h.

Parameters:
g2 - the graphics to paint with
x - the x-coordinate of the bounds
y - the y-coordinate of the bounds
w - the width of the bounds
h - the height of the bounds