java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
org.apache.wicket.markup.html.form.FormComponent<T>
org.apache.wicket.markup.html.form.AbstractTextComponent<T>
org.apache.wicket.markup.html.form.TextField<T>
org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField<T>
Type Parameters:
T - The model object type
All Implemented Interfaces:
Serializable, Iterable<org.apache.wicket.Component>, org.apache.wicket.event.IEventSink, org.apache.wicket.event.IEventSource, org.apache.wicket.feedback.IFeedbackContributor, org.apache.wicket.IConverterLocator, org.apache.wicket.IGenericComponent<T,org.apache.wicket.markup.html.form.FormComponent<T>>, org.apache.wicket.IMetadataContext<Serializable,org.apache.wicket.Component>, org.apache.wicket.markup.html.form.IFormModelUpdateListener, org.apache.wicket.markup.html.form.IFormVisitorParticipant, org.apache.wicket.markup.html.form.ILabelProvider<String>, org.apache.wicket.markup.html.IHeaderContributor, org.apache.wicket.request.component.IRequestableComponent, org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>, org.apache.wicket.util.io.IClusterable
Direct Known Subclasses:
DefaultCssAutoCompleteTextField

public abstract class AutoCompleteTextField<T> extends org.apache.wicket.markup.html.form.TextField<T>
An implementation of a textfield with the autoassist ajax behavior AutoCompleteBehavior.

An IAutoCompleteRenderer is used for rendering of choices. To convert input back into a non-String type you will have to provide a custom IConverter, either by overriding Component.getConverter(Class) or by setting a suitable IConverter on the application's ConverterLocator.

Note that you must add your own CSS to make the suggestion display properly, see DefaultCssAutoCompleteTextField for an example.

Since:
1.2
Author:
Igor Vaynberg (ivaynberg)
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.wicket.markup.html.form.AbstractTextComponent

    org.apache.wicket.markup.html.form.AbstractTextComponent.ITextFormatProvider
  • Field Summary

    Fields inherited from class org.apache.wicket.markup.html.form.FormComponent

    FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATOR

    Fields inherited from class org.apache.wicket.Component

    ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
    Constructor for the given type with default settings.
    Constructor for the given type using the given renderer
    Constructor.
    Constructor using the given renderer.
    AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model)
    Constructor for the given model.
    AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, Class<T> type, AutoCompleteSettings settings)
    Constructor for the given model and type.
    AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, Class<T> type, IAutoCompleteRenderer<T> renderer, AutoCompleteSettings settings)
    Constructor for the given model using the given renderer.
    AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, AutoCompleteSettings settings)
    Constructor for given model.
    AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, IAutoCompleteRenderer<T> renderer)
    Constructor for the given model using the given renderer.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    protected abstract Iterator<T>
    Callback method that should return an iterator over all possible assist choice objects.
    Factory method for autocomplete behavior that will be added to this textfield
    protected void
    onComponentTag(org.apache.wicket.markup.ComponentTag tag)
     
    protected void
     
    protected void
    Initializes the AutoCompleteBehavior if it is not already there.
    protected void
    updateAjaxAttributes(org.apache.wicket.ajax.attributes.AjaxRequestAttributes attributes)
     

    Methods inherited from class org.apache.wicket.markup.html.form.TextField

    getInputTypes

    Methods inherited from class org.apache.wicket.markup.html.form.AbstractTextComponent

    convertInput, getConvertEmptyInputStringToNull, isInputNullable, onBeforeRender, setConvertEmptyInputStringToNull

    Methods inherited from class org.apache.wicket.markup.html.form.FormComponent

    add, add, checkRequired, clearInput, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputAsArray, getInputName, getModelValue, getParameterValues, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isFormParticipant, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, setType, shouldTrimInput, trim, updateAutoLabels, updateAutoLabels, updateCollectionModel, updateModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrder

    Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer

    getLabel

    Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer

    getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession

    Methods inherited from class org.apache.wicket.MarkupContainer

    add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren

    Methods inherited from class org.apache.wicket.Component

    add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface org.apache.wicket.IGenericComponent

    getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Constructor Details

    • AutoCompleteTextField

      public AutoCompleteTextField(String id, Class<T> type)
      Constructor for the given type with default settings.
      Parameters:
      id - component id
      type - model objec type
    • AutoCompleteTextField

      public AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, Class<T> type, AutoCompleteSettings settings)
      Constructor for the given model and type.
      Parameters:
      id - component id
      model - model
      type - model object type
      settings - settings for autocomplete
    • AutoCompleteTextField

      public AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, AutoCompleteSettings settings)
      Constructor for given model.
      Parameters:
      id - component id
      model - model
      settings - settings for autocomplete
    • AutoCompleteTextField

      public AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model)
      Constructor for the given model.
      Parameters:
      id - component id
      model - model
    • AutoCompleteTextField

      Constructor.
      Parameters:
      id - component id
      settings - settings for autocomplete
    • AutoCompleteTextField

      Constructor.
      Parameters:
      id - component id
    • AutoCompleteTextField

      Constructor using the given renderer.
      Parameters:
      id - component id
      renderer - renderer for autocomplete
    • AutoCompleteTextField

      public AutoCompleteTextField(String id, Class<T> type, IAutoCompleteRenderer<T> renderer)
      Constructor for the given type using the given renderer
      Parameters:
      id - component id
      type - model object type
      renderer - renderer for autocomplete
    • AutoCompleteTextField

      public AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, IAutoCompleteRenderer<T> renderer)
      Constructor for the given model using the given renderer.
      Parameters:
      id - component id
      model - model
      renderer - renderer for autocomplete
    • AutoCompleteTextField

      public AutoCompleteTextField(String id, org.apache.wicket.model.IModel<T> model, Class<T> type, IAutoCompleteRenderer<T> renderer, AutoCompleteSettings settings)
      Constructor for the given model using the given renderer.
      Parameters:
      id - component id
      model - model
      type - model object type
      renderer - renderer for autocomplete
      settings - settings for autocomplete
  • Method Details

    • newAutoCompleteBehavior

      Factory method for autocomplete behavior that will be added to this textfield
      Parameters:
      renderer - auto complete renderer
      settings - auto complete settings
      Returns:
      auto complete behavior
    • updateAjaxAttributes

      protected void updateAjaxAttributes(org.apache.wicket.ajax.attributes.AjaxRequestAttributes attributes)
    • onInitialize

      protected void onInitialize()
      Initializes the AutoCompleteBehavior if it is not already there.
      Overrides:
      onInitialize in class org.apache.wicket.MarkupContainer
    • onComponentTag

      protected void onComponentTag(org.apache.wicket.markup.ComponentTag tag)
      Overrides:
      onComponentTag in class org.apache.wicket.markup.html.form.TextField<T>
    • getChoices

      protected abstract Iterator<T> getChoices(String input)
      Callback method that should return an iterator over all possible assist choice objects. These objects will be passed to the renderer to generate output. Usually it is enough to return an iterator over strings.
      Parameters:
      input - current input
      Returns:
      iterator over all possible choice objects
      See Also:
    • getChoiceRenderer

      Returns:
      The IAutoCompleteRenderer used to generate html output for the AutoCompleteBehavior.
    • onDetach

      protected void onDetach()
      Overrides:
      onDetach in class org.apache.wicket.markup.html.form.FormComponent<T>