changeset 1527:252c22237fe7

Added new Data classes for integer array and integer options. flys-client/trunk@3725 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 19 Jan 2012 16:59:43 +0000
parents 4a5e65551923
children ff41405a891d
files flys-client/ChangeLog flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java flys-client/src/main/java/de/intevation/flys/client/shared/model/IntegerArrayData.java flys-client/src/main/java/de/intevation/flys/client/shared/model/IntegerOptionsData.java
diffstat 4 files changed, 181 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/flys-client/ChangeLog	Thu Jan 19 08:57:58 2012 +0000
+++ b/flys-client/ChangeLog	Thu Jan 19 16:59:43 2012 +0000
@@ -1,3 +1,14 @@
+2012-01-19  Ingo Weinzierl <ingo@intevation.de>
+
+	* src/main/java/de/intevation/flys/client/shared/model/IntegerOptionsData.java,
+	  src/main/java/de/intevation/flys/client/shared/model/IntegerArrayData.java:
+	  New Data types for better handling of options (radio buttons) and integer
+	  arrays.
+
+	* src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java:
+	  Create new instances of IntegerOptionsData if the type is 'intoptions' and
+	  new instances of IntegerArrayData if type is 'intarray'.
+
 2012-01-19  Raimund Renkert <raimund.renkert@intevation.de>
 
 	* src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java:
--- a/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java	Thu Jan 19 08:57:58 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java	Thu Jan 19 16:59:43 2012 +0000
@@ -23,7 +23,9 @@
 import de.intevation.flys.client.shared.model.DefaultData;
 import de.intevation.flys.client.shared.model.DefaultDataItem;
 import de.intevation.flys.client.shared.model.DefaultOutputMode;
+import de.intevation.flys.client.shared.model.IntegerArrayData;
 import de.intevation.flys.client.shared.model.IntegerRangeData;
+import de.intevation.flys.client.shared.model.IntegerOptionsData;
 import de.intevation.flys.client.shared.model.OutputMode;
 import de.intevation.flys.client.shared.model.Recommendation;
 import de.intevation.flys.client.shared.model.WQDataItem;
@@ -154,6 +156,15 @@
                     logger.warn("NumberFormatException: ", nfe);
                 }
             }
+            else if (type.equals("intarray")) {
+                list.add(new IntegerArrayData(name, label, null));
+            }
+            else if (type.equals("intoptions")) {
+                NodeList   choices = ClientProtocolUtils.getItemNodes(d);
+                DataItem[] opts    = extractCurrentDataItems(choices);
+
+                list.add(new IntegerOptionsData(name, label, opts));
+            }
         }
 
         return list;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/IntegerArrayData.java	Thu Jan 19 16:59:43 2012 +0000
@@ -0,0 +1,90 @@
+package de.intevation.flys.client.shared.model;
+
+
+public class IntegerArrayData implements Data {
+
+    protected String label;
+    protected String description;
+
+    protected int[] values;
+
+
+    public IntegerArrayData() {
+    }
+
+
+    public IntegerArrayData(String label, String description, int[] values) {
+        this.label       = label;
+        this.description = description;
+        this.values      = values;
+    }
+
+
+    /**
+     * Returns the label of the item.
+     *
+     * @return the label.
+     */
+    public String getLabel() {
+        return label;
+    }
+
+
+    /**
+     * Returns the description of the item.
+     *
+     * @return the description.
+     */
+    public String getDescription() {
+        return description;
+    }
+
+
+    /**
+     * Returns the type of the item.
+     *
+     * @return the type.
+     */
+    public String getType() {
+        return "intarray";
+    }
+
+
+    /**
+     * Returns a DataItem which value is a string that consists of the integer
+     * values separated by a ';'.
+     *
+     * @return the DataItem.
+     */
+    public DataItem[] getItems() {
+        if (values == null || values.length == 0) {
+            return new DataItem[0];
+        }
+
+        StringBuilder sb    = new StringBuilder();
+        boolean       first = true;
+
+        for (int value: values) {
+            if (first) {
+                sb.append(String.valueOf(value));
+            }
+            else {
+                sb.append(";" + String.valueOf(value));
+            }
+        }
+
+        String  value = sb.toString();
+        DataItem item = new DefaultDataItem(value, value, value);
+
+        return new DataItem[] { item };
+    }
+
+
+    /**
+     * @return always null.
+     */
+    public DataItem getDefault() {
+        return null;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/IntegerOptionsData.java	Thu Jan 19 16:59:43 2012 +0000
@@ -0,0 +1,69 @@
+package de.intevation.flys.client.shared.model;
+
+
+public class IntegerOptionsData implements Data {
+
+    protected String label;
+    protected String description;
+
+    public DataItem[] opts;
+
+
+    public IntegerOptionsData() {
+    }
+
+
+    public IntegerOptionsData(String label, String desc, DataItem[] opts) {
+        this.label       = label;
+        this.description = desc;
+        this.opts        = opts;
+    }
+
+
+    /**
+     * Returns the label of the item.
+     *
+     * @return the label.
+     */
+    public String getLabel() {
+        return label;
+    }
+
+
+    /**
+     * Returns the description of the item.
+     *
+     * @return the description.
+     */
+    public String getDescription() {
+        return description;
+    }
+
+
+    /**
+     * Returns the type of the item.
+     *
+     * @return the type.
+     */
+    public String getType() {
+        return "intoptions";
+    }
+
+
+    /**
+     * Returns the data items which represent the allowed options for this Data.
+     *
+     * @return the allowed options as DataItem array.
+     */
+    public DataItem[] getItems() {
+        return opts;
+    }
+
+
+    /**
+     * @return always null.
+     */
+    public DataItem getDefault() {
+        return null;
+    }
+}

http://dive4elements.wald.intevation.org