Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/shared/model/MultiAttributeData.java @ 9099:850ce16034e9
2.3.4.1.10 Berechnung mit Start-km > End-km
author | gernotbelger |
---|---|
date | Mon, 28 May 2018 13:22:45 +0200 |
parents | 766890addcb2 |
children |
rev | line source |
---|---|
8858 | 1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU AGPL (>=v3) | |
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
6 * documentation coming with Dive4Elements River for details. | |
7 */ | |
8 | |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.client.shared.model; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
8071
6e6506ec0ae0
Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7821
diff
changeset
|
11 import java.util.Map; |
6e6506ec0ae0
Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7821
diff
changeset
|
12 |
9074 | 13 public class MultiAttributeData implements Data { |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
9074 | 15 private static final long serialVersionUID = 1L; |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 public static final String TYPE = "multiattribute"; |
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 protected String label; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 protected String description; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 |
8071
6e6506ec0ae0
Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7821
diff
changeset
|
22 protected Map<String, Map<String, String>> meta; |
6e6506ec0ae0
Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7821
diff
changeset
|
23 |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 public DataItem[] opts; |
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 public MultiAttributeData() { |
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 |
9074 | 29 public MultiAttributeData(final String label, final String desc, final DataItem[] opts, final Map<String, Map<String, String>> meta) { |
30 this.label = label; | |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 this.description = desc; |
9074 | 32 this.opts = opts; |
33 this.meta = meta; | |
7821
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 |
8071
6e6506ec0ae0
Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7821
diff
changeset
|
36 public Map<String, Map<String, String>> getMeta() { |
9074 | 37 return this.meta; |
8071
6e6506ec0ae0
Parse meta data for multi attribute data.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7821
diff
changeset
|
38 } |
7821
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 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 * Returns the label of the item. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 * @return the label. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 */ |
9074 | 45 @Override |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 public String getLabel() { |
9074 | 47 return this.label; |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 } |
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 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 * Returns the description of the item. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 * @return the description. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 */ |
9074 | 55 @Override |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 public String getDescription() { |
9074 | 57 return this.description; |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 } |
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 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 * Returns the type of the item. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 * @return the type. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 */ |
9074 | 65 @Override |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 public String getType() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 return TYPE; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 } |
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 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 * 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
|
72 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 * @return the allowed options as DataItem array. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 */ |
9074 | 75 @Override |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 public DataItem[] getItems() { |
9074 | 77 return this.opts; |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 } |
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 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 * @return always null. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 */ |
9074 | 83 @Override |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 public DataItem getDefault() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 return null; |
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 |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 /** |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 * Returns the values as colon separated string. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 * |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 * @return colon separated string. |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 */ |
9074 | 93 @Override |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 public String getStringValue() { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 String data = ""; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 boolean first = true; |
9074 | 97 for (final DataItem opt : this.opts) { |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 if (!first) { |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 data += ";"; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 } |
9074 | 101 data += opt.getStringValue(); |
7821
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 first = false; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 return data; |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 } |
5c80f419aea4
Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 } |