/*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.apache.wicket.extensions.ajax.markup.html.autocomplete;
 
 
An implementation of a textfield with the autoassist ajax behavior AutoCompleteBehavior. FIXME javadoc - constructors need proper descriptions Note that you must add your own CSS to make the suggestion display properly, see DefaultCssAutocompleteTextField for an example.

Parameters:
The model object type
Author(s):
Igor Vaynberg (ivaynberg)
Since:
1.2
See also:
DefaultCssAutocompleteTextField
AutoCompleteBehavior
IAutoCompleteRenderer
 
 public abstract class AutoCompleteTextField extends TextField
 {
 
 	private static final long serialVersionUID = 1L;

auto complete behavior attached to this textfield
 
renderer
 
 	private final IAutoCompleteRenderer renderer;

settings
 
 	private final AutoCompleteSettings settings;

Parameters:
id
type
 
 	public AutoCompleteTextField(String idClass type)
 	{
 		this(id, (IModel)nulltypefalse);
 	}

Parameters:
id
model
type
preselect the first item
 
 	public AutoCompleteTextField(String idIModel modelClass typeboolean preselect)
 	{
 		this(idmodeltype, StringAutoCompleteRenderer.INSTANCEpreselect);
 	}

Construct.

Parameters:
id
model
type
settings
 
 	public AutoCompleteTextField(String idIModel modelClass typeAutoCompleteSettings settings)
 	{
 		this(idmodeltype, StringAutoCompleteRenderer.INSTANCEsettings);
 	}

Parameters:
id
object
preselect
 
 	public AutoCompleteTextField(String idIModel objectboolean preselect)
 	{
		this(idobject, (Class)nullpreselect);
	}

Construct.

Parameters:
id
object
settings
	public AutoCompleteTextField(String idIModel objectAutoCompleteSettings settings)
	{
		this(idobject, (Class)nullsettings);
	}


Parameters:
id
object
	public AutoCompleteTextField(String idIModel object)
	{
		this(idobject, (Class)nullfalse);
	}

Parameters:
id
preselect
	public AutoCompleteTextField(String idboolean preselect)
	{
		this(id, (IModel)nullpreselect);
	}

Construct.

Parameters:
id
settings
	{
		this(id, (IModel)nullsettings);
	}

Parameters:
id
	{
		this(id, (IModel)nullfalse);
	}

Parameters:
id
renderer
	{
		this(id, (IModel)nullrenderer);
	}

Parameters:
id
type
renderer
	{
		this(idnulltyperendererfalse);
	}

Parameters:
id
model
renderer
	public AutoCompleteTextField(String idIModel modelIAutoCompleteRenderer renderer)
	{
		this(idmodel, (Class)nullrendererfalse);
	}

Parameters:
id
model
type
renderer
preselect
	public AutoCompleteTextField(String idIModel modelClass type,
		IAutoCompleteRenderer rendererboolean preselect)
	{
		this(idmodeltyperenderernew AutoCompleteSettings().setPreselect(preselect));
	}

Constructor

Parameters:
id
model
type
renderer
settings
	public AutoCompleteTextField(String idIModel modelClass type,
	{
		super(idmodeltype);
		this.renderer = renderer;
		this.settings = 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
	{
		return new AutoCompleteBehavior(renderersettings)
		{
			private static final long serialVersionUID = 1L;
			protected Iterator getChoices(String input)
			{
				return AutoCompleteTextField.this.getChoices(input);
			}
		};
	}

	protected void onBeforeRender()
	{
		// add auto complete behavior to this component if its not already there
		if (behavior == null)
		{
			// we do this here instad of constructor so we can have an overridable factory method
			behavior = newAutoCompleteBehavior(renderersettings);
			add(behavior);
		}
	}

	protected void onComponentTag(ComponentTag tag)
	{
		super.onComponentTag(tag);
		// disable browser autocomplete
		tag.put("autocomplete""off");
	}

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(java.lang.String)
	protected abstract Iterator getChoices(String input);
	protected int getMaxHeightInPx()
	{
		return 50;
	}
New to GrepCode? Check out our FAQ X