bibliothek.gui.dock.themes.basic.action.buttons
Class MiniButton<M extends BasicButtonModel>

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by bibliothek.gui.dock.themes.basic.action.buttons.MiniButton<M>
Type Parameters:
M - the type of model used to describe the state of this button
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable
Direct Known Subclasses:
BasicMiniButton, DropDownMiniButton

@ColorCodes(value={"action.button.text","action.button.text.disabled"})
public class MiniButton<M extends BasicButtonModel>
extends JComponent

A small Component used as view of a BasicButtonModel. A MiniButton just changes its border when the states of its model changes.

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
static String BORDER_KEY_MOUSE_OVER
          Identifier for the ThemeManager of the BorderModifier which is used for the mouse hover state.
static String BORDER_KEY_MOUSE_OVER_SELECTED
          Identifier for the ThemeManager of the BorderModifier which is used for the selected mouse hover state.
static String BORDER_KEY_MOUSE_PRESSED
          Identifier for the ThemeManager of the BorderModifier which is used for the mouse pressed state.
static String BORDER_KEY_MOUSE_PRESSED_SELECTED
          Identifier for the ThemeManager of the BorderModifier which is used for the selected mouse pressed state.
static String BORDER_KEY_NORMAL
          Identifier for the ThemeManager of the BorderModifier which is used for the normal state.
static String BORDER_KEY_NORMAL_SELECTED
          Identifier for the ThemeManager of the BorderModifier which is used for the selected state.
 
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
MiniButton(M model)
          Creates a new button
 
Method Summary
protected  MiniButtonContent createButtonContent()
          Creates the content component of this button.
 void doLayout()
           
 String getBorderKeyMouseOver()
          Gets the key for modifying the border which was set by setMouseOverBorder(Border).
 String getBorderKeyMouseOverSelected()
          Gets the key for modifying the border which was set by setMouseOverSelectedBorder(Border).
 String getBorderKeyMousePressed()
          Gets the key for modifying the border which was set by setMousePressedBorder(Border).
 String getBorderKeyMousePressedSelected()
          Gets the key for modifying the border which was set by setMousePressedSelectedBorder(Border).
 String getBorderKeyNormal()
          Gets the key for modifying the border which was set by setNormalBorder(Border).
 String getBorderKeyNormalSelected()
          Gets the key for modifying the border which was set by setNormalSelectedBorder(Border).
protected  MiniButtonContent getContent()
          Gets access to the content component.
protected  Insets getMaxBorderInsets()
          Gets the maximal insets of this button
 M getModel()
          Gets the model which is used to store the properties of this button.
 Border getMouseOverBorder()
          Gets the border which is used when the mouse is over this button, but not pressed.
 Border getMouseOverSelectedBorder()
          Gets the border which is used when the mouse is over this button and this button is selected.
 Border getMousePressedBorder()
          Gets the border which is shown when the mouse is pressed and over this button.
 Border getMousePressedSelectedBorder()
          Gets the border which is used when the mouse is pressed and this button is selected.
 Border getNormalBorder()
          Gets the default-border.
 Border getNormalSelectedBorder()
          Gets the border which is used when this button is selected.
 Dimension getPreferredSize()
           
 void paint(Graphics g)
           
protected  void paintContent(Graphics g)
          Paints the content component.
protected  void paintFocus(Graphics g)
          Paints markings on this button when this button is the focus owner.
 void setBorderKeyMouseOver(String borderKeyMouseOver)
          Gets the key for modifying the border which was set by setMouseOverBorder(Border).
 void setBorderKeyMouseOverSelected(String borderKeyMouseOverSelected)
          Gets the key for modifying the border which was set by setMouseOverSelectedBorder(Border).
 void setBorderKeyMousePressed(String borderKeyMousePressed)
          Gets the key for modifying the border which was set by setMousePressedBorder(Border).
 void setBorderKeyMousePressedSelected(String borderKeyMousePressedSelected)
          Gets the key for modifying the border which was set by setMousePressedSelectedBorder(Border).
 void setBorderKeyNormal(String borderKeyNormal)
          Sets the key for modifying the border which was set by setNormalBorder(Border).
 void setBorderKeyNormalSelected(String borderKeyNormalSelected)
          Gets the key for modifying the border which was set by setNormalSelectedBorder(Border).
