kiwi.ui
Class ButtonPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bykiwi.ui.KPanel
                      extended bykiwi.ui.ButtonPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class ButtonPanel
extends KPanel

This class is a simple extension of KPanel that arranges buttons in a row, in such a way that the buttons are all of equal size, and justified flush with the right or left edge of the panel. Many Kiwi dialogs and frames provide buttons in their lower-right areas or toolbars in their upper-left areas that are positioned in just this way; this class eliminates the need to perform the layout explicitly in code each time this effect is desired.

The row of buttons is anchored at either the left or the right edge of the panel. If the sum of the preferred widths of the buttons exceeds the available horizontal space, the buttons are compressed horizontally to fit.

Author:
Mark Lindner, PING Software Group
See Also:
KPanel, Serialized Form

Nested Class Summary
private  class ButtonPanel.AnchorLayout
           
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int DEFAULT_SPACING
          The default horizontal spacing.
private static int LEFT
           
private  KPanel p_buttons
           
private static int RIGHT
           
 
Fields inherited from class kiwi.ui.KPanel
 
Fields inherited from class javax.swing.JPanel
 
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.Container
 
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()
          Construct a new ButtonPanel with the default horizontal spacing and right alignment.
ButtonPanel(int alignment)
          Construct a new ButtonPanel with default horizontal spacing and the given alignment.
ButtonPanel(int alignment, int spacing)
          Construct a new ButtonPanel with the given horizontal spacing and alignment.
 
Method Summary
 void addButton(javax.swing.AbstractButton button)
          Add a button to the ButtonPanel.
 void addButton(javax.swing.AbstractButton button, int pos)
          Add a button to the ButtonPanel at the specified position.
 javax.swing.AbstractButton getButton(int pos)
          Get a reference to the button at the specified position in the ButtonPanel.
 int getButtonCount()
          Get the number of buttons in this ButtonPanel.
 void removeButton(javax.swing.AbstractButton button)
          Remove a button from the ButtonPanel.
 void removeButton(int pos)
          Remove a button from the specified position in the ButtonPanel.
 
Methods inherited from class kiwi.ui.KPanel
getComponentByName, paintComponent, setFocusOrder, setTexture
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

LEFT

private static final int LEFT
See Also:
Constant Field Values

RIGHT

private static final int RIGHT
See Also:
Constant Field Values

p_buttons

private KPanel p_buttons

DEFAULT_SPACING

public static final int DEFAULT_SPACING
The default horizontal spacing.

See Also:
Constant Field Values
Constructor Detail

ButtonPanel

public ButtonPanel()
Construct a new ButtonPanel with the default horizontal spacing and right alignment.


ButtonPanel

public ButtonPanel(int alignment)
Construct a new ButtonPanel with default horizontal spacing and the given alignment.

Parameters:
alignment - The alignment of the buttons within their containing panel; one of SwingConstants.LEFT or SwingConstants.RIGHT.

ButtonPanel

public ButtonPanel(int alignment,
                   int spacing)
Construct a new ButtonPanel with the given horizontal spacing and alignment.

Parameters:
spacing - The size of the gap (in pixels) to place between buttons horizontally.
alignment - The alignment of the buttons within their containing panel; one of SwingConstants.LEFT or SwingConstants.RIGHT.
Method Detail

addButton

public void addButton(javax.swing.AbstractButton button)
Add a button to the ButtonPanel.

Parameters:
button - The button to add.
See Also:
removeButton(javax.swing.AbstractButton)

addButton

public void addButton(javax.swing.AbstractButton button,
                      int pos)
               throws java.lang.IllegalArgumentException
Add a button to the ButtonPanel at the specified position.

Parameters:
button - The button to add.
pos - The position at which to add the button. The value 0 denotes the first position, and -1 denotes the last position.
Throws:
java.lang.IllegalArgumentException - If the value of pos is invalid.

getButton

public javax.swing.AbstractButton getButton(int pos)
Get a reference to the button at the specified position in the ButtonPanel.

Parameters:
pos - The position of the button to retrieve.
Returns:
The button.

removeButton

public void removeButton(javax.swing.AbstractButton button)
Remove a button from the ButtonPanel.

Parameters:
button - The button to remove.
See Also:
addButton(javax.swing.AbstractButton)

removeButton

public void removeButton(int pos)
Remove a button from the specified position in the ButtonPanel.

Parameters:
pos - The position of the button to remove, where 0 denotes the first position.

getButtonCount

public int getButtonCount()
Get the number of buttons in this ButtonPanel.

Returns:
The number of buttons.