annotate gwt-client/src/main/java/org/dive4elements/river/client/shared/model/AttrList.java @ 9227:84397da33d17

Allow to control specific behaviour in TwinDatacagePanel Implemented client logic of 'intelligent datacage filtering' for SINFO
author gernotbelger
date Wed, 04 Jul 2018 18:28:08 +0200
parents 4b29bb2c785f
children
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.shared.model;
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
11 import java.io.Serializable;
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 import java.util.ArrayList;
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
13 import java.util.List;
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
15 // FIXME: who implements a thing like this?? this is a HashMap!!
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 public class AttrList implements Serializable
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 {
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
18 private static final long serialVersionUID = 1L;
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
19
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
20 private List<String> keyValues;
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 public AttrList() {
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 this(5);
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 }
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
26 public AttrList(final int size) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
27 this.keyValues = new ArrayList<String>(size*2);
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 }
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 public int size() {
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
31 return this.keyValues.size() / 2;
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 }
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
34 /**
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
35 * IMPORTANT: necessary for serialization
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
36 */
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
37 public void setKeyValues(final List<String> keyValues) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
38 this.keyValues = keyValues;
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 }
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
41 public String getKey(final int index) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
42 return this.keyValues.get(index*2);
813
57ea5af8a967 Meta data service converter: transfer attributes to client, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 }
7465
4b29bb2c785f Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5993
diff changeset
44
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
45 public String getValue(final int index) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
46 return this.keyValues.get(index*2 + 1);
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
47 }
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
48
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
49 public String getValue(final String key) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
50 for (int i = 0, N = this.keyValues.size(); i < N; i += 2) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
51 if (this.keyValues.get(i).equals(key)) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
52 return this.keyValues.get(i + 1);
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
53 }
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
54 }
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
55 return null;
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
56 }
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
57
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
58 public void add(final String key, final String value) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
59 this.keyValues.add(key);
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
60 this.keyValues.add(value);
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
61 }
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
62
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
63 public boolean hasAttribute(final String key) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
64 for (int i = 0, N = this.keyValues.size(); i < N; i += 2) {
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
65 if (this.keyValues.get(i).equals(key)) {
7465
4b29bb2c785f Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5993
diff changeset
66 return true;
4b29bb2c785f Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5993
diff changeset
67 }
4b29bb2c785f Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5993
diff changeset
68 }
4b29bb2c785f Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5993
diff changeset
69 return false;
4b29bb2c785f Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5993
diff changeset
70 }
9227
84397da33d17 Allow to control specific behaviour in TwinDatacagePanel
gernotbelger
parents: 7465
diff changeset
71 }

http://dive4elements.wald.intevation.org