![JAR search and dependency download from the Maven repository](/logo.png)
org.wicketstuff.datatable_autocomplete.button.DTAButton 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.
The newest version!
/*
*
* ==============================================================================
* 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.button;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.model.Model;
import org.wicketstuff.datatable_autocomplete.form.action.IFormOnSubmitAction;
/**
* @author mocleiri
*
* Data Table Autocomplete button that extends the standard wicket button to support
* IOnFormSubmitAction actions.
*
*/
public class DTAButton extends Button implements DTAButtonProvider
{
/**
*
*/
private static final long serialVersionUID = 1829825558587963971L;
private IFormOnSubmitAction submitAction = null;
/**
* @param id
*/
public DTAButton(String id, String label, IFormOnSubmitAction submitAction)
{
super(id, Model.of(label));
this.submitAction = submitAction;
}
public DTAButton(String id, String label)
{
this(id, label, null);
}
/*
* (non-Javadoc)
*
* @see
* org.apache.wicket.markup.html.form.Button#onComponentTag(org.apache.wicket.markup.ComponentTag
* )
*/
@Override
protected void onComponentTag(ComponentTag tag)
{
// this allows the button to be used in a repeater
tag.setName("input");
tag.setHasNoCloseTag(true);
super.onComponentTag(tag);
tag.getAttributes().put("type", "submit");
}
/*
* (non-Javadoc)
*
* @see org.apache.wicket.markup.html.form.Button#onSubmit()
*/
@Override
public void onSubmit()
{
if (submitAction != null)
submitAction.onSubmit(null, getForm());
}
/**
* @param submitAction
* the submitAction to set
*/
public void setSubmitAction(IFormOnSubmitAction submitAction)
{
this.submitAction = submitAction;
}
/*
* (non-Javadoc)
*
* @see org.apache.wicket.Component#onBeforeRender()
*/
@Override
protected void onBeforeRender()
{
/*
* Defaults to hidden if there is no action defined.
*/
if (submitAction == null)
setVisible(false);
else
setVisible(true);
super.onBeforeRender();
}
public Button getButton()
{
if (!getId().equals(DTAButtonProvider.BUTTON_ID))
{
// this is a problem
throw new RuntimeException("ID of button (" + getId() +
" != DTAButtonProvider.BUTTON_ID");
}
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy