aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2009-02-06 15:21:10 +0000
committerMarc Englund <marc.englund@itmill.com>2009-02-06 15:21:10 +0000
commitfee9742d8d241a078ff711b8bc50b5234843c4e9 (patch)
tree74ac7076ea24c11fdb41ae283457b5063ddb71a2
parentb8d338edfbb62a347d02667b4ea457368f72ee36 (diff)
downloadvaadin-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.java6
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.pngbin0 -> 5295 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.pngbin0 -> 6638 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/commons/Validation.java19
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.pngbin0 -> 4945 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.pngbin0 -> 8388 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/form/FormBasic.java23
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/form/FormPojo.java47
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/form/FormPojoExample.java23
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
new file mode 100644
index 0000000000..26b29ce24f
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Errors.png
Binary files 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
index 0000000000..058ec7db9f
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/commons/75-Validation.png
Binary files differ
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
new file mode 100644
index 0000000000..5044c729a6
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormBasic.png
Binary files 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
index 0000000000..df237b7cfc
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/form/75-FormPojo.png
Binary files differ
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));