com.pallas.swing.pcombobox
Class PComboBox

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JComboBox
                          |
                          +--com.pallas.swing.pcombobox.PComboBox
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.ItemSelectable, javax.swing.event.ListDataListener, java.awt.MenuContainer, PCombo, java.io.Serializable

public class PComboBox
extends javax.swing.JComboBox
implements PCombo

Title: $FileName: PComboBox.java$

Version:
$VerNum: 11$
Author:
$AuthorName: Rob MacGrogan$

$Description: Nifty Swing combobox that functions like the standard non-web browser combo box people are used to seeing.$
$KeyWordsOff: $

Nifty Swing combobox that functions like the standard non-web browser combo box people are used to seeing. User types the viewable string of the item they want to select and the closest match will be selected, instead of the default Java functionality which only looks at the first letter of each string in the list.
See Also:
Serialized Form

Field Summary
private  boolean allowNewEntries
           
private  java.util.Vector itemIndex
           
private  java.util.Hashtable listLocationIndex
           
private  FullWordComboKeySelectionModel mgr
           
 
Fields inherited from class javax.swing.JComboBox
actionCommand, dataModel, editor, isEditable, keySelectionManager, lightWeightPopupEnabled, maximumRowCount, renderer, selectedItemReminder
 
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
PComboBox()
          Constructor for PComboBox.
PComboBox(javax.swing.ComboBoxModel aModel)
          Constructor for PComboBox.
PComboBox(java.lang.Object[] items)
          Constructor for PComboBox.
PComboBox(java.util.Vector items)
          Constructor for PComboBox.
 
Method Summary
 void buildIndex()
          Must be called after all items have been added to combo box, or after a new item is added.
private  int compareStrings(java.lang.String search, java.lang.String item)
          Returns -1, 0, or 1
 boolean containsDisplayString(java.lang.String s)
           
private  int getBestMatchIndex(java.lang.String search, java.lang.String item, int listLocation)
          Double checks list for an exact match of search.
 javax.swing.JTextField getTextField()
          Returns the editor component of the PComboBox.
 java.util.Enumeration getUpperCaseContents()
           
protected  void initializeComponent()
          Initializes the PComboBox.
 boolean isAllowNewEntries()
          Returns the allowNewEntries.
 int search(java.lang.String search)
          Returns the index of the first item in the list that matches the passed in string.
 void setAllowNewEntries(boolean allowNewEntries)
          Sets the allowNewEntries.
 void setEditable(boolean editable)
          This method does nothing.
 void setKeySelectionManager(javax.swing.JComboBox.KeySelectionManager manager)
          This method does nothing.
 java.lang.Object setSelectedItemByValue(java.lang.Object item)
          Selects the first item in the list where itemInList.equals(item).
 void setSelectionByDisplay(java.lang.String display)
          Selects the item with the specified display string.
 void updateUI()
           
 
Methods inherited from class javax.swing.JComboBox
actionPerformed, addActionListener, addItem, addItemListener, addPopupMenuListener, configureEditor, configurePropertiesFromAction, contentsChanged, createActionPropertyChangeListener, createDefaultKeySelectionManager, fireActionEvent, fireItemStateChanged, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getAccessibleContext, getAction, getActionCommand, getActionListeners, getEditor, getItemAt, getItemCount, getItemListeners, getKeySelectionManager, getMaximumRowCount, getModel, getPopupMenuListeners, getPrototypeDisplayValue, getRenderer, getSelectedIndex, getSelectedItem, getSelectedObjects, getUI, getUIClassID, hidePopup, insertItemAt, installAncestorListener, intervalAdded, intervalRemoved, isEditable, isLightWeightPopupEnabled, isPopupVisible, paramString, processKeyEvent, removeActionListener, removeAllItems, removeItem, removeItemAt, removeItemListener, removePopupMenuListener, selectedItemChanged, selectWithKeyChar, setAction, setActionCommand, setEditor, setEnabled, setLightWeightPopupEnabled, setMaximumRowCount, setModel, setPopupVisible, setPrototypeDisplayValue, setRenderer, setSelectedIndex, setSelectedItem, setUI, showPopup
 
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, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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, 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
 
Methods inherited from interface com.pallas.swing.pcombobox.PCombo
getSelectedIndex, getSelectedItem
 

Field Detail

itemIndex

private java.util.Vector itemIndex

listLocationIndex

private java.util.Hashtable listLocationIndex

mgr

private FullWordComboKeySelectionModel mgr

allowNewEntries

private boolean allowNewEntries
Constructor Detail

PComboBox

public PComboBox(javax.swing.ComboBoxModel aModel)
Constructor for PComboBox.

Parameters:
aModel -

PComboBox

public PComboBox(java.lang.Object[] items)
Constructor for PComboBox.

Parameters:
items -

PComboBox

public PComboBox(java.util.Vector items)
Constructor for PComboBox.

Parameters:
items -

PComboBox

public PComboBox()
Constructor for PComboBox.

Method Detail

getUpperCaseContents

public java.util.Enumeration getUpperCaseContents()

buildIndex

public void buildIndex()
Must be called after all items have been added to combo box, or after a new item is added. This indexes all items String values for fast searching and matching.

PComboBox WILL NOT WORK IF YOU DO NOT CALL THIS METHOD.

Specified by:
buildIndex in interface PCombo

containsDisplayString

public boolean containsDisplayString(java.lang.String s)

setSelectedItemByValue

public java.lang.Object setSelectedItemByValue(java.lang.Object item)
Selects the first item in the list where itemInList.equals(item). Returns the itemInList.

Specified by:
setSelectedItemByValue in interface PCombo

search

public int search(java.lang.String search)
Returns the index of the first item in the list that matches the passed in string. A match is made if the first x letters of the item match the search string, where x is the length of the search string.

Specified by:
search in interface PCombo

getBestMatchIndex

private int getBestMatchIndex(java.lang.String search,
                              java.lang.String item,
                              int listLocation)
Double checks list for an exact match of search.


compareStrings

private int compareStrings(java.lang.String search,
                           java.lang.String item)
Returns -1, 0, or 1


initializeComponent

protected void initializeComponent()
Initializes the PComboBox.


updateUI

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

setKeySelectionManager

public void setKeySelectionManager(javax.swing.JComboBox.KeySelectionManager manager)
This method does nothing. PComboBox always uses FullWordComboKeySelectionModel.

Overrides:
setKeySelectionManager in class javax.swing.JComboBox

setEditable

public void setEditable(boolean editable)
This method does nothing. PComboBox is always editable.

Overrides:
setEditable in class javax.swing.JComboBox

getTextField

public javax.swing.JTextField getTextField()
Returns the editor component of the PComboBox.

Specified by:
getTextField in interface PCombo

setSelectionByDisplay

public void setSelectionByDisplay(java.lang.String display)
Selects the item with the specified display string. If the display string does not occur in the combo box, nothing happens.

Specified by:
setSelectionByDisplay in interface PCombo

isAllowNewEntries

public boolean isAllowNewEntries()
Returns the allowNewEntries.

Returns:
boolean

setAllowNewEntries

public void setAllowNewEntries(boolean allowNewEntries)
Sets the allowNewEntries.

Parameters:
allowNewEntries - The allowNewEntries to set


Copyright 2003 Pallas Technology.