public class AutoCompleteTextField extends TextField
An editable TextField
with completion suggestions
that show up in a drop down menu while the user types in text.
This class uses the "TextField
" UIID by default as well as "AutoCompletePopup
" &
"AutoCompleteList
" for the popup list details.
The sample below shows the more trivial use case for this widget:
The following sample shows more dynamic usage of the class where the auto-complete model is mutated based on webservice results.
Modifier and Type | Field and Description |
---|---|
static int |
POPUP_POSITION_AUTO |
static int |
POPUP_POSITION_OVER |
static int |
POPUP_POSITION_UNDER |
ANY, DECIMAL, EMAILADDR, INITIAL_CAPS_SENTENCE, INITIAL_CAPS_WORD, NON_PREDICTIVE, NUMERIC, PASSWORD, PHONENUMBER, SENSITIVE, UNEDITABLE, UPPERCASE, URL, USERNAME
BASELINE, BOTTOM, BRB_CENTER_OFFSET, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_OTHER, CENTER, CROSSHAIR_CURSOR, DEFAULT_CURSOR, DRAG_REGION_IMMEDIATELY_DRAG_X, DRAG_REGION_IMMEDIATELY_DRAG_XY, DRAG_REGION_IMMEDIATELY_DRAG_Y, DRAG_REGION_LIKELY_DRAG_X, DRAG_REGION_LIKELY_DRAG_XY, DRAG_REGION_LIKELY_DRAG_Y, DRAG_REGION_NOT_DRAGGABLE, DRAG_REGION_POSSIBLE_DRAG_X, DRAG_REGION_POSSIBLE_DRAG_XY, DRAG_REGION_POSSIBLE_DRAG_Y, E_RESIZE_CURSOR, HAND_CURSOR, LEFT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NW_RESIZE_CURSOR, RIGHT, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, TOP, W_RESIZE_CURSOR, WAIT_CURSOR
Constructor and Description |
---|
AutoCompleteTextField()
The default constructor is useful for cases of filter subclasses overriding the
getSuggestionModel value as well as for the GUI builder
|
AutoCompleteTextField(ListModel<String> listModel)
Constructor with completion suggestions, filtering is automatic in this case
|
AutoCompleteTextField(String... completion)
Constructor with completion suggestions
|
Modifier and Type | Method and Description |
---|---|
void |
addListListener(ActionListener a)
Adds an action listener that fires an event when an entry in the auto-complete list is selected.
|
protected void |
deinitialize()
Invoked to indicate that the component initialization is being reversed
since the component was detached from the container hierarchy.
|
protected boolean |
filter(String text)
Subclasses can override this method to perform more elaborate filter operations
|
String[] |
getCompletion()
Returns the completion values
|
int |
getMinimumElementsShownInPopup()
The number of elements shown for the auto complete popup
|
int |
getMinimumLength()
Indicates the minimum length of text in the field in order for a popup to show
the default is 0 where a popup is shown immediately for all text length if the number
is 2 a popup will only appear when there are two characters or more.
|
String[] |
getPropertyNames()
A component may expose mutable property names for a UI designer to manipulate, this
API is designed for usage internally by the GUI builder code
|
String[] |
getPropertyTypeNames()
This method is here to workaround an XMLVM array type bug where property types aren't
identified properly, it returns the names of the types using the following type names:
String,int,double,long,byte,short,char,String[],String[][],byte[],Image,Image[],Object[],ListModel,ListCellRenderer
|
Class[] |
getPropertyTypes()
Matches the property names method (see that method for further details).
|
Object |
getPropertyValue(String name)
Returns the current value of the property name, this method is used by the GUI builder
|
protected ListModel<String> |
getSuggestionModel()
Returns the list model to show within the completion list
|
protected void |
initComponent()
Allows subclasses to bind functionality that relies on fully initialized and
"ready for action" component state
|
boolean |
isStartsWithMode()
When enabled this makes the filter check that the string starts with rather than within the index
|
void |
keyPressed(int k)
If this Component is focused, the key pressed event
will call this method
|
void |
keyReleased(int k)
If this Component is focused, the key released event
will call this method
|
void |
removeListListener(ActionListener a)
Removes an action listener that fires an event when an entry in the auto-complete list is selected.
|
void |
setCompletion(String... completion)
Sets the completion values
|
void |
setCompletionRenderer(ListCellRenderer completionRenderer)
Sets a custom renderer to the completion suggestions list.
|
void |
setMinimumElementsShownInPopup(int minimumElementsShownInPopup)
The number of elements shown for the auto complete popup
|
void |
setMinimumLength(int minimumLength)
Indicates the minimum length of text in the field in order for a popup to show
the default is 0 where a popup is shown immediately for all text length if the number
is 2 a popup will only appear when there are two characters or more.
|
void |
setPopupPosition(int popupPosition)
Set the autocomplete popup position in respect of the text field;
POPUP_POSITION_AUTO is the default and it means that the popup is placed
according to the available space.
|
String |
setPropertyValue(String name,
Object value)
Sets a new value to the given property, returns an error message if failed
and null if successful.
|
void |
setStartsWithMode(boolean startsWithMode)
When enabled this makes the filter check that the string starts with rather than within the index
|
void |
setText(String text)
Sets the text within this text area
|
protected boolean |
shouldShowPopup()
Callback that allows subclasses to block the popup from showing
|
void |
showPopup()
Causes the popup UI to show
|
protected void |
updateFilterList()
In a case of an asynchronous filter this method can be invoked to refresh the completion list
|
addInputMode, animate, calcPreferredSize, calculateTextSelectionSpan, clear, commitChange, create, create, create, create, createSymbolTable, deleteChar, fireClicked, getCharPerKeyCode, getCommitTimeout, getCursorBlinkTimeOff, getCursorBlinkTimeOn, getCursorPosition, getCursorX, getCursorY, getDefaultChangeInputModeKey, getDefaultInputModeOrder, getDefaultSymbolDialogKey, getInputMode, getInputModeOrder, getLongClickDuration, getLongClickInputMode, getSymbolTable, insertChars, installCommands, isChangeInputMode, isClearKey, isCursorPositionCycle, isEditingEndTrigger, isEditingTrigger, isEnableInputScroll, isImmediateInputMode, isLeftAndRightEditingTrigger, isOverwriteMode, isPendingCommit, isQwertyAutoDetect, isQwertyDevice, isQwertyInput, isReplaceMenu, isReplaceMenuDefault, isSelectableInteraction, isSymbolDialogKey, isUseNativeTextInput, isUseSoftkeys, keyRepeated, longKeyPress, paint, pointerReleased, removeCommands, setAlignment, setClearText, setCommitTimeout, setCursorBlinkTimeOff, setCursorBlinkTimeOn, setCursorPosition, setDefaultChangeInputModeKey, setDefaultInputModeOrder, setDefaultSymbolDialogKey, setEditable, setEnableInputScroll, setInputMode, setInputModeOrder, setLeftAndRightEditingTrigger, setOverwriteMode, setQwertyAutoDetect, setQwertyDevice, setQwertyInput, setReplaceMenu, setReplaceMenuDefault, setSymbolTable, setT9Text, setUseNativeTextInput, setUseSoftkeys, showSymbolDialog, validChar
addActionListener, addCloseListener, addDataChangedListener, addDataChangeListener, autoDetectWidestChar, bindProperty, calcScrollSize, fireDataChanged, fireDoneEvent, getAbsoluteAlignment, getActualRows, getAlignment, getAsDouble, getAsInt, getAsLong, getBindablePropertyNames, getBindablePropertyTypes, getBoundPropertyValue, getColumns, getConstraint, getDefaultValign, getDoneListener, getGrowLimit, getHint, getHintIcon, getHintLabel, getLines, getLinesToScroll, getMaxSize, getPreferredTabIndex, getRows, getRowsGap, getStyle, getText, getTextAt, getTextSelectionSupport, getUnsupportedChars, getVerticalAlignment, getWidestChar, initLaf, isActAsLabel, isAutoDegradeMaxSize, isEditable, isEditing, isEndsWith3Points, isEnterKey, isGrowByContent, isScrollableY, isSingleLineTextArea, isTextSelectionEnabled, isUseStringWidth, pointerHover, pointerHoverReleased, preprocess, registerAsInputDevice, removeActionListener, removeCloseListener, removeDataChangedListener, removeDataChangeListener, setActAsLabel, setAutoDegradeMaxSize, setBoundPropertyValue, setColumns, setConstraint, setDefaultMaxSize, setDefaultValign, setDoneListener, setEndsWith3Points, setGrowByContent, setGrowLimit, setHint, setHint, setHintIcon, setLinesToScroll, setMaxSize, setRows, setRowsGap, setSingleLineTextArea, setTextSelectionEnabled, setUnsupportedChars, setUseStringWidth, setVerticalAlignment, setWidestChar, setWidth, shouldRenderComponentSelection, startEditing, startEditingAsync, stopEditing, stopEditing, unbindProperty
addDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, blocksSideSwipe, cancelRepaints, clearClientProperties, contains, containsOrOwns, createStyleAnimation, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, dragInitiated, drawDraggedImage, drop, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAllStyles, getAnimationManager, getBaseline, getBaselineResizeBehavior, getBorder, getBottomGap, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragRegionStatus, getDragSpeed, getDragTransparency, getEditingDelegate, getGridPosX, getGridPosY, getHeight, getInlineAllStyles, getInlineDisabledStyles, getInlinePressedStyles, getInlineSelectedStyles, getInlineStylesTheme, getInlineUnselectedStyles, getInnerHeight, getInnerPreferredH, getInnerPreferredW, getInnerWidth, getInnerX, getInnerY, getLabelForComponent, getName, getNativeOverlay, getNextFocusDown, getNextFocusLeft, getNextFocusRight, getNextFocusUp, getOuterHeight, getOuterPreferredH, getOuterPreferredW, getOuterWidth, getOuterX, getOuterY, getOwner, getParent, getPreferredH, getPreferredSize, getPreferredSizeStr, getPreferredW, getPressedStyle, getSameHeight, getSameWidth, getScrollable, getScrollAnimationSpeed, getScrollDimension, getScrollOpacity, getScrollOpacityChangeSpeed, getScrollX, getScrollY, getSelectCommandText, getSelectedRect, getSelectedStyle, getSideGap, getTabIndex, getTensileLength, getTooltip, getUIID, getUIManager, getUnselectedStyle, getVisibleBounds, getVisibleBounds, getWidth, getX, getY, growShrink, handlesInput, hasFixedPreferredSize, hasFocus, hideNativeOverlay, initCustomStyle, initDisabledStyle, initPressedStyle, initSelectedStyle, initUnselectedStyle, installDefaultPainter, isAlwaysTensile, isBlockLead, isCellRenderer, isChildOf, isDragActivated, isDragAndDropOperation, isDraggable, isDragRegion, isDropTarget, isEnabled, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollableX, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isStickyDrag, isTactileTouch, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, laidOut, longPointerPress, onScrollX, onScrollY, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, paramString, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerDragged, pointerHoverPressed, pointerPressed, pointerPressed, pointerReleased, putClientProperty, refreshTheme, refreshTheme, refreshTheme, remove, removeDragFinishedListener, removeDragOverListener, removeDropListener, removeFocusListener, removeLongPressListener, removePointerDraggedListener, removePointerPressedListener, removePointerReleasedListener, removeScrollListener, removeStateChangeListener, repaint, repaint, requestFocus, resetFocusable, respondsToPointerEvents, scrollRectToVisible, scrollRectToVisible, setAlwaysTensile, setBlockLead, setCellRenderer, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setEnabled, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHandlesInput, setHeight, setHidden, setHidden, setHideInLandscape, setHideInPortrait, setIgnorePointerEvents, setInitialized, setInlineAllStyles, setInlineDisabledStyles, setInlinePressedStyles, setInlineSelectedStyles, setInlineStylesTheme, setInlineUnselectedStyles, setIsScrollVisible, setLabelForComponent, setName, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setOpaque, setOwner, setPinchBlocksDragAndDrop, setPreferredH, setPreferredSize, setPreferredSizeStr, setPreferredTabIndex, setPreferredW, setPressedStyle, setRippleEffect, setRTL, setSameHeight, setSameSize, setSameWidth, setScrollAnimationSpeed, setScrollOpacityChangeSpeed, setScrollSize, setScrollVisible, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setShouldCalcPreferredSize, setSize, setSmoothScrolling, setSnapToGrid, setTabIndex, setTactileTouch, setTensileDragEnabled, setTensileLength, setTooltip, setTraversable, setUIID, setUIID, setUnselectedStyle, setVisible, setX, setY, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, showNativeOverlay, stripMarginAndPadding, styleChanged, toImage, toString, updateNativeOverlay, visibleBoundsContains
public static final int POPUP_POSITION_AUTO
public static final int POPUP_POSITION_OVER
public static final int POPUP_POSITION_UNDER
public AutoCompleteTextField(String... completion)
completion
- a String array of suggestion for completionpublic AutoCompleteTextField(ListModel<String> listModel)
listModel
- a list model containing potential string suggestionspublic AutoCompleteTextField()
protected void initComponent()
initComponent
in class TextArea
protected void deinitialize()
deinitialize
in class TextField
public void showPopup()
public void setText(String text)
setText
in interface TextHolder
setText
in class TextField
text
- new value for the text areaprotected void updateFilterList()
protected boolean filter(String text)
text
- the text to filterprotected ListModel<String> getSuggestionModel()
public void setCompletionRenderer(ListCellRenderer completionRenderer)
completionRenderer
- a ListCellRenderer for the suggestions Listpublic void keyPressed(int k)
keyPressed
in class TextField
k
- the key code value to indicate a physical key.public void keyReleased(int k)
keyReleased
in class TextField
k
- the key code value to indicate a physical key.public void addListListener(ActionListener a)
a
- the listenerpublic void removeListListener(ActionListener a)
a
- the listenerpublic int getMinimumLength()
public void setMinimumLength(int minimumLength)
minimumLength
- the minimumLength to setpublic int getMinimumElementsShownInPopup()
public void setMinimumElementsShownInPopup(int minimumElementsShownInPopup)
minimumElementsShownInPopup
- the minimumElementsShownInPopup to setpublic void setPopupPosition(int popupPosition)
popupPosition
- on of POPUP_POSITION_AUTO, POPUP_POSITION_OVER,
POPUP_POSITION_UNDERprotected boolean shouldShowPopup()
public String[] getPropertyNames()
getPropertyNames
in class Component
public Class[] getPropertyTypes()
getPropertyTypes
in class Component
public String[] getPropertyTypeNames()
getPropertyTypeNames
in class Component
public Object getPropertyValue(String name)
getPropertyValue
in class Component
name
- the name of the propertypublic void setCompletion(String... completion)
completion
- the completion valuespublic String[] getCompletion()
public String setPropertyValue(String name, Object value)
setPropertyValue
in class Component
name
- the name of the propertyvalue
- new value for the propertypublic boolean isStartsWithMode()
public void setStartsWithMode(boolean startsWithMode)
startsWithMode
- the startsWithMode to set