org.apache.wicket.extensions.ajax.markup.html.autocomplete
Class AutoCompleteTextField<T>

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

public abstract class AutoCompleteTextField<T>
extends 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:
DefaultCssAutoCompleteTextField, AutoCompleteBehavior, IAutoCompleteRenderer, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.markup.html.form.AbstractTextComponent
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_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
AutoCompleteTextField(String id)
          Constructor.
AutoCompleteTextField(String id, AutoCompleteSettings settings)
          Constructor.
AutoCompleteTextField(String id, Class<T> type)
          Constructor for the given type with default settings.
AutoCompleteTextField(String id, Class<T> type, IAutoCompleteRenderer<T> renderer)
          Constructor for the given type using the given renderer
AutoCompleteTextField(String id, IAutoCompleteRenderer<T> renderer)
          Constructor using the given renderer.
AutoCompleteTextField(String id, IModel<T> model)
          Constructor for the given model.
AutoCompleteTextField(String id, IModel<T> model, AutoCompleteSettings settings)
          Constructor for given model.
AutoCompleteTextField(String id, IModel<T> model, Class<T> type, AutoCompleteSettings settings)
          Constructor for the given model and type.
AutoCompleteTextField(String id, IModel<T> model, Class<T> type, IAutoCompleteRenderer<T> renderer, AutoCompleteSettings settings)
          Constructor for the given model using the given renderer.
AutoCompleteTextField(String id, IModel<T> model, IAutoCompleteRenderer<T> renderer)
          Constructor for the given model using the given renderer.
 
Method Summary
 IAutoCompleteRenderer<T> getChoiceRenderer()
           
protected abstract  Iterator<T> getChoices(String input)
          Callback method that should return an iterator over all possible assist choice objects.
protected  AutoCompleteBehavior<T> newAutoCompleteBehavior(IAutoCompleteRenderer<T> renderer, AutoCompleteSettings settings)
          Factory method for autocomplete behavior that will be added to this textfield
protected  void onComponentTag(ComponentTag tag)
           
protected  void onInitialize()
          Initializes the AutoCompleteBehavior if it is not already there.
 
Methods inherited from class org.apache.wicket.markup.html.form.TextField
getInputType
 
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, getModel, getModelObject, getModelValue, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDetach, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModel, setModelObject, setModelValue, setRequired, setType, shouldTrimInput, trim, 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
getWebPage, getWebRequest, getWebResponse, getWebSession
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, 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, 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, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onConfigure, onEvent, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderHead, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

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,
                             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,
                             IModel<T> model,
                             AutoCompleteSettings settings)
Constructor for given model.

Parameters:
id - component id
model - model
settings - settings for autocomplete

AutoCompleteTextField

public AutoCompleteTextField(String id,
                             IModel<T> model)
Constructor for the given model.

Parameters:
id - component id
model - model

AutoCompleteTextField

public AutoCompleteTextField(String id,
                             AutoCompleteSettings settings)
Constructor.

Parameters:
id - component id
settings - settings for autocomplete

AutoCompleteTextField

public AutoCompleteTextField(String id)
Constructor.

Parameters:
id - component id

AutoCompleteTextField

public AutoCompleteTextField(String id,
                             IAutoCompleteRenderer<T> renderer)
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,
                             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,
                             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 Detail

newAutoCompleteBehavior

protected AutoCompleteBehavior<T> newAutoCompleteBehavior(IAutoCompleteRenderer<T> renderer,
                                                          AutoCompleteSettings settings)
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

onInitialize

protected void onInitialize()
Initializes the AutoCompleteBehavior if it is not already there.

Overrides:
onInitialize in class Component

onComponentTag

protected void onComponentTag(ComponentTag tag)
Overrides:
onComponentTag in class 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:
AutoCompleteBehavior.getChoices(String)

getChoiceRenderer

public final IAutoCompleteRenderer<T> getChoiceRenderer()
Returns:
The IAutoCompleteRenderer used to generate html output for the AutoCompleteBehavior.


Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.