# Class AutoCompleteTextComponent

java.lang.Object
com.codename1.ui.Component
com.codename1.ui.Container
com.codename1.ui.InputComponent
com.codename1.ui.TextComponent
com.codename1.ui.AutoCompleteTextComponent

All Implemented Interfaces:
  `Animation, Editable, StyleListener, Iterable<Component>`

public class AutoCompleteTextComponent extends TextComponent

A `TextComponent` version of `com.codename1.ui.AutoCompleteTextField`

This component was contributed here https://github.com/codenameone/CodenameOne/issues/2705

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `AutoCompleteTextComponent.AutoCompleteFilter`
  Allows filtering the entries in the auto complete

- ## Field Summary

  ### Fields inherited from class Component

  `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 Summary

  Constructors
  Constructor
  Description
  `AutoCompleteTextComponent(ListModel<String> listModel, AutoCompleteTextComponent.AutoCompleteFilter customFilter)`
  This constructor allows us to create an AutoCompleteTextComponent with the given listModel and customFilter

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AutoCompleteTextComponent`
  `columns(int columns)`
  Sets the columns in the text field
  `AutoCompleteTextComponent`
  `constraint(int constraint)`
  Sets the constraint for text input matching the constraints from the text area class
  `AutoCompleteTextComponent`
  `descriptionMessage(String descriptionMessage)`
  Overridden for covariant return type Overridden for covariant return type Sets the text of the description label which currently only applies in the onTop mode.
  `AutoCompleteTextComponent`
  `errorMessage(String errorMessage)`
  Overridden for covariant return type Overridden for covariant return type Sets the text of the error label
  `AutoCompleteTextComponent`
  `focusAnimation(boolean focusAnimation)`
  The focus animation mode forces the hint and text to be identical and animates the hint to the label when focus is in the text field as is common on Android.
  `AutoCompleteTextField`
  `getAutoCompleteField()`
  Allows us to invoke setters/getters and bind listeners to the text field
  `final Component`
  `getEditor()`
  Returns the editor component e.g.
  `TextField`
  `getField()`
  Allows us to invoke setters/getters and bind listeners to the text field
  `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
  `String`
  `getText()`
  Returns the text in the field `com.codename1.ui.TextArea#getText()`
  `AutoCompleteTextComponent`
  `hint(Image hint)`
  Sets the hint of the field
  `AutoCompleteTextComponent`
  `hint(String hint)`
  Sets the hint of the field
  `boolean`
  `isFocusAnimation()`
  The focus animation mode forces the hint and text to be identical and animates the hint to the label when focus is in the text field as is common on Android.
  `AutoCompleteTextComponent`
  `label(String text)`
  Overridden for covariant return type * Overridden for covariant return type Sets the text of the label
  `AutoCompleteTextComponent`
  `labelAndHint(String text)`
  Convenience method for setting the label and hint together
  `AutoCompleteTextComponent`
  `multiline(boolean multiline)`
  Sets the text field to multiline or single line
  `AutoCompleteTextComponent`
  `onTopMode(boolean onTopMode)`
  Overridden for covariant return type Overridden for covariant return type Sets the on top mode which places the label above the text when true.
  `AutoCompleteTextComponent`
  `rows(int rows)`
  Sets the rows in the text field
  `String`
  `setPropertyValue(String name, Object value)`
  Sets a new value to the given property, returns an error message if failed and null if successful.
  `AutoCompleteTextComponent`
  `text(String text)`
  Sets the text of the field

  ### Methods inherited from class TextComponent

  `action, actionAsButton, actionClick, actionText, actionUIID`

  ### Methods inherited from class InputComponent

  `calcPreferredSize, createErrorLabel, getAction, getActionText, getActionUIID, group, initInput, isActionAsButton, isMultiLineErrorMessage, isOnTopMode, setMultiLineErrorMessage`

  ### Methods inherited from class Container

  `add, add, add, add, add, add, addAll, addComponent, addComponent, addComponent, addComponent, animateHierarchy, animateHierarchyAndWait, animateHierarchyFade, animateHierarchyFadeAndWait, animateLayout, animateLayoutAndWait, animateLayoutFade, animateLayoutFadeAndWait, animateUnlayout, animateUnlayoutAndWait, applyRTL, cancelRepaints, clearClientProperties, constrainHeightWhenScrollable, constrainWidthWhenScrollable, contains, createAnimateHierarchy, createAnimateHierarchyFade, createAnimateLayout, createAnimateLayoutFade, createAnimateLayoutFadeAndWait, createAnimateMotion, createAnimateUnlayout, createReplaceTransition, dragInitiated, drop, encloseIn, encloseIn, findDropTargetAt, findFirstFocusable, fireClicked, flushReplace, forceRevalidate, getBottomGap, getChildrenAsList, getClosestComponentTo, getComponentAt, getComponentAt, getComponentCount, getComponentIndex, getGridPosX, getGridPosY, getLayout, getLayoutHeight, getLayoutWidth, getLeadComponent, getLeadParent, getResponderAt, getSafeAreaRoot, getScrollIncrement, getSideGap, getUIManager, initLaf, invalidate, isEnabled, isSafeArea, isSafeAreaRoot, isScrollableX, isScrollableY, isSelectableInteraction, isSurface, iterator, iterator, keyPressed, keyReleased, layoutContainer, morph, morphAndWait, paint, paintComponentBackground, paintGlass, paramString, pointerPressed, refreshTheme, removeAll, removeComponent, replace, replace, replaceAndWait, replaceAndWait, replaceAndWait, revalidate, revalidateLater, revalidateWithAnimationSafety, scrollComponentToVisible, setCellRenderer, setEnabled, setLayout, setLeadComponent, setSafeArea, setSafeAreaRoot, setScrollable, setScrollableX, setScrollableY, setScrollIncrement, setShouldCalcPreferredSize, setShouldLayout, setUIManager, updateTabIndices`

  ### Methods inherited from class Component

  `accessibilityChanged, accessibilityChanged, addContextMenuListener, addDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addMouseWheelListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, addStylusListener, animate, announceForAccessibility, bindProperty, blocksSideSwipe, calcScrollSize, contains, containsOrOwns, createStyleAnimation, deinitialize, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, drawDraggedImage, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAccessibilityNode, getAccessibilityText, getAllStyles, getAnimationManager, getBaseline, getBaselineResizeBehavior, getBindablePropertyNames, getBindablePropertyTypes, getBorder, getBoundPropertyValue, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragRegionStatus, getDragSpeed, getDragTransparency, getEditingDelegate, 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, getPreferredTabIndex, getPreferredW, getPressedStyle, getSameHeight, getSameWidth, getScrollable, getScrollAnimationSpeed, getScrollDimension, getScrollOpacity, getScrollOpacityChangeSpeed, getScrollX, getScrollY, getSelectCommandText, getSelectedRect, getSelectedStyle, getSemantics, getStyle, getTabIndex, getTensileLength, getTextSelectionSupport, getTooltip, getUIID, getUnselectedStyle, getVisibleBounds, getVisibleBounds, getWidth, getX, getY, growShrink, handlesInput, hasFixedPreferredSize, hasFocus, hideNativeOverlay, initComponent, initCustomStyle, initDisabledStyle, initPressedStyle, initSelectedStyle, initUnselectedStyle, installDefaultPainter, isAlwaysTensile, isBlockLead, isCellRenderer, isChildOf, isDragActivated, isDragAndDropOperation, isDraggable, isDragRegion, isDropTarget, isEditable, isEditing, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isHScrollThumbGrabbed, isHScrollThumbHover, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isStickyDrag, isTactileTouch, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, isVScrollThumbGrabbed, isVScrollThumbHover, keyRepeated, laidOut, longKeyPress, longPointerPress, onScrollX, onScrollY, onSetFocusable, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerDragged, pointerHover, pointerHoverPressed, pointerHoverReleased, pointerPressed, pointerReleased, pointerReleased, putClientProperty, refreshTheme, refreshTheme, remove, removeContextMenuListener, removeDragFinishedListener, removeDragOverListener, removeDropListener, removeFocusListener, removeLongPressListener, removeMouseWheelListener, removePointerDraggedListener, removePointerPressedListener, removePointerReleasedListener, removeScrollListener, removeStateChangeListener, removeStylusListener, repaint, repaint, requestFocus, resetFocusable, respondsToPointerEvents, rotation, scrollRectToVisible, scrollRectToVisible, setAccessibilityText, setAlwaysTensile, setBlockLead, setBoundPropertyValue, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHandlesInput, setHeight, setHidden, setHidden, setHideInLandscape, setHideInPortrait, setHorizontalScrollBounds, setIgnorePointerEvents, setInitialized, setInlineAllStyles, setInlineDisabledStyles, setInlinePressedStyles, setInlineSelectedStyles, setInlineStylesTheme, setInlineUnselectedStyles, setIsScrollVisible, setLabelForComponent, setName, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setOpaque, setOwner, setPinchBlocksDragAndDrop, setPreferredH, setPreferredSize, setPreferredSizeStr, setPreferredTabIndex, setPreferredW, setPressedStyle, setPullToRefresh, setRippleEffect, setRTL, setSameHeight, setSameSize, setSameWidth, setScrollAnimationSpeed, setScrollOpacityChangeSpeed, setScrollSize, setScrollVisible, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setSize, setSmoothScrolling, setSnapToGrid, setTabIndex, setTactileTouch, setTensileDragEnabled, setTensileLength, setTooltip, setTraversable, setUIID, setUIID, setUIIDFinal, setUnselectedStyle, setVerticalScrollBounds, setVisible, setWidth, setX, setY, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, shouldRenderComponentSelection, showNativeOverlay, startEditingAsync, stopEditing, stripMarginAndPadding, styleChanged, toImage, toString, unbindProperty, updateNativeOverlay, visibleBoundsContains`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface Iterable

  `forEach`

