package org.vaadin.touchkit.itest;
import org.vaadin.touchkit.AbstractTouchKitIntegrationTest;
import org.vaadin.touchkit.extensions.Html5InputSettings;
import org.vaadin.touchkit.ui.VerticalComponentGroup;
import com.vaadin.v7.data.fieldgroup.FieldGroup;
import com.vaadin.v7.data.fieldgroup.FieldGroup.CommitException;
import com.vaadin.v7.data.util.BeanItem;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.v7.ui.TextField;
public class Html5InputExtensionTest extends AbstractTouchKitIntegrationTest {
public Html5InputExtensionTest() {
setDescription("Test TextField extension that controls various html5 stuff.");
final TextField textField = new TextField("Field");
addComponent(textField);
VerticalComponentGroup verticalComponentGroup = new VerticalComponentGroup(
"Html5 settings");
final Html5InputSettings html5InputSettings = new Html5InputSettings(
textField);
html5InputSettings.setPlaceholder("this is test field");
BeanItem<Html5InputSettings> beanItem = new BeanItem<Html5InputSettings>(
html5InputSettings);
final FieldGroup fieldGroup = new FieldGroup(beanItem);
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("autoComplete"));
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("autoCorrect"));
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("autoCapitalize"));
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("placeholder"));
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("min"));
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("max"));
verticalComponentGroup.addComponent(fieldGroup
.buildAndBind("step"));
final TextField any = new TextField();
any.setNullRepresentation("");
any.setCaption("Custom property");
any.setInputPrompt("key:value");
verticalComponentGroup.addComponent(any);
Button button = new Button();
button.setCaption("Apply");
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
try {
fieldGroup.commit();
String value = any.getValue();
if (value != null) {
String[] split = value.split(":");
html5InputSettings.setProperty(split[0], split[1]);
any.setValue(null);
}
} catch (CommitException e) {
e.printStackTrace();
}
}
});
verticalComponentGroup.addComponent(button);
addComponent(verticalComponentGroup);
}
}