org.wicketstuff.datatable_autocomplete.panel.AbstractAutoCompleteDependencyProcessor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of wicketstuff-datatable-autocomplete Show documentation
Show all versions of wicketstuff-datatable-autocomplete Show documentation
The Datatable autocomplete project provides a Trie datastructure that allows AJAX searches on large datasets fast.
It is not memory efficient but it is fast especially to know how many results a given prefix matches.
Provides a Datatable component when tied to a textfield will show the matched objects in a table format.
/*
*
* ==============================================================================
* Licensed 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.wicketstuff.datatable_autocomplete.panel;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.wicket.Component;
import org.apache.wicket.util.time.Duration;
/**
* @author mocleiri
*
* A base implementation for the autocomplete dependency processor.
*
* Note that extendors define the components to be updated
*/
public abstract class AbstractAutoCompleteDependencyProcessor implements
AutoCompleteDependencyProcessor
{
/**
*
*/
private static final long serialVersionUID = -7293448644441764951L;
private Duration duration = null;
private Map queryParameterToComponentMap;
/**
*
*/
public AbstractAutoCompleteDependencyProcessor(String[] names, Component[] components)
{
super();
queryParameterToComponentMap = new LinkedHashMap();
for (int i = 0; i < components.length; i++)
{
String parameter = names[i];
Component component = components[i];
// to guarantee that the markupid will be generated
component.setOutputMarkupId(true);
component.setOutputMarkupPlaceholderTag(true);
queryParameterToComponentMap.put(parameter, component);
}
}
public AbstractAutoCompleteDependencyProcessor(String[] names, Component[] components,
Duration duration)
{
this(names, components);
this.duration = duration;
}
public Map getQueryParameterToComponentMap()
{
return queryParameterToComponentMap;
}
public Duration getThrottingDuration()
{
return duration;
}
}