Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/shared/model/MultiAttributeData.java @ 7821:5c80f419aea4 minfo-opt
Added new state data type.
The new datatype takes a set of additional attributes and stores them to a
map.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 20 Mar 2014 13:32:43 +0100 |
parents | |
children | 6e6506ec0ae0 |
rev | line source |
---|---|
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.client.shared.model; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 public class MultiAttributeData |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 implements Data |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 public static final String TYPE = "multiattribute"; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 protected String label; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 protected String description; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 public DataItem[] opts; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 public MultiAttributeData() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 public MultiAttributeData(String label, String desc, DataItem[] opts) { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 this.label = label; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 this.description = desc; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 this.opts = opts; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 * Returns the label of the item. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 * @return the label. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 */ |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 public String getLabel() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 return label; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 * Returns the description of the item. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 * @return the description. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 */ |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 public String getDescription() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 return description; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 * Returns the type of the item. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 * @return the type. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 */ |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 public String getType() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 return TYPE; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 * Returns the data items which represent the allowed options for this Data. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 * @return the allowed options as DataItem array. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 */ |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 public DataItem[] getItems() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 return opts; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 * @return always null. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 */ |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 public DataItem getDefault() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 return null; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 * Returns the values as colon separated string. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 * @return colon separated string. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 */ |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 public String getStringValue() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 String data = ""; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 boolean first = true; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 for (int i = 0; i < opts.length; i++) { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 if (!first) { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 data += ";"; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 data += opts[i].getStringValue(); |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 first = false; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 return data; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 } |