summaryrefslogtreecommitdiffstats
path: root/vaadin-app
diff options
context:
space:
mode:
Diffstat (limited to 'vaadin-app')
-rw-r--r--vaadin-app/src/ch/asynk/helloworld/DataMappingLayout.java140
-rw-r--r--vaadin-app/src/ch/asynk/helloworld/EndLayout.java26
-rw-r--r--vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java196
-rw-r--r--vaadin-app/src/ch/asynk/helloworld/MainLayout.java47
4 files changed, 214 insertions, 195 deletions
diff --git a/vaadin-app/src/ch/asynk/helloworld/DataMappingLayout.java b/vaadin-app/src/ch/asynk/helloworld/DataMappingLayout.java
new file mode 100644
index 0000000..ee0382e
--- /dev/null
+++ b/vaadin-app/src/ch/asynk/helloworld/DataMappingLayout.java
@@ -0,0 +1,140 @@
+package ch.asynk.helloworld;
+
+import com.vaadin.terminal.UserError;
+import com.vaadin.data.Property;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.util.ObjectProperty;
+import com.vaadin.data.Validator;
+import com.vaadin.data.validator.DoubleValidator;
+import com.vaadin.ui.FormLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.TextField;
+
+public class DataMappingLayout extends FormLayout {
+
+ public DataMappingLayout() {
+ //
+ final TextField tf1 = new TextField("Property.ValueChangeListener");
+ tf1.setImmediate(true);
+ addComponent(tf1);
+ final Label lb1 = new Label();
+ lb1.setCaption("The Value");
+ addComponent(lb1);
+ tf1.addListener( new Property.ValueChangeListener() {
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ String value = (String) tf1.getValue();
+ lb1.setValue(value);
+ }
+ });
+ //
+ Double trouble = 66.6;
+ final ObjectProperty<Double> property = new ObjectProperty<Double>(trouble);
+ final TextField tf2 = new TextField("ObjectProperty + Validator", property);
+ tf2.setImmediate(true);
+ tf2.addValidator( new DoubleValidator("It should be a double") );
+ //tf2.setValidationVisible(false); // nothing will happen
+ addComponent(tf2);
+ final Label lb2 = new Label(property);
+ lb2.setCaption("The Value");
+ addComponent(lb2);
+ //
+ final TextField tf3 = new TextField("No spaces");
+ addComponent(tf3);
+ tf3.setComponentError(null); // (actually the default)
+ final Button b1 = new Button("Ok!");
+ addComponent(b1);
+ b1.addListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ if (! ((String) tf3.getValue()).matches("^\\w*$")) {
+ tf3.setComponentError(new UserError("Must be letters and numbers"));
+ } else {
+ tf3.setComponentError(null);
+ }
+ }
+ });
+ //
+ // final Validator intValidator = new Validator() { ... }
+ class MyIntValidator 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)) {
+ if (value != null && value.toString().startsWith("0")) {
+ throw new InvalidValueException("Must not start with a zero.");
+ } else {
+ throw new InvalidValueException("Must be a number 10000-99999.");
+ }
+ }
+ }
+ };
+ final TextField tf5 = new TextField("MyIntValidator");
+ tf5.addValidator(new MyIntValidator());
+ tf5.setImmediate(true);
+ addComponent(tf5);
+ //
+ class IntegerObjectProperty implements Property {
+ Integer data = 0;
+ boolean readOnly = false;
+ public Class<?> getType() {
+ return Integer.class;
+ }
+ public Object getValue() {
+ return data;
+ }
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+ public void setReadOnly(boolean newStatus) {
+ readOnly = newStatus;
+ }
+ public void setValue(Object newValue) throws ReadOnlyException, ConversionException {
+ if (readOnly)
+ throw new ReadOnlyException();
+ if (newValue instanceof Integer)
+ data = (Integer) newValue;
+ else if (newValue instanceof String)
+ try {
+ data = Integer.parseInt((String) newValue, 16);
+ } catch (NumberFormatException e) {
+ throw new ConversionException("Must be an integer (from property)");
+ }
+ else
+ throw new ConversionException("Unknown entry type (from property)");
+ }
+ @Override
+ public String toString() {
+ return Integer.toHexString(data)+" (hex)";
+ }
+ };
+ final IntegerObjectProperty intProperty = new IntegerObjectProperty();
+ intProperty.setValue(666);
+ final TextField tf4 = new TextField("MyObjectProperty",intProperty);
+ tf4.setImmediate(true);
+ tf4.setErrorHandler(new ComponentErrorHandler() {
+ @Override
+ public boolean handleComponentError(ComponentErrorEvent event) {
+ tf4.setComponentError(new UserError("Must be an integer (from handler)"));
+ return true;
+ }
+ });
+ addComponent(tf4);
+ //
+ Button nextButton = new Button("end layout");
+ nextButton.setDescription("Go to end layout");
+ addComponent(nextButton );
+ nextButton.addListener( new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getApplication().getMainWindow().setContent( new EndLayout() );
+ }
+ });
+ }
+}
diff --git a/vaadin-app/src/ch/asynk/helloworld/EndLayout.java b/vaadin-app/src/ch/asynk/helloworld/EndLayout.java
new file mode 100644
index 0000000..a88de35
--- /dev/null
+++ b/vaadin-app/src/ch/asynk/helloworld/EndLayout.java
@@ -0,0 +1,26 @@
+package ch.asynk.helloworld;
+
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+
+public class EndLayout extends VerticalLayout {
+
+ public EndLayout() {
+ //
+ final Label lb1 = new Label();
+ lb1.setCaption("That's all folks");
+ addComponent(lb1);
+ //
+ Button closeButton = new Button("close the application");
+ closeButton.setDescription("This will close the application");
+ addComponent(closeButton );
+ closeButton.addListener( new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getApplication().getMainWindow().getApplication().close();
+ }
+ });
+ }
+};
diff --git a/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java b/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
index 19f9fbd..dbd133d 100644
--- a/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
+++ b/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
@@ -3,211 +3,17 @@ package ch.asynk.helloworld;
import java.util.Date;
import com.vaadin.Application;
-import com.vaadin.terminal.UserError;
import com.vaadin.terminal.Terminal;
+import com.vaadin.terminal.UserError;
import com.vaadin.terminal.SystemError;
import com.vaadin.terminal.ErrorMessage;
import com.vaadin.terminal.VariableOwner;
import com.vaadin.terminal.URIHandler;
import com.vaadin.terminal.ParameterHandler;
import com.vaadin.terminal.gwt.server.ChangeVariablesErrorEvent;
-import com.vaadin.data.Property;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.util.ObjectProperty;
-import com.vaadin.data.Validator;
-import com.vaadin.data.validator.DoubleValidator;
-import com.vaadin.ui.FormLayout;
-import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.TextField;
import com.vaadin.ui.AbstractComponent;
-class EndLayout extends VerticalLayout {
-
- public EndLayout() {
- //
- final Label lb1 = new Label();
- lb1.setCaption("That's all folks");
- addComponent(lb1);
- //
- Button closeButton = new Button("close the application");
- closeButton.setDescription("This will close the application");
- addComponent(closeButton );
- closeButton.addListener( new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- getApplication().getMainWindow().getApplication().close();
- }
- });
- }
-};
-
-class DataMappingLayout extends FormLayout {
-
- public DataMappingLayout() {
- //
- final TextField tf1 = new TextField("Property.ValueChangeListener");
- tf1.setImmediate(true);
- addComponent(tf1);
- final Label lb1 = new Label();
- lb1.setCaption("The Value");
- addComponent(lb1);
- tf1.addListener( new Property.ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- String value = (String) tf1.getValue();
- lb1.setValue(value);
- }
- });
- //
- Double trouble = 66.6;
- final ObjectProperty<Double> property = new ObjectProperty<Double>(trouble);
- final TextField tf2 = new TextField("ObjectProperty + Validator", property);
- tf2.setImmediate(true);
- tf2.addValidator( new DoubleValidator("It should be a double") );
- //tf2.setValidationVisible(false); // nothing will happen
- addComponent(tf2);
- final Label lb2 = new Label(property);
- lb2.setCaption("The Value");
- addComponent(lb2);
- //
- final TextField tf3 = new TextField("No spaces");
- addComponent(tf3);
- tf3.setComponentError(null); // (actually the default)
- final Button b1 = new Button("Ok!");
- addComponent(b1);
- b1.addListener(new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- if (! ((String) tf3.getValue()).matches("^\\w*$")) {
- tf3.setComponentError(new UserError("Must be letters and numbers"));
- } else {
- tf3.setComponentError(null);
- }
- }
- });
- //
- // final Validator intValidator = new Validator() { ... }
- class MyIntValidator 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)) {
- if (value != null && value.toString().startsWith("0")) {
- throw new InvalidValueException("Must not start with a zero.");
- } else {
- throw new InvalidValueException("Must be a number 10000-99999.");
- }
- }
- }
- };
- final TextField tf5 = new TextField("MyIntValidator");
- tf5.addValidator(new MyIntValidator());
- tf5.setImmediate(true);
- addComponent(tf5);
- //
- class IntegerObjectProperty implements Property {
- Integer data = 0;
- boolean readOnly = false;
- public Class<?> getType() {
- return Integer.class;
- }
- public Object getValue() {
- return data;
- }
- public boolean isReadOnly() {
- return readOnly;
- }
- public void setReadOnly(boolean newStatus) {
- readOnly = newStatus;
- }
- public void setValue(Object newValue) throws ReadOnlyException, ConversionException {
- if (readOnly)
- throw new ReadOnlyException();
- if (newValue instanceof Integer)
- data = (Integer) newValue;
- else if (newValue instanceof String)
- try {
- data = Integer.parseInt((String) newValue, 16);
- } catch (NumberFormatException e) {
- throw new ConversionException("Must be an integer (from property)");
- }
- else
- throw new ConversionException("Unknown entry type (from property)");
- }
- @Override
- public String toString() {
- return Integer.toHexString(data)+" (hex)";
- }
- };
- final IntegerObjectProperty intProperty = new IntegerObjectProperty();
- intProperty.setValue(666);
- final TextField tf4 = new TextField("MyObjectProperty",intProperty);
- tf4.setImmediate(true);
- tf4.setErrorHandler(new ComponentErrorHandler() {
- @Override
- public boolean handleComponentError(ComponentErrorEvent event) {
- tf4.setComponentError(new UserError("Must be an integer (from handler)"));
- return true;
- }
- });
- addComponent(tf4);
- //
- Button nextButton = new Button("end layout");
- nextButton.setDescription("Go to end layout");
- addComponent(nextButton );
- nextButton.addListener( new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- getApplication().getMainWindow().setContent( new EndLayout() );
- }
- });
- }
-}
-
-class MainLayout extends VerticalLayout {
-
- public MainLayout() {
- Label label = new Label("Hello world");
- addComponent(label);
- //
- addComponent( new Button("What is the time?", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- getApplication().getMainWindow().showNotification("The time is " + new Date(), "<i>italic</i> <b>bold</b> description",Window.Notification.TYPE_WARNING_MESSAGE);
- event.getButton().setComponentError( new UserError("Stop pressing this button !!") );
- }
- }));
- ///
- Button exceptionButton = new Button("throw an exception");
- addComponent(exceptionButton );
- exceptionButton.addListener( new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- throw new RuntimeException("Wahou !! : exception");
- }
- });
- //
- Button nextButton = new Button("next layout");
- nextButton.setDescription("Go to next layout");
- addComponent(nextButton );
- nextButton.addListener( new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- getApplication().getMainWindow().setContent( new DataMappingLayout() );
- }
- });
- }
-
-}
-
public class HelloWorldApp extends Application {
private static final long serialVersionUID = 1L;
diff --git a/vaadin-app/src/ch/asynk/helloworld/MainLayout.java b/vaadin-app/src/ch/asynk/helloworld/MainLayout.java
new file mode 100644
index 0000000..e5e364e
--- /dev/null
+++ b/vaadin-app/src/ch/asynk/helloworld/MainLayout.java
@@ -0,0 +1,47 @@
+package ch.asynk.helloworld;
+
+
+import java.util.Date;
+
+import com.vaadin.terminal.UserError;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Window.Notification;
+
+public class MainLayout extends VerticalLayout {
+
+ public MainLayout() {
+ Label label = new Label("Hello world");
+ addComponent(label);
+ //
+ addComponent( new Button("What is the time?", new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getApplication().getMainWindow().showNotification("The time is " + new Date(), "<i>italic</i> <b>bold</b> description",Notification.TYPE_WARNING_MESSAGE);
+ event.getButton().setComponentError( new UserError("Stop pressing this button !!") );
+ }
+ }));
+ ///
+ Button exceptionButton = new Button("throw an exception");
+ addComponent(exceptionButton );
+ exceptionButton.addListener( new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ throw new RuntimeException("Wahou !! : exception");
+ }
+ });
+ //
+ Button nextButton = new Button("next layout");
+ nextButton.setDescription("Go to next layout");
+ addComponent(nextButton );
+ nextButton.addListener( new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getApplication().getMainWindow().setContent( new DataMappingLayout() );
+ }
+ });
+ }
+
+}