annotate gwt-client/src/main/java/org/dive4elements/river/client/shared/model/MultiAttributeData.java @ 9074:766890addcb2

state To client communication;
author gernotbelger
date Fri, 18 May 2018 17:26:26 +0200
parents a805211690f7
children
rev   line source
8858
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
2 * Software engineering by Intevation GmbH
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
3 *
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
6 * documentation coming with Dive4Elements River for details.
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
7 */
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8071
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
13 public class MultiAttributeData implements Data {
7821
5c80f419aea4 Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14
9074
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
29 public MultiAttributeData(final String label, final String desc, final DataItem[] opts, final Map<String, Map<String, String>> meta) {
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
30 this.label = label;
7821
5c80f419aea4 Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 this.description = desc;
9074
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
32 this.opts = opts;
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
45 @Override
7821
5c80f419aea4 Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 public String getLabel() {
9074
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
55 @Override
7821
5c80f419aea4 Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 public String getDescription() {
9074
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
75 @Override
7821
5c80f419aea4 Added new state data type.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 public DataItem[] getItems() {
9074
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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
766890addcb2 state To client communication;
gernotbelger
parents: 8858
diff changeset
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 }

http://dive4elements.wald.intevation.org