protected  void setModel(M model)
          Sets the model of this button.
 void setMouseOverBorder(Border mouseOverBorder)
          Sets the border which is shown when the mouse is over this button, but not pressed.
 void setMouseOverSelectedBorder(Border mouseOverSelectedBorder)
          Sets the border which is used when the mouse is over this button and this button is selected.
 void setMousePressedBorder(Border mousePressedBorder)
          Sets the border which is shown when the mouse is pressed and over this button.
 void setMousePressedSelectedBorder(Border mousePressedSelectedBorder)
          Sets the border which is used when the mouse is pressed and this button is selected.
 void setNormalBorder(Border normalBorder)
          Sets the default-border.
 void setNormalSelectedBorder(Border normalSelectedBorder)
          Sets the border which is used when this button is selected.
protected  void updateBorder()
          Changes the current border.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, 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, paintBorder, paintChildren, paintComponent, 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, updateUI
 
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

BORDER_KEY_NORMAL

public static final String BORDER_KEY_NORMAL
Identifier for the ThemeManager of the BorderModifier which is used for the normal state.

See Also:
Constant Field Values

BORDER_KEY_NORMAL_SELECTED

public static final String BORDER_KEY_NORMAL_SELECTED
Identifier for the ThemeManager of the BorderModifier which is used for the selected state.

See Also:
Constant Field Values

BORDER_KEY_MOUSE_OVER

public static final String BORDER_KEY_MOUSE_OVER
Identifier for the ThemeManager of the BorderModifier which is used for the mouse hover state.

See Also:
Constant Field Values

BORDER_KEY_MOUSE_OVER_SELECTED

public static final String BORDER_KEY_MOUSE_OVER_SELECTED
Identifier for the ThemeManager of the BorderModifier which is used for the selected mouse hover state.

See Also:
Constant Field Values

BORDER_KEY_MOUSE_PRESSED

public static final String BORDER_KEY_MOUSE_PRESSED
Identifier for the ThemeManager of the BorderModifier which is used for the mouse pressed state.

See Also:
Constant Field Values

BORDER_KEY_MOUSE_PRESSED_SELECTED

public static final String BORDER_KEY_MOUSE_PRESSED_SELECTED
Identifier for the ThemeManager of the BorderModifier which is used for the selected mouse pressed state.

See Also:
Constant Field Values
Constructor Detail

MiniButton

public MiniButton(M model)
Creates a new button

Parameters:
model - the model for this button
Method Detail

createButtonContent

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

Returns:
the component

getContent

protected MiniButtonContent getContent()
Gets access to the content component.

Returns:
the content component showing icon and text

setModel

protected void setModel(M model)
Sets the model of this button. The model contains all properties which are necessary to paint this button.

Parameters:
model - the model

getModel

public M getModel()
Gets the model which is used to store the properties of this button.

Returns:
the model

getMouseOverBorder

public Border getMouseOverBorder()
Gets the border which is used when the mouse is over this button, but not pressed.

Returns:
the border, may be null

setMouseOverBorder

public void setMouseOverBorder(Border mouseOverBorder)
Sets the border which is shown when the mouse is over this button, but not pressed.

Parameters:
mouseOverBorder - the border, can be null

getBorderKeyMouseOver

public String getBorderKeyMouseOver()
Gets the key for modifying the border which was set by setMouseOverBorder(Border).

Returns:
the key, not null

setBorderKeyMouseOver

public void setBorderKeyMouseOver(String borderKeyMouseOver)
Gets the key for modifying the border which was set by setMouseOverBorder(Border).

Parameters:
borderKeyMouseOver - the new key, not null

getMousePressedBorder

public Border getMousePressedBorder()
Gets the border which is shown when the mouse is pressed and over this button.

Returns:
the border, may be null
See Also:
setMousePressedBorder(Border)

setMousePressedBorder

public void setMousePressedBorder(Border mousePressedBorder)
Sets the border which is shown when the mouse is pressed and over this button. The border is also shown if this button is selected.

Parameters:
mousePressedBorder - the border, can be null

getBorderKeyMousePressed

public String getBorderKeyMousePressed()
Gets the key for modifying the border which was set by setMousePressedBorder(Border).

