package com.sksamuel.jqm4gwt.form.elements;
import com.google.gwt.dom.client.Document;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.TextBox;
import com.sksamuel.jqm4gwt.HasPlaceHolder;
import com.sksamuel.jqm4gwt.HasTheme;
import com.sksamuel.jqm4gwt.JQMCommon;
/**
* @author SlavaP
*
* <br> See <a href="http://demos.jquerymobile.com/1.4.5/filterable/">Filterable</a>
* <br> See <a href="http://api.jquerymobile.com/filterable/">Filterable API</a>
*
*/
public class JQMFilterable extends SimplePanel implements HasPlaceHolder<JQMFilterable>,
HasTheme<JQMFilterable> {
protected final TextBox filter;
public JQMFilterable() {
super(Document.get().createFormElement());
getElement().addClassName("ui-filterable");
filter = new TextBox();
filter.getElement().setAttribute("data-type", "search");
setFilterId(Document.get().createUniqueId());
add(filter);
}
public String getFilterId() {
return filter.getElement().getId();
}
public void setFilterId(String id) {
filter.getElement().setId(id);
}
@Override
public String getPlaceHolder() {
return filter.getElement().getAttribute(HasPlaceHolder.ATTRIBUTE_PLACEHOLDER);
}
@Override
public void setPlaceHolder(String placeHolderText) {
filter.getElement().setAttribute(HasPlaceHolder.ATTRIBUTE_PLACEHOLDER, placeHolderText);
}
@Override
public JQMFilterable withPlaceHolder(String placeHolderText) {
setPlaceHolder(placeHolderText);
return this;
}
@Override
public String getTheme() {
return JQMCommon.getTheme(filter);
}
@Override
public void setTheme(String themeName) {
JQMCommon.applyTheme(filter, themeName);
}
@Override
public JQMFilterable withTheme(String themeName) {
setTheme(themeName);
return this;
}
}