package org.vaadin.touchkit.itest.oldtests;
import java.io.Serializable;
import org.vaadin.touchkit.AbstractTouchKitIntegrationTest;
import org.vaadin.touchkit.ui.NavigationView;
import org.vaadin.touchkit.ui.VerticalComponentGroup;
import com.vaadin.v7.data.Item;
import com.vaadin.v7.data.util.BeanItem;
import com.vaadin.ui.Component;
import com.vaadin.v7.ui.DefaultFieldFactory;
import com.vaadin.v7.ui.Field;
import com.vaadin.v7.ui.Form;
import com.vaadin.v7.ui.Label;
import com.vaadin.v7.ui.NativeSelect;
public class MeetingRoomView extends AbstractTouchKitIntegrationTest {
public MeetingRoomView() {
addComponent(new RootView());
}
public class RootView extends NavigationView implements Component {
private MeetingRoom myRoom;
private MeetingRoomForm myForm;
public RootView() {
setCaption("Form test");
VerticalComponentGroup verticalComponentGroup = new VerticalComponentGroup();
myRoom = new MeetingRoom("Grand A", "Ballroom");
Label myLabel = new Label();
myLabel.setValue("Very important info.");
myLabel.setCaption("Title:");
verticalComponentGroup.addComponent(myLabel);
myForm = new MeetingRoomForm();
myForm.setItemDataSource(new BeanItem<MeetingRoom>(myRoom));
myForm.setBuffered(true);
// myForm.setWriteThrough(true);
myForm.setImmediate(true);
verticalComponentGroup.addComponent(myForm);
setContent(verticalComponentGroup);
}
}
public class MeetingRoomForm extends Form {
NativeSelect roomTypes;
public MeetingRoomForm() {
setFormFieldFactory(new DefaultFieldFactory() {
@Override
public Field createField(Item item, Object propertyId,
Component uiContext) {
Field field = super
.createField(item, propertyId, uiContext);
if (propertyId.equals("roomType")) {
roomTypes = new NativeSelect("Room Type");
roomTypes.setNewItemsAllowed(false);
roomTypes.setNullSelectionAllowed(false);
getRoomTypes();
field = roomTypes;
return field;
} else {
return null;
}
}
});
}
private void getRoomTypes() {
roomTypes.removeAllItems();
roomTypes.addItem("Ballroom");
roomTypes.addItem("Conference Room");
roomTypes.addItem("Suite");
roomTypes.addItem("Meeting Room");
}
}
public class MeetingRoom implements Serializable {
String name;
String roomType;
public MeetingRoom(String name, String roomType) {
this.name = name;
this.roomType = roomType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRoomType() {
return roomType;
}
public void setRoomType(String roomType) {
this.roomType = roomType;
}
}
}