Returns:
the key, not null

setBorderKeyMousePressed

public void setBorderKeyMousePressed(String borderKeyMousePressed)
Gets the key for modifying the border which was set by setMousePressedBorder(Border).

Parameters:
borderKeyMousePressed - the new key, not null

getNormalBorder

public Border getNormalBorder()
Gets the default-border.

Returns:
the border, may be null

setNormalBorder

public void setNormalBorder(Border normalBorder)
Sets the default-border. The border is always shown when nothing special happens.

Parameters:
normalBorder - the border, can be null

getBorderKeyNormal

public String getBorderKeyNormal()
Gets the key for modifying the border which was set by setNormalBorder(Border).

Returns:
the key, not null

setBorderKeyNormal

public void setBorderKeyNormal(String borderKeyNormal)
Sets the key for modifying the border which was set by setNormalBorder(Border).

Parameters:
borderKeyNormal - the new key, not null

getNormalSelectedBorder

public Border getNormalSelectedBorder()
Gets the border which is used when this button is selected.

Returns:
the selected-border

setNormalSelectedBorder

public void setNormalSelectedBorder(Border normalSelectedBorder)
Sets the border which is used when this button is selected.

Parameters:
normalSelectedBorder - the selected border

getBorderKeyNormalSelected

public String getBorderKeyNormalSelected()
Gets the key for modifying the border which was set by setNormalSelectedBorder(Border).

Returns:
the key, not null

setBorderKeyNormalSelected

public void setBorderKeyNormalSelected(String borderKeyNormalSelected)
Gets the key for modifying the border which was set by setNormalSelectedBorder(Border).

Parameters:
borderKeyNormalSelected - the new key, not null

getMouseOverSelectedBorder

public Border getMouseOverSelectedBorder()
Gets the border which is used when the mouse is over this button and this button is selected.

Returns:
the mouse-over-selected-border

setMouseOverSelectedBorder

public void setMouseOverSelectedBorder(Border mouseOverSelectedBorder)
Sets the border which is used when the mouse is over this button and this button is selected.

Parameters:
mouseOverSelectedBorder - the new border

getBorderKeyMouseOverSelected

public String getBorderKeyMouseOverSelected()
Gets the key for modifying the border which was set by setMouseOverSelectedBorder(Border).

Returns:
the key, not null

setBorderKeyMouseOverSelected

public void setBorderKeyMouseOverSelected(String borderKeyMouseOverSelected)
Gets the key for modifying the border which was set by setMouseOverSelectedBorder(Border).

Parameters:
borderKeyMouseOverSelected - the new key, not null

getMousePressedSelectedBorder

public Border getMousePressedSelectedBorder()
Gets the border which is used when the mouse is pressed and this button is selected.

Returns:
the border

setMousePressedSelectedBorder

public void setMousePressedSelectedBorder(Border mousePressedSelectedBorder)
Sets the border which is used when the mouse is pressed and this button is selected.

Parameters:
mousePressedSelectedBorder - the new border

getBorderKeyMousePressedSelected

public String getBorderKeyMousePressedSelected()
Gets the key for modifying the border which was set by setMousePressedSelectedBorder(Border).

Returns:
the key, not null

setBorderKeyMousePressedSelected

public void setBorderKeyMousePressedSelected(String borderKeyMousePressedSelected)
Gets the key for modifying the border which was set by setMousePressedSelectedBorder(Border).

Parameters:
borderKeyMousePressedSelected - the new key, not null

paint

public void paint(Graphics g)
Overrides:
paint in class JComponent

paintContent

protected void paintContent(Graphics g)
Paints the content component.

Parameters:
g - the graphics context that should be used to paint the content

paintFocus

protected void paintFocus(Graphics g)
Paints markings on this button when this button is the focus owner.

Parameters:
g - the graphics context

getPreferredSize

public Dimension getPreferredSize()
Overrides:
getPreferredSize in class JComponent

doLayout

public void doLayout()
Overrides:
doLayout in class Container

getMaxBorderInsets

protected Insets getMaxBorderInsets()
Gets the maximal insets of this button

Returns:
the insets

updateBorder

protected void updateBorder()
Changes the current border. Uses various states to determine the correct border.