diff options
author | Marc Englund <marc.englund@itmill.com> | 2009-02-06 15:21:10 +0000 |
---|---|---|
committer | Marc Englund <marc.englund@itmill.com> | 2009-02-06 15:21:10 +0000 |
commit | fee9742d8d241a078ff711b8bc50b5234843c4e9 (patch) | |
tree | 74ac7076ea24c11fdb41ae283457b5063ddb71a2 | |
parent | b8d338edfbb62a347d02667b4ea457368f72ee36 (diff) | |
download | vaadin-framework-fee9742d8d241a078ff711b8bc50b5234843c4e9.tar.gz vaadin-framework-fee9742d8d241a078ff711b8bc50b5234843c4e9.zip |
Sampler; sample modifications and a few icons.
svn changeset:6755/svn branch:trunk
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/FeatureSet.java | 6 | ||||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png | bin | 0 -> 5295 bytes | |||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png | bin | 0 -> 6638 bytes | |||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java | 19 | ||||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png | bin | 0 -> 4945 bytes | |||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png | bin | 0 -> 8388 bytes | |||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java | 23 | ||||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java | 47 | ||||
-rw-r--r-- | src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java | 23 |
9 files changed, 96 insertions, 22 deletions
diff --git a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java index 5cd33d56f4..1314921adb 100644 --- a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java +++ b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java @@ -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 Binary files differnew file mode 100644 index 0000000000..26b29ce24f --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png 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 Binary files differnew file mode 100644 index 0000000000..058ec7db9f --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java b/src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java index ca84439eb6..2bbbfce8ae 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java +++ b/src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java @@ -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 Binary files differnew file mode 100644 index 0000000000..5044c729a6 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png 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 Binary files differnew file mode 100644 index 0000000000..df237b7cfc --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java b/src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java index 7ecf234c3d..ec47e47466 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java +++ b/src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java @@ -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 index 0000000000..cc94464e46 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java @@ -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; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java b/src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java index 1b4dd9ff52..65ff56da2f 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java +++ b/src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java @@ -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)); |