ca.bc.webarts.widgets
Class PopUpButton

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.AbstractButton
                  extended byjavax.swing.JButton
                      extended byca.bc.webarts.widgets.PopUpButton
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, javax.swing.SwingConstants
Direct Known Subclasses:
JCheckDropDown

public class PopUpButton
extends javax.swing.JButton

A custom Drop Down box that requires the user to select the button to open and close the popup list.

Author:
Tom Gutwin P.Eng
See Also:
Serialized Form

Nested Class Summary
(package private)  class PopUpButton.ListMouseListener
          A private mouse listener for the popup list.NOTHING really implemented yet (other than som terminal output debugging).
 
Nested classes inherited from class javax.swing.JButton
javax.swing.JButton.AccessibleJButton
 
Nested classes inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
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
protected static javax.swing.JFrame appFrame_
          a test JFrame.
private static java.lang.String className_
          A Class holder for its name (used in Logging).
protected  javax.swing.DefaultListModel listModel_
          The list model used by this class.
protected static Log log_
          The Log that will get used.
protected static java.lang.String logFile_
          The Log Filename.
protected  java.awt.event.ActionListener PopUpButtonActionListener_
          The Action Listener for this class.
protected  java.beans.PropertyChangeListener PopUpButtonPropListener_
          The Property Listener for this class.
protected  boolean popUpIsShowing_
          Flags if the popup list is showing.
(package private)  javax.swing.JList popUpList_
          The List of items that goes in the PopUp.
protected  javax.swing.JPanel popUpPanel_
          The JPanel that the popUpScroller_ will live in.
protected  java.awt.Point popUpPosition_
          The position on the screen to place the popup.
protected  javax.swing.JScrollPane popUpScroller_
          The JScrollPane that the PopUpList will live in.
protected  javax.swing.JWindow popUpWin_
          The JFrame that the popUpPanel_/PopUpList will live in.
protected static java.lang.String[] SAMPLE_LIST_DATA
          Sample Test Data to put in the JList.
 
Fields inherited from class javax.swing.JButton
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
protected PopUpButton()
          Basic Constructor that instantiates with an empty popup list using the basic renderer.
  PopUpButton(javax.swing.JList jl)
          Constructor that instantiates the popup list using the passed in JList and basic renderer.
  PopUpButton(java.lang.Object[] jl)
          Constructor that instantiates the popup list using the passed in Array and basic renderer.
  PopUpButton(java.util.Vector jlv)
          Constructor that instantiates the popup list using the passed in Vector and basic renderer.
 
Method Summary
 int getItemCount()
          Gets the ItemCount attribute of the PopUpButton object
(package private)  Log getLog()
          Gets the Log object that the PopUpButton is using.
 int getSelectedIndex()
          Gets the SelectedIndex attribute of the PopUpButton object
 java.lang.Object getSelectedItem()
          Gets the SelectedItem attribute of the PopUpButton object
static void main(java.lang.String[] args)
          The main program for the PopUpButton class
 void setSelectedIndex(int index)
          Sets the SelectedIndex attribute of the PopUpButton object.
(package private)  boolean showPopUp(boolean showIt)
          Shows or Removes the JList Popup depending on the passed parm.
protected  void sortArray(java.text.Collator collator, java.lang.String[] strArray)
           
protected  void sortDefaultList(javax.swing.DefaultListModel dlm)
           
protected  void togglePopUp()
          Toggles the popup to show or not show depending on if it is currently shown.
 
Methods inherited from class javax.swing.JButton
configurePropertiesFromAction, getAccessibleContext, getUIClassID, isDefaultButton, isDefaultCapable, paramString, removeNotify, setDefaultCapable, updateUI
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
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, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, 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, 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

appFrame_

protected static javax.swing.JFrame appFrame_
a test JFrame.


logFile_

protected static java.lang.String logFile_
The Log Filename.


log_

protected static Log log_
The Log that will get used.


className_

private static java.lang.String className_
A Class holder for its name (used in Logging).


SAMPLE_LIST_DATA

protected static final java.lang.String[] SAMPLE_LIST_DATA
Sample Test Data to put in the JList.


listModel_

protected javax.swing.DefaultListModel listModel_
The list model used by this class.


popUpWin_

protected javax.swing.JWindow popUpWin_
The JFrame that the popUpPanel_/PopUpList will live in.


popUpPanel_

protected javax.swing.JPanel popUpPanel_
The JPanel that the popUpScroller_ will live in.


popUpScroller_

protected javax.swing.JScrollPane popUpScroller_
The JScrollPane that the PopUpList will live in.


popUpIsShowing_

protected boolean popUpIsShowing_
Flags if the popup list is showing.


popUpPosition_

protected java.awt.Point popUpPosition_
The position on the screen to place the popup.


PopUpButtonPropListener_

protected java.beans.PropertyChangeListener PopUpButtonPropListener_
The Property Listener for this class.


PopUpButtonActionListener_

protected java.awt.event.ActionListener PopUpButtonActionListener_
The Action Listener for this class.


popUpList_

javax.swing.JList popUpList_
The List of items that goes in the PopUp.

Constructor Detail

PopUpButton

protected PopUpButton()
Basic Constructor that instantiates with an empty popup list using the basic renderer. Sets the text allignment to LEFT and adds a metal Icon.


PopUpButton

public PopUpButton(javax.swing.JList jl)
Constructor that instantiates the popup list using the passed in JList and basic renderer.

Parameters:
jl - The JList to iunstantiate with.

PopUpButton

public PopUpButton(java.lang.Object[] jl)
Constructor that instantiates the popup list using the passed in Array and basic renderer.

Parameters:
jl - An array of objects to instantiate the popup list with.

PopUpButton

public PopUpButton(java.util.Vector jlv)
Constructor that instantiates the popup list using the passed in Vector and basic renderer.

Parameters:
jlv - A Vector of objects to instantiate the popup list with.
Method Detail

main

public static void main(java.lang.String[] args)
The main program for the PopUpButton class

Parameters:
args - The command line arguments

setSelectedIndex

public void setSelectedIndex(int index)
Sets the SelectedIndex attribute of the PopUpButton object.

Parameters:
index - The new SelectedIndex value

getSelectedItem

public java.lang.Object getSelectedItem()
Gets the SelectedItem attribute of the PopUpButton object

Returns:
The SelectedItem value

getSelectedIndex

public int getSelectedIndex()
Gets the SelectedIndex attribute of the PopUpButton object

Returns:
The SelectedIndex value

getItemCount

public int getItemCount()
Gets the ItemCount attribute of the PopUpButton object

Returns:
The ItemCount value

getLog

Log getLog()
Gets the Log object that the PopUpButton is using.

Returns:
The Log .

sortDefaultList

protected void sortDefaultList(javax.swing.DefaultListModel dlm)

sortArray

protected void sortArray(java.text.Collator collator,
                         java.lang.String[] strArray)

togglePopUp

protected void togglePopUp()
Toggles the popup to show or not show depending on if it is currently shown.


showPopUp

boolean showPopUp(boolean showIt)
Shows or Removes the JList Popup depending on the passed parm.

Parameters:
showIt - flag to show or remove the popup.
Returns:
Description of the Returned Value