maspack.widgets
Class AutoCompleteStringField

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 maspack.widgets.LabeledComponentBase
                      extended by maspack.widgets.LabeledComponent
                          extended by maspack.widgets.LabeledControl
                              extended by maspack.widgets.LabeledTextField
                                  extended by maspack.widgets.StringField
                                      extended by maspack.widgets.AutoCompleteStringField
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, HasProperties, Disposable, HasAlignableLabels, LabeledWidget

public class AutoCompleteStringField
extends StringField

Auto-completing version of the StringField Tab to make a suggestion, continue tabbing to cycle through suggestions or use Up/Down keys

Author:
antonio
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
 
Fields inherited from class maspack.widgets.LabeledTextField
MAX_COLUMNS, myProps
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
AutoCompleteStringField()
          Creates a StringField with an empty label text and a default number of columns.
AutoCompleteStringField(java.lang.String labelText, int ncols)
          Creates a StringField with specified label text.
AutoCompleteStringField(java.lang.String labelText, java.lang.String initialValue, int ncols)
          Creates a StringField with specified label text and initial value.
AutoCompleteStringField(java.lang.String labelText, java.lang.String initialValue, int ncols, java.util.ArrayList<java.lang.String> list)
          Creates an ACStringField with specified label text, initial value, and list of suggested words
 
Method Summary
 void addDataItem(java.lang.String item)
          Adds a word to the dictionary
 void addDataList(java.util.ArrayList<java.lang.String> list)
          Adds to the list of words from which to autocomplete
 void clearDataList()
          Clears the dictionary
 java.util.ArrayList<java.lang.String> getDataList()
          Returns the list of words in the dictionary
static java.lang.String getPrefix(java.util.ArrayList<java.lang.String> array)
          Given a list of strings, finds the greatest common prefix
static java.util.ArrayList<java.lang.String> getSuggestions(java.lang.String word, java.util.ArrayList<java.lang.String> dict)
          Finds the set of words in dict that begin with 'word'
 void removeDataItem(java.lang.String item)
          Removes a word from the dictionary
 void setCompletionKey(int keyEventCode)
          Sets the keyboard key to be used for triggering a completion
 void setDataList(java.util.ArrayList<java.lang.String> list)
          Sets the list of words from which to autocomplete
 void setNextCompletionKey(int keyEventCode)
          Sets the keyboard key to be used for triggering the next completion option
 void setPreviousCompletionKey(int keyEventCode)
          Sets the keyboard key to be used for triggering the next completion option
 
Methods inherited from class maspack.widgets.StringField
getResultHolder, getStringValue, setResultHolder
 
Methods inherited from class maspack.widgets.LabeledTextField
getAllPropertyInfo, getColumns, getDefaultFormat, getFormat, getFormatRange, getText, getTextField, lastEntryWasAccepted, setColumns, setFormat, setFormat
 
Methods inherited from class maspack.widgets.LabeledControl
addValueChangeListener, addValueCheckListener, dispose, getGUIVoidEnabled, getNullValueEnabled, getValue, getValueChangeListeners, getValueCheckListeners, getVoidValueEnabled, isEnabledAll, maskValueChangeListeners, maskValueChecks, removeValueChangeListener, setBackgroundAll, setEnabledAll, setValue, setVoidValueEnabled, valueChangeListenersMasked, valueChecksMasked, valueIsNull, valueIsVoid
 
Methods inherited from class maspack.widgets.LabeledComponent
actionPerformed, addMajorComponent, addMajorComponent, getActions, getLabel, getLabelSpacing, getMainComponent, getMajorComponent, getMaximumSize, getMinimumSize, getPreferredLabelSpacing, getSpacing, indexOfMajor, isLabelStretchable, isStretchable, numMajorComponents, removeMajorComponent, setLabelSpacing, setLabelStretchable, setLabelText, setSpacing, setStretchable
 
Methods inherited from class maspack.widgets.LabeledComponentBase
getBackgroundColor, getLabelFontColor, getLabelText, getLeftInset, getProperty, isSelected, setBackgroundColor, setLabelFontColor, setSelected
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, 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, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface maspack.widgets.LabeledWidget
getToolTipText, setToolTipText
 

Constructor Detail

AutoCompleteStringField

public AutoCompleteStringField()
Creates a StringField with an empty label text and a default number of columns.


AutoCompleteStringField

public AutoCompleteStringField(java.lang.String labelText,
                               int ncols)
Creates a StringField with specified label text.

Parameters:
labelText - text for the control label
ncols - approximate width of the text field in columns

AutoCompleteStringField

public AutoCompleteStringField(java.lang.String labelText,
                               java.lang.String initialValue,
                               int ncols)
Creates a StringField with specified label text and initial value.

Parameters:
labelText - text for the control label
initialValue - initial value for the string
ncols - approximate width of the text field in columns

AutoCompleteStringField

public AutoCompleteStringField(java.lang.String labelText,
                               java.lang.String initialValue,
                               int ncols,
                               java.util.ArrayList<java.lang.String> list)
Creates an ACStringField with specified label text, initial value, and list of suggested words

Parameters:
labelText - text for the control label
initialValue - initial value for the string
ncols - approximate width of the text field in columns
list - values to search for auto-complete functionality
Method Detail

setDataList

public void setDataList(java.util.ArrayList<java.lang.String> list)
Sets the list of words from which to autocomplete

Parameters:
list - list of words to add to the dictionary

addDataList

public void addDataList(java.util.ArrayList<java.lang.String> list)
Adds to the list of words from which to autocomplete

Parameters:
list - list of words to add to the dictionary

addDataItem

public void addDataItem(java.lang.String item)
Adds a word to the dictionary

Parameters:
item - word to add to the dictionary

removeDataItem

public void removeDataItem(java.lang.String item)
Removes a word from the dictionary

Parameters:
item - word to remove from the dictionary

clearDataList

public void clearDataList()
Clears the dictionary


getDataList

public java.util.ArrayList<java.lang.String> getDataList()
Returns the list of words in the dictionary


setCompletionKey

public void setCompletionKey(int keyEventCode)
Sets the keyboard key to be used for triggering a completion

Parameters:
keyEventCode -

setNextCompletionKey

public void setNextCompletionKey(int keyEventCode)
Sets the keyboard key to be used for triggering the next completion option

Parameters:
keyEventCode -

setPreviousCompletionKey

public void setPreviousCompletionKey(int keyEventCode)
Sets the keyboard key to be used for triggering the next completion option

Parameters:
keyEventCode -

getSuggestions

public static java.util.ArrayList<java.lang.String> getSuggestions(java.lang.String word,
                                                                   java.util.ArrayList<java.lang.String> dict)
Finds the set of words in dict that begin with 'word'


getPrefix

public static java.lang.String getPrefix(java.util.ArrayList<java.lang.String> array)
Given a list of strings, finds the greatest common prefix

Parameters:
array - input array of strings
Returns:
the greatest common prefix