# HG changeset patch # User Ingo Weinzierl # Date 1326992383 0 # Node ID 252c22237fe70493c13a892a9dc11756ff41fc73 # Parent 4a5e655519233bd981535c0532b0e641af6a3531 Added new Data classes for integer array and integer options. flys-client/trunk@3725 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 4a5e65551923 -r 252c22237fe7 flys-client/ChangeLog --- 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 + + * 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 * src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java: diff -r 4a5e65551923 -r 252c22237fe7 flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.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; diff -r 4a5e65551923 -r 252c22237fe7 flys-client/src/main/java/de/intevation/flys/client/shared/model/IntegerArrayData.java --- /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 : diff -r 4a5e65551923 -r 252c22237fe7 flys-client/src/main/java/de/intevation/flys/client/shared/model/IntegerOptionsData.java --- /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; + } +}