]> source.dussan.org Git - vaadin-framework.git/commitdiff
Test for form with nested properties
authorArtur Signell <artur@vaadin.com>
Mon, 19 Dec 2011 14:01:26 +0000 (16:01 +0200)
committerArtur Signell <artur@vaadin.com>
Mon, 19 Dec 2011 14:41:09 +0000 (16:41 +0200)
tests/testbench/com/vaadin/tests/fieldbinder/AbstractBeanFieldBinderTest.java [new file with mode: 0644]
tests/testbench/com/vaadin/tests/fieldbinder/FormWithNestedProperties.java [new file with mode: 0644]

diff --git a/tests/testbench/com/vaadin/tests/fieldbinder/AbstractBeanFieldBinderTest.java b/tests/testbench/com/vaadin/tests/fieldbinder/AbstractBeanFieldBinderTest.java
new file mode 100644 (file)
index 0000000..b35d859
--- /dev/null
@@ -0,0 +1,96 @@
+package com.vaadin.tests.fieldbinder;\r
+\r
+import com.vaadin.data.fieldbinder.BeanFieldBinder;\r
+import com.vaadin.data.fieldbinder.FieldBinder.CommitException;\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.tests.util.Log;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+import com.vaadin.ui.Root;\r
+\r
+public abstract class AbstractBeanFieldBinderTest extends TestBase {\r
+\r
+    private Button commitButton;\r
+    protected Log log = new Log(5);\r
+\r
+    private Button discardButton;\r
+    private Button showBeanButton;\r
+    private BeanFieldBinder fieldBinder;\r
+\r
+    @Override\r
+    protected void setup() {\r
+        addComponent(log);\r
+    }\r
+\r
+    protected Button getDiscardButton() {\r
+        if (discardButton == null) {\r
+            discardButton = new Button("Discard", new Button.ClickListener() {\r
+\r
+                public void buttonClick(ClickEvent event) {\r
+                    getFieldBinder().discard();\r
+                    log.log("Discarded changes");\r
+\r
+                }\r
+            });\r
+        }\r
+        return discardButton;\r
+    }\r
+\r
+    protected Button getShowBeanButton() {\r
+        if (showBeanButton == null) {\r
+            showBeanButton = new Button("Show bean values",\r
+                    new Button.ClickListener() {\r
+\r
+                        public void buttonClick(ClickEvent event) {\r
+                            log.log(getFieldBinder().getItemDataSource()\r
+                                    .getBean().toString());\r
+\r
+                        }\r
+                    });\r
+        }\r
+        return showBeanButton;\r
+    }\r
+\r
+    protected Button getCommitButton() {\r
+        if (commitButton == null) {\r
+            commitButton = new Button("Commit");\r
+            commitButton.addListener(new ClickListener() {\r
+\r
+                public void buttonClick(ClickEvent event) {\r
+                    String msg = "Commit succesful";\r
+                    try {\r
+                        getFieldBinder().commit();\r
+                    } catch (CommitException e) {\r
+                        msg = "Commit failed: " + e.getMessage();\r
+                    }\r
+                    Root.getCurrentRoot().showNotification(msg);\r
+                    log.log(msg);\r
+\r
+                }\r
+            });\r
+        }\r
+        return commitButton;\r
+    }\r
+\r
+    protected BeanFieldBinder getFieldBinder() {\r
+        return fieldBinder;\r
+    }\r
+\r
+    protected void setFieldBinder(BeanFieldBinder beanFieldBinder) {\r
+        fieldBinder = beanFieldBinder;\r
+    }\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+}\r
diff --git a/tests/testbench/com/vaadin/tests/fieldbinder/FormWithNestedProperties.java b/tests/testbench/com/vaadin/tests/fieldbinder/FormWithNestedProperties.java
new file mode 100644 (file)
index 0000000..0d29cc3
--- /dev/null
@@ -0,0 +1,68 @@
+package com.vaadin.tests.fieldbinder;\r
+\r
+import com.vaadin.data.fieldbinder.BeanFieldBinder;\r
+import com.vaadin.data.fieldbinder.FormBuilder;\r
+import com.vaadin.data.fieldbinder.PropertyId;\r
+import com.vaadin.tests.data.bean.Address;\r
+import com.vaadin.tests.data.bean.Country;\r
+import com.vaadin.tests.data.bean.Person;\r
+import com.vaadin.tests.data.bean.Sex;\r
+import com.vaadin.tests.util.Log;\r
+import com.vaadin.ui.CheckBox;\r
+import com.vaadin.ui.NativeSelect;\r
+import com.vaadin.ui.TextField;\r
+\r
+public class FormWithNestedProperties extends AbstractBeanFieldBinderTest {\r
+\r
+    private Log log = new Log(5);\r
+\r
+    private TextField firstName = new TextField("First name");\r
+    private TextField lastName = new TextField("Last name");\r
+    private TextField email = new TextField("Email");\r
+    private TextField age = new TextField("Age");\r
+\r
+    @PropertyId("address.streetAddress")\r
+    private TextField streetAddress = new TextField("Street address");\r
+    private NativeSelect country;\r
+\r
+    private CheckBox deceased = new CheckBox("Deceased");\r
+\r
+    @Override\r
+    protected void setup() {\r
+        super.setup();\r
+\r
+        setFieldBinder(new BeanFieldBinder<Person>(Person.class));\r
+        getFieldBinder().bindFields(this);\r
+        country = new FormBuilder(getFieldBinder()).buildAndBind("country",\r
+                "address.country", NativeSelect.class);\r
+        addComponent(firstName);\r
+        addComponent(lastName);\r
+        addComponent(streetAddress);\r
+        addComponent(country);\r
+        addComponent(email);\r
+        addComponent(age);\r
+        addComponent(deceased);\r
+        addComponent(getCommitButton());\r
+        addComponent(getDiscardButton());\r
+        addComponent(getShowBeanButton());\r
+\r
+        getFieldBinder().setItemDataSource(\r
+                new Person("First", "Last", "Email", 52, Sex.FEMALE,\r
+                        new Address("street address", 01234, "City",\r
+                                Country.FINLAND)));\r
+\r
+    }\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+}\r