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:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
BasicMiniButton, DropDownMiniButton

public class MiniButton<M extends BasicButtonModel>
extends javax.swing.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
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
 
Field Summary
static java.lang.String BORDER_KEY_MOUSE_OVER
          Identifier for the ThemeManager of the BorderModifier which is used for the mouse hover state.
static java.lang.String BORDER_KEY_MOUSE_OVER_SELECTED
          Identifier for the ThemeManager of the BorderModifier which is used for the selected mouse hover state.
static java.lang.String BORDER_KEY_MOUSE_PRESSED
          Identifier for the ThemeManager of the BorderModifier which is used for the mouse pressed state.
static java.lang.String BORDER_KEY_MOUSE_PRESSED_SELECTED
          Identifier for the ThemeManager of the BorderModifier which is used for the selected mouse pressed state.
static java.lang.String BORDER_KEY_NORMAL
          Identifier for the ThemeManager of the BorderModifier which is used for the normal state.
static java.lang.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  java.awt.Insets getMaxBorderInsets()
          Gets the maximal insets of this button
 M getModel()
          Gets the model which is used to store the properties of this button.
 javax.swing.border.Border getMouseOverBorder()
          Gets the border which is used when the mouse is over this button, but not pressed.
 javax.swing.border.Border getMouseOverSelectedBorder()
          Gets the border which is used when the mouse is over this button and this button is selected.
 javax.swing.border.Border getMousePressedBorder()
          Gets the border which is shown when the mouse is pressed and over this button.
 javax.swing.border.Border getMousePressedSelectedBorder()
          Gets the border which is used when the mouse is pressed and this button is selected.
 javax.swing.border.Border getNormalBorder()
          Gets the default-border.
 javax.swing.border.Border getNormalSelectedBorder()
          Gets the border which is used when this button is selected.
 java.awt.Dimension getPreferredSize()
           
 void paint(java.awt.Graphics g)
           
protected  void paintFocus(java.awt.Graphics g)
          Paints markings on this button when this button is the focus owner.
protected  void paintIcon(javax.swing.Icon icon, java.awt.Graphics g)
          Paints the icon in the center of this button.
protected  void setModel(M model)
          Sets the model of this button.
 void setMouseOverBorder(javax.swing.border.Border mouseOverBorder)
          Sets the border which is shown when the mouse is over this button, but not pressed.
 void setMouseOverSelectedBorder(javax.swing.border.Border mouseOverSelectedBorder)
          Sets the border which is used when the mouse is over this button and this button is selected.
 void setMousePressedBorder(javax.swing.border.Border mousePressedBorder)
          Sets the border which is shown when the mouse is pressed and over this button.
 void setMousePressedSelectedBorder(javax.swing.border.Border mousePressedSelectedBorder)
          Sets the border which is used when the mouse is pressed and this button is selected.
 void setNormalBorder(javax.swing.border.Border normalBorder)
          Sets the default-border.
 void setNormalSelectedBorder(javax.swing.border.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, doLayout, 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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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

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 javax.swing.border.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(javax.swing.border.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

getMousePressedBorder

public javax.swing.border.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(javax.swing.border.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

getNormalBorder

public javax.swing.border.Border getNormalBorder()
Gets the default-border.

Returns:
the border, may be null

setNormalBorder

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

Parameters:
normalBorder - the border, can be null

getNormalSelectedBorder

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

Returns:
the selected-border

setNormalSelectedBorder

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

Parameters:
normalSelectedBorder - the selected border

getMouseOverSelectedBorder

public javax.swing.border.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(javax.swing.border.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

getMousePressedSelectedBorder

public javax.swing.border.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(javax.swing.border.Border mousePressedSelectedBorder)
Sets the border which is used when the mouse is pressed and this button is selected.

Parameters:
mousePressedSelectedBorder - the new border

paint

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

paintIcon

protected void paintIcon(javax.swing.Icon icon,
                         java.awt.Graphics g)
Paints the icon in the center of this button.

Parameters:
icon - the icon to paint
g - the graphics context

paintFocus

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

Parameters:
g - the graphics context

getPreferredSize

@Todo(compatibility=BREAK_MINOR,
      priority=ENHANCEMENT,
      target=VERSION_1_1_1,
      description="dont hardcode the minimum size")
public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

getMaxBorderInsets

protected java.awt.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.