package org.vaadin.touchkit.itest;
import com.vaadin.v7.data.Item;
import com.vaadin.v7.data.fieldgroup.FieldGroup;
import com.vaadin.v7.data.util.BeanItem;
import org.vaadin.touchkit.AbstractTouchKitIntegrationTest;
import com.vaadin.ui.Component;
import com.vaadin.v7.ui.Field;
import com.vaadin.v7.ui.Form;
import com.vaadin.v7.ui.FormFieldFactory;
import com.vaadin.ui.FormLayout;
import com.vaadin.v7.ui.NativeSelect;
public class NativeSelectInForm extends AbstractTouchKitIntegrationTest {
public static class Bean {
String aString;
public String getaString() {
return aString;
}
public void setaString(String aString) {
this.aString = aString;
}
}
public NativeSelectInForm() {
setDescription("NativeSelect in forms should work fine on Android");
BeanItem<Bean> bi = new BeanItem<Bean>(new Bean());
Form form = new Form();
form.setCaption("Old deprecated form");
form.setFormFieldFactory(new FormFieldFactory() {
@Override
public Field<?> createField(Item item, Object propertyId,
Component uiContext) {
return createNativeSelect();
}
});
form.setItemDataSource(bi);
form.setBuffered(false);
addComponent(form);
NativeSelect select = createNativeSelect();
FormLayout layout = new FormLayout();
layout.setCaption("New field group in a form layout");
layout.addComponent(select);
FieldGroup fg = new FieldGroup(bi);
fg.bind(select, "aString");
fg.setBuffered(false);
addComponent(layout);
}
private NativeSelect createNativeSelect() {
NativeSelect s = new NativeSelect();
s.addItem("Foo");
s.addItem("Bar");
s.addItem("Baz");
s.setImmediate(true);
s.setBuffered(false);
return s;
}
}