- ## Constructor Details

  - ### AutoCompleteTextComponent

    public AutoCompleteTextComponent(ListModel<String> listModel, AutoCompleteTextComponent.AutoCompleteFilter customFilter)

    This constructor allows us to create an AutoCompleteTextComponent with the given listModel and customFilter

    ###### Parameters

    - `listModel`

    - `customFilter`

- ## Method Details

  - ### getField

    public TextField getField()

    Allows us to invoke setters/getters and bind listeners to the text field

    ###### Returns

    the text field instance

    Overrides:
      `getField` in class `TextComponent`

  - ### getEditor

    public final Component getEditor()

    Returns the editor component e.g. text field picker etc.

    ###### Returns

    the editor component

    Overrides:
      `getEditor` in class `TextComponent`

  - ### isFocusAnimation

    public boolean isFocusAnimation()

    The focus animation mode forces the hint and text to be identical and animates the hint to the label when focus is in the text field as is common on Android. This can be customized using the theme constant `textComponentAnimBool` which is true by default on Android. Notice that this is designed for the `onTopMode` and might not work if that is set to false...

    ###### Returns

    true if the text should be on top

    Overrides:
      `isFocusAnimation` in class `TextComponent`

  - ### focusAnimation

    public AutoCompleteTextComponent focusAnimation(boolean focusAnimation)

    The focus animation mode forces the hint and text to be identical and animates the hint to the label when focus is in the text field as is common on Android. This can be customized using the theme constant `textComponentAnimBool` which is true by default on Android. Notice that this is designed for the `onTopMode` and might not work if that is set to false...

    ###### Parameters

    - `focusAnimation`: @param focusAnimation true for the label to animate into place on focus, false otherwise

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `focusAnimation` in class `TextComponent`

  - ### text

    public AutoCompleteTextComponent text(String text)

    Sets the text of the field

    ###### Parameters

    - `text`: the text

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `text` in class `TextComponent`

  - ### onTopMode

    public AutoCompleteTextComponent onTopMode(boolean onTopMode)

    Overridden for covariant return type

    Overridden for covariant return type

    Sets the on top mode which places the label above the text when true. It's to the left of the text otherwise (right in bidi languages). This is determined by the platform theme using the `textComponentOnTopBool` theme constant which defaults to false

    ###### Parameters

    - `onTopMode`: true for the label to be above the text

    ###### Returns

    this for chaining calls E.g. `TextComponent tc = new TextComponent().text("Text").label("Label");`

    Overrides:
      `onTopMode` in class `TextComponent`

  - ### descriptionMessage

    public AutoCompleteTextComponent descriptionMessage(String descriptionMessage)

    Overridden for covariant return type

    Overridden for covariant return type

    Sets the text of the description label which currently only applies in the onTop mode. This text occupies the same space as the error message and thus hides when there's an error

    ###### Parameters

    - `descriptionMessage`: the text

    ###### Returns

    this for chaining calls E.g. `TextComponent tc = new TextComponent().text("Text").label("Label");`

    Overrides:
      `descriptionMessage` in class `TextComponent`

  - ### errorMessage

    public AutoCompleteTextComponent errorMessage(String errorMessage)

    Overridden for covariant return type

    Overridden for covariant return type

    Sets the text of the error label

    ###### Parameters

    - `errorMessage`: the text

    ###### Returns

    this for chaining calls E.g. `TextComponent tc = new TextComponent().text("Text").label("Label");`

    Overrides:
      `errorMessage` in class `TextComponent`

  - ### label

    public AutoCompleteTextComponent label(String text)

    Overridden for covariant return type *

    Overridden for covariant return type

    Sets the text of the label

    ###### Parameters

    - `text`: the text

    ###### Returns

    this for chaining calls E.g. `TextComponent tc = new TextComponent().text("Text").label("Label");`

    }

    Overrides:
      `label` in class `TextComponent`

  - ### labelAndHint

    public AutoCompleteTextComponent labelAndHint(String text)

    Convenience method for setting the label and hint together

    ###### Parameters

    - `text`: the text and hint

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `labelAndHint` in class `TextComponent`

  - ### hint

    public AutoCompleteTextComponent hint(String hint)

    Sets the hint of the field

    ###### Parameters

    - `hint`: the text of the hint

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `hint` in class `TextComponent`

  - ### hint

    public AutoCompleteTextComponent hint(Image hint)

    Sets the hint of the field

    ###### Parameters

    - `hint`: the icon for the hint

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `hint` in class `TextComponent`

  - ### multiline

    public AutoCompleteTextComponent multiline(boolean multiline)

    Sets the text field to multiline or single line

    ###### Parameters

    - `multiline`: true for multiline, false otherwise

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `multiline` in class `TextComponent`

  - ### columns

    public AutoCompleteTextComponent columns(int columns)

    Sets the columns in the text field

    ###### Parameters

    - `columns`: @param columns the number of columns which is used for preferred size calculations

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `columns` in class `TextComponent`

  - ### rows

    public AutoCompleteTextComponent rows(int rows)

    Sets the rows in the text field

    ###### Parameters

    - `rows`: @param rows the number of rows which is used for preferred size calculations

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `rows` in class `TextComponent`

  - ### constraint

    public AutoCompleteTextComponent constraint(int constraint)

    Sets the constraint for text input matching the constraints from the text area class

    ###### Parameters

    - `constraint`: @param constraint one of the constants from the `com.codename1.ui.TextArea` class see `com.codename1.ui.TextArea#setConstraint(int)`

    ###### Returns

    this for chaining calls E.g. `AutoCompleteTextComponent tc = new AutoCompleteTextComponent().text("Text").label("Label");`

    Overrides:
      `constraint` in class `TextComponent`

  - ### getAutoCompleteField

    public AutoCompleteTextField getAutoCompleteField()

    Allows us to invoke setters/getters and bind listeners to the text field

    ###### Returns

    the text field instance

  - ### getPropertyNames

    public 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

    ###### Returns

    the property names allowing mutation

    Overrides:
      `getPropertyNames` in class `TextComponent`

  - ### getPropertyTypes

    public Class[] getPropertyTypes()

    Matches the property names method (see that method for further details).

    ###### Returns

    the types of the properties

    Overrides:
      `getPropertyTypes` in class `TextComponent`

  - ### getPropertyTypeNames

    public 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

    ###### Returns

    Array of type names

    Overrides:
      `getPropertyTypeNames` in class `TextComponent`

  - ### getPropertyValue

    public Object getPropertyValue(String name)

    Returns the current value of the property name, this method is used by the GUI builder

    ###### Parameters

    - `name`: the name of the property

    ###### Returns

    the value of said property

    Overrides:
      `getPropertyValue` in class `TextComponent`

  - ### setPropertyValue

    public String setPropertyValue(String name, Object value)

    Sets a new value to the given property, returns an error message if failed and null if successful. Notice that some builtin properties such as "$designMode" might be sent to components to indicate application state.

    ###### Parameters

    - `name`: the name of the property

    - `value`: new value for the property

    ###### Returns

    error message or null

    Overrides:
      `setPropertyValue` in class `TextComponent`

  - ### getText

    public String getText()

    Returns the text in the field `com.codename1.ui.TextArea#getText()`

    ###### Returns

    the text

    Overrides:
      `getText` in class `TextComponent`