]> source.dussan.org Git - vaadin-framework.git/commitdiff
Sampler; sample modifications and a few icons.
authorMarc Englund <marc.englund@itmill.com>
Fri, 6 Feb 2009 15:21:10 +0000 (15:21 +0000)
committerMarc Englund <marc.englund@itmill.com>
Fri, 6 Feb 2009 15:21:10 +0000 (15:21 +0000)
svn changeset:6755/svn branch:trunk

src/com/itmill/toolkit/demo/sampler/FeatureSet.java
src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png [new file with mode: 0644]
src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png [new file with mode: 0644]
src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java
src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png [new file with mode: 0644]
src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png [new file with mode: 0644]
src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java
src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java [new file with mode: 0644]
src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java

index 5cd33d56f445fe0e7229ebe05e8b6a7b05a2e0a2..1314921adb66299cb76cb24fee1037dd3410aa35 100644 (file)
@@ -21,6 +21,7 @@ import com.itmill.toolkit.demo.sampler.features.dates.DateLocale;
 import com.itmill.toolkit.demo.sampler.features.dates.DatePopup;
 import com.itmill.toolkit.demo.sampler.features.dates.DateResolution;
 import com.itmill.toolkit.demo.sampler.features.form.FormBasic;
+import com.itmill.toolkit.demo.sampler.features.form.FormPojo;
 import com.itmill.toolkit.demo.sampler.features.layouts.ApplicationLayout;
 import com.itmill.toolkit.demo.sampler.features.layouts.CustomLayouts;
 import com.itmill.toolkit.demo.sampler.features.layouts.ExpandingComponent;
@@ -127,7 +128,7 @@ public class FeatureSet extends Feature {
                     new Tabsheets(), //
                     new Accordions(), //
                     new Panels(), //
-                    // new Forms(), not done yet
+                    new Forms(), // not done yet
                     new Windows(), //
                     new Tables(),//
                     new Texts(), //
@@ -260,7 +261,8 @@ public class FeatureSet extends Feature {
             super("Forms", new Feature[] {
             //        
                     new FormBasic(), //
-                    });
+                    new FormPojo(), //
+            });
         }
     }
 
diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png
new file mode 100644 (file)
index 0000000..26b29ce
Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png differ
diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png
new file mode 100644 (file)
index 0000000..058ec7d
Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png differ
index ca84439eb6a0b021344292f277db3827c112c6fb..2bbbfce8ae78f15d76dfaba63525142861a33aa9 100644 (file)
@@ -4,11 +4,22 @@ import com.itmill.toolkit.data.Validatable;
 import com.itmill.toolkit.data.Validator;
 import com.itmill.toolkit.demo.sampler.APIResource;
 import com.itmill.toolkit.demo.sampler.Feature;
+import com.itmill.toolkit.demo.sampler.FeatureSet;
 import com.itmill.toolkit.demo.sampler.NamedExternalResource;
