From: Henri Sara Date: Tue, 19 May 2009 13:36:19 +0000 (+0000) Subject: #2812 copied AddressBook tutorial changes from the incubator project to Vaadin X-Git-Tag: 6.7.0.beta1~2826 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8d2374ed731982e17f3cf1c5aed3552e53a6f8e6;p=vaadin-framework.git #2812 copied AddressBook tutorial changes from the incubator project to Vaadin svn changeset:7892/svn branch:6.0 --- diff --git a/WebContent/VAADIN/themes/contacts/styles.css b/WebContent/VAADIN/themes/contacts/styles.css index c79dcb497e..5a93f8604c 100644 --- a/WebContent/VAADIN/themes/contacts/styles.css +++ b/WebContent/VAADIN/themes/contacts/styles.css @@ -1,4 +1,5 @@ @import url(../runo/styles.css); +/* Using the old default theme (runo) as the basis for now */ /* Add some padding to the tree */ .v-tree { diff --git a/src/com/vaadin/demo/tutorial/addressbook/AddressBookApplication.java b/src/com/vaadin/demo/tutorial/addressbook/AddressBookApplication.java index ad61246c22..2412f31916 100644 --- a/src/com/vaadin/demo/tutorial/addressbook/AddressBookApplication.java +++ b/src/com/vaadin/demo/tutorial/addressbook/AddressBookApplication.java @@ -1,7 +1,3 @@ -/* -@ITMillApache2LicenseForJavaFiles@ - */ - package com.vaadin.demo.tutorial.addressbook; import com.vaadin.Application; diff --git a/src/com/vaadin/demo/tutorial/addressbook/data/Person.java b/src/com/vaadin/demo/tutorial/addressbook/data/Person.java index 772f3e143a..0739504210 100644 --- a/src/com/vaadin/demo/tutorial/addressbook/data/Person.java +++ b/src/com/vaadin/demo/tutorial/addressbook/data/Person.java @@ -3,117 +3,117 @@ package com.vaadin.demo.tutorial.addressbook.data; import java.io.Serializable; public class Person implements Serializable { - private String firstName = ""; - private String lastName = ""; - private String email = ""; - private String phoneNumber = ""; - private String streetAddress = ""; - private Integer postalCode = null; - private String city = ""; - - /** - * @return the firstName - */ - public String getFirstName() { - return firstName; - } - - /** - * @param firstName - * the firstName to set - */ - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - /** - * @return the lastName - */ - public String getLastName() { - return lastName; - } - - /** - * @param lastName - * the lastName to set - */ - public void setLastName(String lastName) { - this.lastName = lastName; - } - - /** - * @return the email - */ - public String getEmail() { - return email; - } - - /** - * @param email - * the email to set - */ - public void setEmail(String email) { - this.email = email; - } - - /** - * @return the phoneNumber - */ - public String getPhoneNumber() { - return phoneNumber; - } - - /** - * @param phoneNumber - * the phoneNumber to set - */ - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - /** - * @return the streetAddress - */ - public String getStreetAddress() { - return streetAddress; - } - - /** - * @param streetAddress - * the streetAddress to set - */ - public void setStreetAddress(String streetAddress) { - this.streetAddress = streetAddress; - } - - /** - * @return the postalCode - */ - public Integer getPostalCode() { - return postalCode; - } - - /** - * @param postalCode - * the postalCode to set - */ - public void setPostalCode(Integer postalCode) { - this.postalCode = postalCode; - } - - /** - * @return the city - */ - public String getCity() { - return city; - } - - /** - * @param city - * the city to set - */ - public void setCity(String city) { - this.city = city; - } + private String firstName = ""; + private String lastName = ""; + private String email = ""; + private String phoneNumber = ""; + private String streetAddress = ""; + private Integer postalCode = null; + private String city = ""; + + /** + * @return the firstName + */ + public String getFirstName() { + return firstName; + } + + /** + * @param firstName + * the firstName to set + */ + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + /** + * @return the lastName + */ + public String getLastName() { + return lastName; + } + + /** + * @param lastName + * the lastName to set + */ + public void setLastName(String lastName) { + this.lastName = lastName; + } + + /** + * @return the email + */ + public String getEmail() { + return email; + } + + /** + * @param email + * the email to set + */ + public void setEmail(String email) { + this.email = email; + } + + /** + * @return the phoneNumber + */ + public String getPhoneNumber() { + return phoneNumber; + } + + /** + * @param phoneNumber + * the phoneNumber to set + */ + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + /** + * @return the streetAddress + */ + public String getStreetAddress() { + return streetAddress; + } + + /** + * @param streetAddress + * the streetAddress to set + */ + public void setStreetAddress(String streetAddress) { + this.streetAddress = streetAddress; + } + + /** + * @return the postalCode + */ + public Integer getPostalCode() { + return postalCode; + } + + /** + * @param postalCode + * the postalCode to set + */ + public void setPostalCode(Integer postalCode) { + this.postalCode = postalCode; + } + + /** + * @return the city + */ + public String getCity() { + return city; + } + + /** + * @param city + * the city to set + */ + public void setCity(String city) { + this.city = city; + } } \ No newline at end of file diff --git a/src/com/vaadin/demo/tutorial/addressbook/data/PersonContainer.java b/src/com/vaadin/demo/tutorial/addressbook/data/PersonContainer.java index 5be844cc7f..b753125505 100644 --- a/src/com/vaadin/demo/tutorial/addressbook/data/PersonContainer.java +++ b/src/com/vaadin/demo/tutorial/addressbook/data/PersonContainer.java @@ -6,88 +6,88 @@ import java.util.Random; import com.vaadin.data.util.BeanItemContainer; public class PersonContainer extends BeanItemContainer implements - Serializable { + Serializable { - /** - * Natural property order for Person bean. Used in tables and forms. - */ - public static final Object[] NATURAL_COL_ORDER = new Object[] { - "firstName", "lastName", "email", "phoneNumber", "streetAddress", - "postalCode", "city" }; + /** + * Natural property order for Person bean. Used in tables and forms. + */ + public static final Object[] NATURAL_COL_ORDER = new Object[] { + "firstName", "lastName", "email", "phoneNumber", "streetAddress", + "postalCode", "city" }; - /** - * "Human readable" captions for properties in same order as in - * NATURAL_COL_ORDER. - */ - public static final String[] COL_HEADERS_ENGLISH = new String[] { - "First name", "Last name", "Email", "Phone number", - "Street Address", "Postal Code", "City" }; + /** + * "Human readable" captions for properties in same order as in + * NATURAL_COL_ORDER. + */ + public static final String[] COL_HEADERS_ENGLISH = new String[] { + "First name", "Last name", "Email", "Phone number", + "Street Address", "Postal Code", "City" }; - public PersonContainer() throws InstantiationException, - IllegalAccessException { - super(Person.class); - } + public PersonContainer() throws InstantiationException, + IllegalAccessException { + super(Person.class); + } - public static PersonContainer createWithTestData() { - final String[] fnames = { "Peter", "Alice", "Joshua", "Mike", "Olivia", - "Nina", "Alex", "Rita", "Dan", "Umberto", "Henrik", "Rene", - "Lisa", "Marge" }; - final String[] lnames = { "Smith", "Gordon", "Simpson", "Brown", - "Clavel", "Simons", "Verne", "Scott", "Allison", "Gates", - "Rowling", "Barks", "Ross", "Schneider", "Tate" }; - final String cities[] = { "Amsterdam", "Berlin", "Helsinki", - "Hong Kong", "London", "Luxemburg", "New York", "Oslo", - "Paris", "Rome", "Stockholm", "Tokyo", "Turku" }; - final String streets[] = { "4215 Blandit Av.", "452-8121 Sem Ave", - "279-4475 Tellus Road", "4062 Libero. Av.", "7081 Pede. Ave", - "6800 Aliquet St.", "P.O. Box 298, 9401 Mauris St.", - "161-7279 Augue Ave", "P.O. Box 496, 1390 Sagittis. Rd.", - "448-8295 Mi Avenue", "6419 Non Av.", - "659-2538 Elementum Street", "2205 Quis St.", - "252-5213 Tincidunt St.", "P.O. Box 175, 4049 Adipiscing Rd.", - "3217 Nam Ave", "P.O. Box 859, 7661 Auctor St.", - "2873 Nonummy Av.", "7342 Mi, Avenue", - "539-3914 Dignissim. Rd.", "539-3675 Magna Avenue", - "Ap #357-5640 Pharetra Avenue", "416-2983 Posuere Rd.", - "141-1287 Adipiscing Avenue", "Ap #781-3145 Gravida St.", - "6897 Suscipit Rd.", "8336 Purus Avenue", "2603 Bibendum. Av.", - "2870 Vestibulum St.", "Ap #722 Aenean Avenue", - "446-968 Augue Ave", "1141 Ultricies Street", - "Ap #992-5769 Nunc Street", "6690 Porttitor Avenue", - "Ap #105-1700 Risus Street", - "P.O. Box 532, 3225 Lacus. Avenue", "736 Metus Street", - "414-1417 Fringilla Street", "Ap #183-928 Scelerisque Road", - "561-9262 Iaculis Avenue" }; - PersonContainer c = null; - Random r = new Random(0); - try { - c = new PersonContainer(); - for (int i = 0; i < 100; i++) { - Person p = new Person(); - p.setFirstName(fnames[r.nextInt(fnames.length)]); - p.setLastName(lnames[r.nextInt(lnames.length)]); - p.setCity(cities[r.nextInt(cities.length)]); - p.setEmail(p.getFirstName().toLowerCase() + "." - + p.getLastName().toLowerCase() + "@vaadin.com"); - p.setPhoneNumber("+358 02 555 " + r.nextInt(10) + r.nextInt(10) - + r.nextInt(10) + r.nextInt(10)); - int n = r.nextInt(100000); - if (n < 10000) { - n += 10000; - } - p.setPostalCode(n); - p.setStreetAddress(streets[r.nextInt(streets.length)]); - c.addItem(p); - } - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + public static PersonContainer createWithTestData() { + final String[] fnames = { "Peter", "Alice", "Joshua", "Mike", "Olivia", + "Nina", "Alex", "Rita", "Dan", "Umberto", "Henrik", "Rene", + "Lisa", "Marge" }; + final String[] lnames = { "Smith", "Gordon", "Simpson", "Brown", + "Clavel", "Simons", "Verne", "Scott", "Allison", "Gates", + "Rowling", "Barks", "Ross", "Schneider", "Tate" }; + final String cities[] = { "Amsterdam", "Berlin", "Helsinki", + "Hong Kong", "London", "Luxemburg", "New York", "Oslo", + "Paris", "Rome", "Stockholm", "Tokyo", "Turku" }; + final String streets[] = { "4215 Blandit Av.", "452-8121 Sem Ave", + "279-4475 Tellus Road", "4062 Libero. Av.", "7081 Pede. Ave", + "6800 Aliquet St.", "P.O. Box 298, 9401 Mauris St.", + "161-7279 Augue Ave", "P.O. Box 496, 1390 Sagittis. Rd.", + "448-8295 Mi Avenue", "6419 Non Av.", + "659-2538 Elementum Street", "2205 Quis St.", + "252-5213 Tincidunt St.", "P.O. Box 175, 4049 Adipiscing Rd.", + "3217 Nam Ave", "P.O. Box 859, 7661 Auctor St.", + "2873 Nonummy Av.", "7342 Mi, Avenue", + "539-3914 Dignissim. Rd.", "539-3675 Magna Avenue", + "Ap #357-5640 Pharetra Avenue", "416-2983 Posuere Rd.", + "141-1287 Adipiscing Avenue", "Ap #781-3145 Gravida St.", + "6897 Suscipit Rd.", "8336 Purus Avenue", "2603 Bibendum. Av.", + "2870 Vestibulum St.", "Ap #722 Aenean Avenue", + "446-968 Augue Ave", "1141 Ultricies Street", + "Ap #992-5769 Nunc Street", "6690 Porttitor Avenue", + "Ap #105-1700 Risus Street", + "P.O. Box 532, 3225 Lacus. Avenue", "736 Metus Street", + "414-1417 Fringilla Street", "Ap #183-928 Scelerisque Road", + "561-9262 Iaculis Avenue" }; + PersonContainer c = null; + Random r = new Random(0); + try { + c = new PersonContainer(); + for (int i = 0; i < 100; i++) { + Person p = new Person(); + p.setFirstName(fnames[r.nextInt(fnames.length)]); + p.setLastName(lnames[r.nextInt(lnames.length)]); + p.setCity(cities[r.nextInt(cities.length)]); + p.setEmail(p.getFirstName().toLowerCase() + "." + + p.getLastName().toLowerCase() + "@vaadin.com"); + p.setPhoneNumber("+358 02 555 " + r.nextInt(10) + r.nextInt(10) + + r.nextInt(10) + r.nextInt(10)); + int n = r.nextInt(100000); + if (n < 10000) { + n += 10000; + } + p.setPostalCode(n); + p.setStreetAddress(streets[r.nextInt(streets.length)]); + c.addItem(p); + } + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } - return c; - } + return c; + } } diff --git a/src/com/vaadin/demo/tutorial/addressbook/data/SearchFilter.java b/src/com/vaadin/demo/tutorial/addressbook/data/SearchFilter.java index fd7eb16ae9..c5aa3e37ed 100644 --- a/src/com/vaadin/demo/tutorial/addressbook/data/SearchFilter.java +++ b/src/com/vaadin/demo/tutorial/addressbook/data/SearchFilter.java @@ -4,40 +4,40 @@ import java.io.Serializable; public class SearchFilter implements Serializable { - private final String term; - private final Object propertyId; - private String searchName; - - public SearchFilter(Object propertyId, String searchTerm, String name) { - this.propertyId = propertyId; - term = searchTerm; - searchName = name; - } - - /** - * @return the term - */ - public String getTerm() { - return term; - } - - /** - * @return the propertyId - */ - public Object getPropertyId() { - return propertyId; - } - - /** - * @return the name of the search - */ - public String getSearchName() { - return searchName; - } - - @Override - public String toString() { - return getSearchName(); - } + private final String term; + private final Object propertyId; + private String searchName; + + public SearchFilter(Object propertyId, String searchTerm, String name) { + this.propertyId = propertyId; + term = searchTerm; + searchName = name; + } + + /** + * @return the term + */ + public String getTerm() { + return term; + } + + /** + * @return the propertyId + */ + public Object getPropertyId() { + return propertyId; + } + + /** + * @return the name of the search + */ + public String getSearchName() { + return searchName; + } + + @Override + public String toString() { + return getSearchName(); + } } diff --git a/src/com/vaadin/demo/tutorial/addressbook/ui/PersonForm.java b/src/com/vaadin/demo/tutorial/addressbook/ui/PersonForm.java index 131c1ae9fd..a885ba5640 100644 --- a/src/com/vaadin/demo/tutorial/addressbook/ui/PersonForm.java +++ b/src/com/vaadin/demo/tutorial/addressbook/ui/PersonForm.java @@ -6,11 +6,11 @@ import java.util.List; import com.vaadin.data.Item; import com.vaadin.data.util.BeanItem; +import com.vaadin.data.validator.EmailValidator; +import com.vaadin.data.validator.RegexpValidator; import com.vaadin.demo.tutorial.addressbook.AddressBookApplication; import com.vaadin.demo.tutorial.addressbook.data.Person; import com.vaadin.demo.tutorial.addressbook.data.PersonContainer; -import com.vaadin.demo.tutorial.addressbook.validators.EmailValidator; -import com.vaadin.demo.tutorial.addressbook.validators.PostalCodeValidator; import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; import com.vaadin.ui.Component; @@ -89,11 +89,14 @@ public class PersonForm extends Form implements ClickListener { tf.setNullRepresentation(""); /* Add a validator for postalCode and make it required */ - tf.addValidator(new PostalCodeValidator()); + tf + .addValidator(new RegexpValidator("[1-9][0-9]{4}", + "Postal code must be a five digit number and cannot start with a zero.")); tf.setRequired(true); } else if (propertyId.equals("email")) { /* Add a validator for email and make it required */ - field.addValidator(new EmailValidator()); + field.addValidator(new EmailValidator( + "Email must contain '@' and have full domain.")); field.setRequired(true); } diff --git a/src/com/vaadin/demo/tutorial/addressbook/validators/EmailValidator.java b/src/com/vaadin/demo/tutorial/addressbook/validators/EmailValidator.java deleted file mode 100644 index 0c3068d976..0000000000 --- a/src/com/vaadin/demo/tutorial/addressbook/validators/EmailValidator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.vaadin.demo.tutorial.addressbook.validators; - -import com.vaadin.data.Validator; - -public class EmailValidator implements Validator { - - public boolean isValid(Object value) { - if (value == null || !(value instanceof String)) { - return false; - } - - return ((String) value).matches(".+@.+\\..+"); - } - - public void validate(Object value) throws InvalidValueException { - if (!isValid(value)) { - throw new InvalidValueException( - "Email must contain '@' and have full domain."); - } - } - -} diff --git a/src/com/vaadin/demo/tutorial/addressbook/validators/PostalCodeValidator.java b/src/com/vaadin/demo/tutorial/addressbook/validators/PostalCodeValidator.java deleted file mode 100644 index bd08ab6929..0000000000 --- a/src/com/vaadin/demo/tutorial/addressbook/validators/PostalCodeValidator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.vaadin.demo.tutorial.addressbook.validators; - -import com.vaadin.data.Validator; - -public class PostalCodeValidator implements Validator { - - public boolean isValid(Object value) { - if (value == null || !(value instanceof String)) { - return false; - } - - return ((String) value).matches("[1-9][0-9]{4}"); - } - - public void validate(Object value) throws InvalidValueException { - if (!isValid(value)) { - throw new InvalidValueException( - "Postal code must be a five digit number and cannot start with a zero."); - } - } - -} \ No newline at end of file