/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.explorer.client.binding;
import java.util.ArrayList;
import java.util.List;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.SimpleBeanEditorDriver;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.core.client.util.DateWrapper;
import com.sencha.gxt.examples.resources.client.model.Kid;
import com.sencha.gxt.examples.resources.client.model.Person;
import com.sencha.gxt.explorer.client.model.Example.Detail;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.button.TextButton;
@Detail(name="List Property Binding", category="Binding", classes = {PersonEditor.class, Person.class, Kid.class}, icon = "listpropertybinding")
public class ListPropertyBindingExample implements EntryPoint, IsWidget {
interface Driver extends SimpleBeanEditorDriver<Person, PersonEditor> {}
private Driver driver = GWT.create(Driver.class);
@Override
public Widget asWidget() {
FramedPanel panel = new FramedPanel();
panel.setHeadingText("Model with List Property");
panel.setBodyBorder(false);
panel.setWidth(400);
panel.addStyleName("margin-10");
PersonEditor personEditor = new PersonEditor();
driver.initialize(personEditor);
panel.setWidget(personEditor);
panel.addButton(new TextButton("Save"));
Person person = new Person("Darrell Meyer", "Sencha Inc", "GXT", "Washington, DC", 9.99);
List<Kid> kids = new ArrayList<Kid>();
kids.add(new Kid("Alec", 4, new DateWrapper(2004, 1, 1).asDate()));
kids.add(new Kid("Lia", 2, new DateWrapper(2005, 1, 1).asDate()));
kids.add(new Kid("Andrew", 1, new DateWrapper(2007, 1, 1).asDate()));
person.setKids(kids);
driver.edit(person);
return panel;
}
@Override
public void onModuleLoad() {
RootPanel.get().add(this);
}
}