Mercurial > dive4elements > river
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 } |