+import com.itmill.toolkit.demo.sampler.features.form.FormPojoExample;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
 
 public class Validation extends Feature {
 
-    private static final String desc = "";
+    private static final String desc = "Fields can have Validators that check"
+            + " entered values. This is most useful when used within a Form, but"
+            + " but can be used to validate single, stand-alone Fields as well.";
+
+    @Override
+    public Component getExample() {
+        return new FormPojoExample();
+    }
 
     public String getDescription() {
         return desc;
@@ -16,16 +27,14 @@ public class Validation extends Feature {
 
     public APIResource[] getRelatedAPI() {
         return new APIResource[] { new APIResource(Validatable.class),
-                new APIResource(Validator.class) };
+                new APIResource(Validator.class), new APIResource(Form.class) };
     }
 
     public Class[] getRelatedFeatures() {
-        // TODO link form sample
-        return new Class[] { Errors.class };
+        return new Class[] { Errors.class, FeatureSet.Forms.class };
     }
 
     public NamedExternalResource[] getRelatedResources() {
-        // TODO Auto-generated method stub
         return null;
     }
 
diff --git a/src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png
new file mode 100644 (file)
index 0000000..5044c72
Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png differ
diff --git a/src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png
new file mode 100644 (file)
index 0000000..df237b7
Binary files /dev/null and b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png differ
index 7ecf234c3d816842f35f55aa7b840a935b69daa5..ec47e4746654d4755b0225f8a039dd07d7b8edee 100644 (file)
@@ -1,9 +1,15 @@
 package com.itmill.toolkit.demo.sampler.features.form;
 
+import com.itmill.toolkit.data.Validatable;
+import com.itmill.toolkit.data.Validator;
 import com.itmill.toolkit.demo.sampler.APIResource;
 import com.itmill.toolkit.demo.sampler.Feature;
+import com.itmill.toolkit.demo.sampler.FeatureSet;
 import com.itmill.toolkit.demo.sampler.NamedExternalResource;
+import com.itmill.toolkit.demo.sampler.features.commons.Errors;
+import com.itmill.toolkit.demo.sampler.features.commons.Validation;
 import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
 
 public class FormBasic extends Feature {
 
@@ -14,24 +20,23 @@ public class FormBasic extends Feature {
 
     @Override
     public String getDescription() {
-        return "A basic form";
+        return "The Form -component provides a convenient way to organize"
+                + " related fields visually.<br/> It is most useful when connected"
+                + " to a data source, and provides buffering and customization"
+                + " features to support that scenario.";
     }
 
-    @Override
     public APIResource[] getRelatedAPI() {
-        // TODO Auto-generated method stub
-        return null;
+        return new APIResource[] { new APIResource(Validatable.class),
+                new APIResource(Validator.class), new APIResource(Form.class) };
     }
 
-    @Override
     public Class[] getRelatedFeatures() {
-        // TODO Auto-generated method stub
-        return null;
+        return new Class[] { Validation.class, Errors.class,
+                FeatureSet.Forms.class };
     }
 
-    @Override
     public NamedExternalResource[] getRelatedResources() {
-        // TODO Auto-generated method stub
         return null;
     }
 
diff --git a/src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java b/src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java
new file mode 100644 (file)
index 0000000..cc94464
--- /dev/null
@@ -0,0 +1,47 @@
+package com.itmill.toolkit.demo.sampler.features.form;
+
+import com.itmill.toolkit.data.Validatable;
+import com.itmill.toolkit.data.Validator;
+import com.itmill.toolkit.demo.sampler.APIResource;
+import com.itmill.toolkit.demo.sampler.Feature;
+import com.itmill.toolkit.demo.sampler.FeatureSet;
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;
+import com.itmill.toolkit.demo.sampler.features.commons.Errors;
+import com.itmill.toolkit.demo.sampler.features.commons.Validation;
+import com.itmill.toolkit.ui.Component;
+import com.itmill.toolkit.ui.Form;
+
+public class FormPojo extends Feature {
+
+    @Override
+    public Component getExample() {
+        return new FormPojoExample();
+    }
+
+    @Override
+    public String getDescription() {
+        return "The Form -component provides a convenient way to organize"
+                + " related fields visually.<br/> It is most useful when connected"
+                + " to a data source, and provides buffering and customization"
+                + " features to support that scenario.<br> It easily be used as"
+                + " a POJO or Bean editor by wrapping the bean using BeanItem."
+                + " The basic functionality only requires a couple of lines of"
+                + " code, then Validators and other customizations can be"
+                + " applied to taste.";
+    }
+
+    public APIResource[] getRelatedAPI() {
+        return new APIResource[] { new APIResource(Validatable.class),
+                new APIResource(Validator.class), new APIResource(Form.class) };
+    }
+
+    public Class[] getRelatedFeatures() {
+        return new Class[] { Validation.class, Errors.class,
+                FeatureSet.Forms.class };
+    }
+
+    public NamedExternalResource[] getRelatedResources() {
+        return null;
+    }
+
+}
index 1b4dd9ff52bde2619bf1e2cde6900cd1255597dc..65ff56da2f62999d12dd969112182abcf5e748aa 100644 (file)
@@ -30,20 +30,24 @@ public class FormPojoExample extends VerticalLayout {
         person = new Person(); // a person POJO
         BeanItem personItem = new BeanItem(person); // item from POJO
 
-        // create the Form
+        // Create the Form
         final Form personForm = new Form();
         personForm.setWriteThrough(false); // we want explicit 'apply'
         personForm.setInvalidCommitted(false); // no invalid values in datamodel
+
         // FieldFactory for customizing the fields and adding validators
         personForm.setFieldFactory(new PersonFieldFactory());
         personForm.setItemDataSource(personItem); // bind to POJO via BeanItem
-        // determines which properties are shown, and in which order:
+
+        // Determines which properties are shown, and in which order:
         personForm.setVisibleItemProperties(Arrays.asList(new String[] {
                 "firstName", "lastName", "countryCode", "password",
                 "birthdate", "shoesize", "uuid" }));
-        addComponent(personForm); // add to layout
 
-        // the cancel / apply buttons
+        // Add form to layout
+        addComponent(personForm);
+
+        // The cancel / apply buttons
         HorizontalLayout buttons = new HorizontalLayout();
         buttons.setSpacing(true);
         Button discardChanges = new Button("Discard changes",
@@ -54,9 +58,14 @@ public class FormPojoExample extends VerticalLayout {
                 });
         discardChanges.setStyleName(Button.STYLE_LINK);
         buttons.addComponent(discardChanges);
+
         Button apply = new Button("Apply", new Button.ClickListener() {
             public void buttonClick(ClickEvent event) {
-                personForm.commit();
+                try {
+                    personForm.commit();
+                } catch (Exception e) {
+                    // Ingnored, we'll let the Form handle the errors
+                }
             }
         });
         buttons.addComponent(apply);
@@ -70,7 +79,6 @@ public class FormPojoExample extends VerticalLayout {
                     }
                 });
         addComponent(showPojoState);
-        // showPojoState();
     }
 
     private void showPojoState() {
@@ -110,12 +118,14 @@ public class FormPojoExample extends VerticalLayout {
             if ("firstName".equals(propertyId)) {
                 TextField tf = (TextField) f;
                 tf.setRequired(true);
+                tf.setRequiredError("Please enter a First Name");
                 tf.setWidth("15em");
                 tf.addValidator(new StringLengthValidator(
                         "First Name must be 3-25 characters", 3, 25, false));
             } else if ("lastName".equals(propertyId)) {
                 TextField tf = (TextField) f;
                 tf.setRequired(true);
+                tf.setRequiredError("Please enter a Last Name");
                 tf.setWidth("20em");
                 tf.addValidator(new StringLengthValidator(
                         "Last Name must be 3-50 characters", 3, 50, false));
@@ -123,6 +133,7 @@ public class FormPojoExample extends VerticalLayout {
                 TextField tf = (TextField) f;
                 tf.setSecret(true);
                 tf.setRequired(true);
+                tf.setRequiredError("Please enter a password");
                 tf.setWidth("10em");
                 tf.addValidator(new StringLengthValidator(
                         "Password must be 6-20 characters", 6, 20, false));