bibliothek.gui.dock.themes.basic.action.buttons
Class ButtonPanel

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.themes.basic.action.buttons.ButtonPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class ButtonPanel
extends javax.swing.JPanel

A panel showing some DockActions. The panel can show a menu for actions which to do not have enough space. Clients using this panel should call getPreferredSizes() to get a list of possible sizes of this panel, and then setVisibleActions(int) in order to use one size. This panel will JComponent.revalidate() itself whenever the number of actions changes.

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
 
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
ButtonPanel(boolean menu)
          Creates a new panel
 
Method Summary
protected  BasicTitleViewItem<javax.swing.JComponent> createItemFor(DockAction action, Dockable dockable)
          Creates a new item for action which will be shown on this panel.
 void doLayout()
           
 java.awt.Dimension getCurrentPreferredSize()
          Gets the preferred size of this panel assuming that not all actions are shown.
 int getItemCount()
          Gets the number of items which are shown on this panel.
 java.awt.Dimension getMinimumSize()
           
 DockTitle.Orientation getOrientation()
          Gets the orientation of this panel.
 java.awt.Dimension getPreferredSize()
           
 java.awt.Dimension[] getPreferredSizes()
          Computes the preferred sizes of this panel.
 void set(Dockable dockable)
          Changes the content which is shown.
 void set(Dockable dockable, DockActionSource source)
          Changes the content which is shown.
 void set(Dockable dockable, DockActionSource source, boolean force)
          Changes the content which is shown.
 void setBackground(java.awt.Color bg)
           
 void setForeground(java.awt.Color fg)
           
 void setOrientation(DockTitle.Orientation orientation)
          Changes the orientation of this panel.
 void setVisibleActions(int count)
          Sets the number of actions which should be shown directly on this panel.
 void updateUI()
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
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, paint, paintBorder, paintChildren, paintComponent, 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
 

Constructor Detail

ButtonPanel

public ButtonPanel(boolean menu)
Creates a new panel

Parameters:
menu - whether a menu should be used or not
Method Detail

createItemFor

protected BasicTitleViewItem<javax.swing.JComponent> createItemFor(DockAction action,
                                                                   Dockable dockable)
Creates a new item for action which will be shown on this panel. The default implementation will use the ActionViewConverter of dockable to create the view. The ViewTarget is set to ViewTarget.TITLE. Subclasses may overridde this method to create custom views or use other settings.

Parameters:
action - The action which will be triggered by the button
dockable - The Dockable which will be affected by the action
Returns:
the new graphical representation of the action

getItemCount

public int getItemCount()
Gets the number of items which are shown on this panel.

Returns:
the number of items

setOrientation

public void setOrientation(DockTitle.Orientation orientation)
Changes the orientation of this panel.

Parameters:
orientation - the new orientation

getOrientation

public DockTitle.Orientation getOrientation()
Gets the orientation of this panel. The orientation tells whether the buttons have to be layed out horizontally or vertically.

Returns:
the orientation

set

public void set(Dockable dockable)
Changes the content which is shown.

Parameters:
dockable - the Dockable for which the actions are shown, can be null

set

public void set(Dockable dockable,
                DockActionSource source)
Changes the content which is shown.

Parameters:
dockable - the Dockable for which the actions are shown, can be null
source - the list of actions, can be null
Throws:
java.lang.IllegalArgumentException - if dockable or source is null while the other is not null.

set

public void set(Dockable dockable,
                DockActionSource source,
                boolean force)
Changes the content which is shown.

Parameters:
dockable - the Dockable for which the actions are shown, can be null
source - the list of actions, can be null
force - if true, then no optimations are allowed
Throws:
java.lang.IllegalArgumentException - if dockable or source is null while the other is not null.

setForeground

public void setForeground(java.awt.Color fg)
Overrides:
setForeground in class javax.swing.JComponent

setBackground

public void setBackground(java.awt.Color bg)
Overrides:
setBackground in class javax.swing.JComponent

updateUI

public void updateUI()
Overrides:
updateUI in class javax.swing.JPanel

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class javax.swing.JComponent

getPreferredSizes

public java.awt.Dimension[] getPreferredSizes()
Computes the preferred sizes of this panel. Dimension result[n] would be the size required if n actions are shown. The number n should be used for calling setVisibleActions(int).

Returns:
An array of the size of the number of available actions +1.
See Also:
setVisibleActions(int)

getCurrentPreferredSize

public java.awt.Dimension getCurrentPreferredSize()
Gets the preferred size of this panel assuming that not all actions are shown.

Returns:
the preferred size

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

setVisibleActions

public void setVisibleActions(int count)
Sets the number of actions which should be shown directly on this panel. If not all available actions are shown, the remaining actions are put together in a menu.

Parameters:
count - the number of actions
See Also:
getPreferredSizes()

doLayout

public void doLayout()
Overrides:
doLayout in class java.awt.Container