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

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by bibliothek.extension.gui.dock.theme.bubble.RoundDropDownButton
All Implemented Interfaces:
RoundButtonConnectable, ImageObserver, MenuContainer, Serializable

@ColorCodes(value={"action.dropdown","action.dropdown.enabled","action.dropdown.selected","action.dropdown.selected.enabled","action.dropdown.mouse.enabled","action.dropdown.mouse.selected.enabled","action.dropdown.pressed.enabled","action.dropdown.pressed.selected.enabled","action.dropdown.focus","action.dropdown.enabled.focus","action.dropdown.selected.focus","action.dropdown.selected.enabled.focus","action.dropdown.mouse.enabled.focus","action.dropdown.mouse.selected.enabled.focus","action.dropdown.pressed.enabled.focus","action.dropdown.pressed.selected.enabled.focus","action.dropdown.line","action.dropdown.line.enabled","action.dropdown.line.selected","action.dropdown.line.selected.enabled","action.dropdown.line.mouse.enabled","action.dropdown.line.mouse.selected.enabled","action.dropdown.line.pressed.enabled","action.dropdown.line.pressed.selected.enabled","action.dropdown.text","action.dropdown.text.enabled","action.dropdown.text.selected","action.dropdown.text.selected.enabled","action.dropdown.text.mouse.enabled","action.dropdown.text.mouse.selected.enabled","action.dropdown.text.pressed.enabled","action.dropdown.text.pressed.selected.enabled"})
public class RoundDropDownButton
extends JComponent
implements RoundButtonConnectable

A button which can be pressed by the user either to execute a DockAction or to show a popup-menu with a selection of DockActions. This button uses a BasicDropDownButtonHandler to manage its internal states.

Author:
Benjamin Sigg
See Also:
Serialized Form

Nested Class Summary
 
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
 
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
RoundDropDownButton(BasicDropDownButtonHandler handler, Dockable dockable, DockAction action)
          Creates a new button
 
Method Summary
 boolean contains(int x, int y)
           
protected  MiniButtonContent createButtonContent()
          Creates the component painting the content of this button.
 void doLayout()
           
 BasicDropDownButtonModel getModel()
           
 Dimension getPreferredSize()
           
 boolean overDropIcon(int x, int y)
          Tells whether the point x,y is over the icon that represents the drop-area.
protected  void paintComponent(Graphics g)
           
 void setController(DockController controller)
          Sets the controller of this element.
 void updateColors()
          Updates the colors of the animation.
 void updateUI()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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

RoundDropDownButton

public RoundDropDownButton(BasicDropDownButtonHandler handler,
                           Dockable dockable,
                           DockAction action)
Creates a new button

Parameters:
handler - a handler used to announce that this button is clicked
dockable - the element for which the action is shown
action - the action that is shown
Method Detail

createButtonContent

protected MiniButtonContent createButtonContent()
Creates the component painting the content of this button.

Returns:
the new component

setController

public void setController(DockController controller)
Description copied from interface: RoundButtonConnectable
Sets the controller of this element.

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

getModel

public BasicDropDownButtonModel getModel()

updateUI

public void updateUI()
Overrides:
updateUI in class JComponent

getPreferredSize

public Dimension getPreferredSize()
Overrides:
getPreferredSize in class JComponent

doLayout

public void doLayout()
Overrides:
doLayout in class Container

contains

public boolean contains(int x,
                        int y)
Overrides:
contains in class JComponent

paintComponent

protected void paintComponent(Graphics g)
Overrides:
paintComponent in class JComponent

overDropIcon

public boolean overDropIcon(int x,
                            int y)
Tells whether the point x,y is over the icon that represents the drop-area.

Parameters:
x - the x-coordinate
y - the y-coordinate
Returns:
true if pressing the mouse at that location would open a popup menu

updateColors

public void updateColors()
Updates the colors of the animation.