CADI.Viewer.Util
Class DropDownButton

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 CADI.Viewer.Util.DropDownButton
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class DropDownButton
extends javax.swing.JPanel

This class implements a drop down button. The buttons to be included in the panel will be passes to the constructor. This class performs the change of the selected button through the selector button (an arrow). Moreover, only the selected button events are captured but they are not processed, so the parent must be pass the listener throw the addActionListener(ActionListener) method and the parent may know the selected button through the getIndexOfSelectedButton() method.

Usage example:
  constructor
  addActionListener
  getIndexOfSelectedButton

Version:
1.0 2007/12/17
Author:
Group on Interactive Coding of Images (GICI)
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.awt.event.ActionListener actionListener
          Is the action listener for the selected button.
private  java.awt.Dimension buttonDims
          The dimensions of the buttons.
private  javax.swing.JButton[] buttons
          An array with the available buttons of the drop down button.
private  javax.swing.JPanel chooserPanel
          Button chooser panel.
private  int indexOfSelectedButton
          Is the index of the buttons array of the selectedButton button.
private  javax.swing.Popup popup
          The popup where the chooserPanel will be placed.
private  javax.swing.JButton selectedButton
          Is the button which is visible.
private  javax.swing.JButton selectorButton
          Selector button (shows an arrow).
 
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
DropDownButton(javax.swing.ImageIcon[] icons, java.lang.String[] toolTipTexts, int buttonWidth, int buttonHeight)
          Constructor.
 
Method Summary
 void addActionListener(java.awt.event.ActionListener actionListener)
          Adds the action listener for the selected button.
private  void changeButton(int index)
          Change the selected button.
private  void closePopup()
          Close the popup.
private  javax.swing.JButton createButton(int index, javax.swing.ImageIcon icon, java.lang.String toolTipText)
          Creates a button.
private  javax.swing.JPanel createChooserPanel()
          Build the chooser panel.
 int getIndexOfSelectedButton()
          Returns the index of the selected button.
private  void initialize()
          Performs the initializations.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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

buttonDims

private java.awt.Dimension buttonDims
The dimensions of the buttons.


buttons

private javax.swing.JButton[] buttons
An array with the available buttons of the drop down button.


actionListener

private java.awt.event.ActionListener actionListener
Is the action listener for the selected button.


selectedButton

private javax.swing.JButton selectedButton
Is the button which is visible.


indexOfSelectedButton

private int indexOfSelectedButton
Is the index of the buttons array of the selectedButton button.


selectorButton

private javax.swing.JButton selectorButton
Selector button (shows an arrow).


popup

private javax.swing.Popup popup
The popup where the chooserPanel will be placed.


chooserPanel

private javax.swing.JPanel chooserPanel
Button chooser panel.

Constructor Detail

DropDownButton

public DropDownButton(javax.swing.ImageIcon[] icons,
                      java.lang.String[] toolTipTexts,
                      int buttonWidth,
                      int buttonHeight)
Constructor.

Parameters:
icons - image icons for the buttons.
toolTipTexts - tool tip texts for the buttons.
buttonWidth - width of the buttons.
buttonHeight - height of the buttons.
Method Detail

addActionListener

public void addActionListener(java.awt.event.ActionListener actionListener)
Adds the action listener for the selected button.

Parameters:
actionListener - an action listener.

getIndexOfSelectedButton

public int getIndexOfSelectedButton()
Returns the index of the selected button. The index of the buttons is the same of the DropDownButton(ImageIcon[], String[], int, int)'s icons parameter.

Returns:
the index of the selected button.

createButton

private javax.swing.JButton createButton(int index,
                                         javax.swing.ImageIcon icon,
                                         java.lang.String toolTipText)
Creates a button.

Parameters:
index - index of the button in the buttons array.
icon - the icon image.
toolTipText - the tool tip text
Returns:
a JButton.

initialize

private void initialize()
Performs the initializations.


createChooserPanel

private javax.swing.JPanel createChooserPanel()
Build the chooser panel. If the it has already been built, just return the same.

Returns:
the chooser panel.

changeButton

private void changeButton(int index)
Change the selected button.

Parameters:
index - index of the new selected button.

closePopup

private void closePopup()
Close the popup.



CADI - Copyright (C) 2007
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Group on Interactive Coding of Images (GICI) (contact)