annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugeTree.java @ 3842:44c1beb78ad1

Move GaugeTree to its own java file flys-client/trunk@5557 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Bjoern Ricks <bjoern.ricks@intevation.de>
date Fri, 21 Sep 2012 13:44:56 +0000
parents
children 7a096ec98596
rev   line source
3842
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
2
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
4 import java.util.List;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
5 import java.util.Iterator;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
6
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
7 import com.google.gwt.core.client.GWT;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
8 import com.google.gwt.i18n.client.NumberFormat;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
9 import com.google.gwt.user.client.ui.Anchor;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10 import com.google.gwt.user.client.ui.DecoratorPanel;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
11 import com.google.gwt.user.client.ui.Grid;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
12 import com.google.gwt.user.client.ui.Label;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
13 import com.google.gwt.user.client.ui.ScrollPanel;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
14 import com.google.gwt.user.client.ui.Tree;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
15 import com.google.gwt.user.client.ui.TreeItem;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
16
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.layout.HLayout;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
18
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.client.FLYSConstants;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
20
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.shared.model.Data;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.client.shared.model.DataItem;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.shared.model.DataList;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.shared.model.GaugeInfo;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.shared.model.RiverInfo;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
26
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
27
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
28 public class GaugeTree extends ScrollPanel {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
29
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
30 private Tree tree;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
31 private DataList[] data;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
32
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
33 /** The message class that provides i18n strings.*/
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
34 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
35
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
36 public GaugeTree() {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
37 tree = new Tree();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
38 setWidget(tree);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
39 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
40
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
41 /**
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
42 * Resets the items of the tree.
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
43 * If the list of gauges is empty or null the tree will be empty.
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
44 */
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
45 public void setGauges(RiverInfo riverinfo) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
46 tree.clear();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
47
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
48 List<GaugeInfo> gauges = riverinfo.getGauges();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
49
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
50 if (gauges != null && !gauges.isEmpty()) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
51
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
52 ArrayList<GaugeInfo> emptygauges = new ArrayList<GaugeInfo>();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
53
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
54 if (!riverinfo.isKmUp()) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
55 for (GaugeInfo gauge : gauges) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
56 addGauge(gauge, emptygauges);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
57 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
58 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
59 else {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
60 for (int i = gauges.size()-1; i >= 0; i--) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
61 GaugeInfo gauge = gauges.get(i);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
62 addGauge(gauge, emptygauges);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
63 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
64 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
65
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
66 // put empty gauges to the end
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
67 for (GaugeInfo gauge : emptygauges) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
68 addGauge(gauge);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
69 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
70
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
71 open();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
72 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
73 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
74
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
75 private void addGauge(GaugeInfo gauge, List<GaugeInfo> empty) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
76 if (gauge.getKmStart() != null && gauge.getKmEnd() != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
77 addGauge(gauge);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
78 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
79 else {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
80 empty.add(gauge);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
81 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
82 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
83
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
84 private void addGauge(GaugeInfo gauge) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
85 GaugeInfoItem gaugeitem = new GaugeInfoItem(gauge);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
86 tree.addItem(gaugeitem);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
87 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
88
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
89 public void openAll() {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
90 GWT.log("GaugeTree - openAll");
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
91 for (Iterator<TreeItem> it = tree.treeItemIterator(); it.hasNext();) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
92 TreeItem item = it.next();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
93 item.setState(true);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
94 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
95 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
96
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
97 public void setData(DataList[] data) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
98 this.data = data;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
99 if (tree.getItemCount() > 0) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
100 open();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
101 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
102 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
103
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
104 public void open() {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
105 ArrayList<Double> locations = new ArrayList<Double>();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
106
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
107 if (data != null && data.length > 0) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
108 for (int i = 0; i < data.length; i++) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
109 DataList dl = data[i];
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
110 String state = dl.getState();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
111 GWT.log("GaugeTree - setData " + state);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
112 if (state.equals("state.winfo.location_distance")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
113 Double ldfrom = null;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
114 Double ldto = null;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
115
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
116 for (int j = dl.size()-1; j >= 0; --j) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
117 Data d = dl.get(j);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
118 String label = d.getLabel();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
119 GWT.log("GaugeTree - setData - label " + label + " " + d.getStringValue());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
120 if (label.equals("ld_from")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
121 ldfrom = getDoubleValue(d);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
122 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
123 else if (label.equals("ld_to")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
124 ldto = getDoubleValue(d);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
125 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
126 else if (label.equals("ld_locations")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
127 getLocationsFromData(locations, d);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
128 openOnLocations(locations);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
129 return;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
130 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
131 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
132 if (ldfrom != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
133 openOnDistance(ldfrom, ldto);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
134 return;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
135 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
136 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
137 else if(state.equals("state.winfo.distance_only") ||
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
138 state.equals("state.winfo.distance")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
139 Double ldfrom = null;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
140 Double ldto = null;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
141
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
142 for (int j = dl.size()-1; j >= 0; --j) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
143 Data d = dl.get(j);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
144 String label = d.getLabel();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
145 GWT.log("GaugeTree - setData - label " + label + " " + d.getStringValue());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
146 if (label.equals("ld_from")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
147 ldfrom = getDoubleValue(d);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
148 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
149 else if (label.equals("ld_to")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
150 ldto = getDoubleValue(d);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
151 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
152 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
153
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
154 if (ldfrom != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
155 openOnDistance(ldfrom, ldto);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
156 return;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
157 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
158 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
159 else if (state.equals("state.winfo.location")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
160 getLocations("ld_locations", locations, dl);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
161 openOnLocations(locations);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
162 return;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
163 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
164 else if (state.equals("state.winfo.reference.curve.input.start")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
165 getLocations("reference_startpoint", locations, dl);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
166 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
167 else if (state.equals("state.winfo.reference.curve.input.end")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
168 getLocations("reference_endpoint", locations, dl);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
169 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
170 else if (state.equals("state.winfo.historicalq.reference_gauge")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
171 for (int j = dl.size()-1; j >= 0; --j) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
172 Data d = dl.get(j);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
173 String label = d.getLabel();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
174 if (label.equals("reference_gauge")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
175 String tmp = d.getStringValue();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
176 if (tmp != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
177 Integer gaugereference = Integer.valueOf(tmp);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
178 if (gaugereference != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
179 //TODO
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
180 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
181 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
182 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
183 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
184 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
185 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
186 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
187 if (!locations.isEmpty()) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
188 openOnLocations(locations);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
189 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
190 else {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
191 openAll();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
192 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
193 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
194
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
195 private void getLocations(String labelname, List<Double> locations, DataList dl) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
196 for (int j = dl.size()-1; j >= 0; --j) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
197 Data d = dl.get(j);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
198 String label = d.getLabel();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
199 if (label.equals(labelname)) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
200 getLocationsFromData(locations, d);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
201 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
202 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
203 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
204
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
205 private void getLocationsFromData(List<Double> locations, Data data) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
206 DataItem[] items = data.getItems();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
207 for (int k = 0; k < items.length; k++) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
208 String tmp = items[k].getStringValue();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
209 GWT.log("GaugeTree - getLocationsFromData " + tmp);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
210 if (tmp != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
211 if (tmp.contains(" ")) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
212 // string contains several values ...
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
213 String[] values = tmp.split(" ");
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
214 for(int i=0; i < values.length; i++) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
215 Double value = Double.valueOf(values[i]);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
216 if (value != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
217 locations.add(value);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
218 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
219 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
220 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
221 else {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
222 Double value = Double.valueOf(tmp);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
223 if (value != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
224 locations.add(value);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
225 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
226 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
227 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
228 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
229 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
230
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
231 private Double getDoubleValue(Data d) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
232 String tmp = d.getStringValue();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
233 if (tmp != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
234 return Double.valueOf(tmp);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
235 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
236 return null;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
237 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
238
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
239 public void openOnDistance(Double start, Double end) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
240 GWT.log("GaugeTree - openOnDistance " + start + " " + end + " " +
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
241 tree.getItemCount());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
242
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
243 for (Iterator<TreeItem> it = tree.treeItemIterator(); it.hasNext();) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
244 TreeItem item = it.next();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
245 /* Strange stuff is happening here:
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
246 * GWT Tree.treeItemIterator returns another TreeItem for each
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
247 * GaugeInfoItem */
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
248 if (item instanceof GaugeInfoItem) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
249 boolean setstate = false;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
250 GaugeInfoItem gitem = (GaugeInfoItem)item;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
251 if (end == null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
252 if (gitem.getStart() >= start) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
253 setstate = true;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
254 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
255 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
256 else {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
257 GWT.log("GaugeTree - openOnDistance gitem " + gitem.getStart() + " " + gitem.getEnd());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
258 if ((start >= gitem.getStart() && start <= gitem.getEnd()) ||
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
259 (end >= gitem.getStart() && end <= gitem.getEnd()) ||
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
260 (start <= gitem.getStart() && end >= gitem.getEnd())) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
261 setstate = true;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
262 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
263 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
264 item.setState(setstate);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
265 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
266 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
267 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
268
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
269 public void openOnLocations(List<Double> locations) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
270 GWT.log("GaugeTree - openOnLocations " + locations + " " +
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
271 tree.getItemCount());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
272
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
273 if (locations == null || locations.isEmpty()) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
274 return;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
275 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
276
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
277 for (Iterator<TreeItem> it = tree.treeItemIterator(); it.hasNext();) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
278 TreeItem item = it.next();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
279 if (item instanceof GaugeInfoItem) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
280 GaugeInfoItem gitem = (GaugeInfoItem)item;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
281 boolean isset = false;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
282 for (Double location: locations) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
283 if (locations == null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
284 continue;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
285 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
286 if (location >= gitem.getStart() &&
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
287 location <= gitem.getEnd()) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
288 isset = true;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
289 break;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
290 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
291 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
292 item.setState(isset);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
293 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
294 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
295 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
296
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
297 class GaugeInfoItem extends TreeItem {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
298
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
299 private GaugeInfo gauge;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
300
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
301 public GaugeInfoItem(GaugeInfo gauge) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
302 GaugeInfoHead gaugeinfohead = new GaugeInfoHead(gauge);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
303 GaugeInfoPanel gaugeinfopanel = new GaugeInfoPanel(gauge);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
304 setWidget(gaugeinfohead);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
305 addItem(gaugeinfopanel);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
306 this.gauge = gauge;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
307 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
308
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
309 public Double getStart() {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
310 return gauge.getKmStart();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
311 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
312
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
313 public Double getEnd() {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
314 return gauge.getKmEnd();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
315 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
316 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
317
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
318 class GaugeInfoHead extends HLayout {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
319
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
320 public GaugeInfoHead(GaugeInfo gauge) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
321 setStyleName("gaugeinfohead");
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
322 setAutoHeight();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
323 setAutoWidth();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
324
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
325 NumberFormat nf = NumberFormat.getDecimalFormat();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
326
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
327 Label label = new Label(gauge.getName(), true);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
328 addMember(label);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
329
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
330 Double start;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
331 Double end;
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
332
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
333 if (!gauge.isKmUp()) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
334 start = gauge.getKmStart();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
335 end = gauge.getKmEnd();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
336 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
337 else {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
338 start = gauge.getKmEnd();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
339 end = gauge.getKmStart();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
340 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
341
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
342 String kmtext = "";
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
343 if (start != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
344 kmtext += nf.format(start);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
345 kmtext += " - ";
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
346 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
347 if (end != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
348 kmtext += nf.format(end);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
349 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
350 if (start != null || end != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
351 kmtext += " km";
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
352 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
353
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
354 label = new Label(kmtext);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
355
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
356 addMember(label);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
357
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
358 Double station = gauge.getStation();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
359 if (station != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
360 String stext = nf.format(station);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
361 stext += " km";
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
362 label = new Label(stext);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
363 addMember(label);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
364 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
365
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
366 addMember(new Anchor(MSG.gauge_info_link(), gauge.getInfoURL()));
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
367 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
368 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
369
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
370 class GaugeInfoPanel extends DecoratorPanel {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
371
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
372 public GaugeInfoPanel(GaugeInfo gauge) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
373 setStyleName("gaugeinfopanel");
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
374 Grid grid = new Grid(4, 2);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
375
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
376 NumberFormat nf = NumberFormat.getDecimalFormat();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
377
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
378 Double minw = gauge.getMinW();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
379 Double maxw = gauge.getMaxW();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
380 if (minw != null && maxw != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
381 grid.setText(0, 0, MSG.wq_value_q());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
382 grid.setText(0, 1, "" + nf.format(minw) +
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
383 " - " + nf.format(maxw));
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
384 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
385
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
386 Double minq = gauge.getMinQ();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
387 Double maxq = gauge.getMaxQ();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
388 if (minq != null && maxq != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
389 grid.setText(1, 0, MSG.wq_value_w());
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
390 grid.setText(1, 1, "" + nf.format(minq) +
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
391 " - " + nf.format(maxq));
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
392 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
393
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
394 Double aeo = gauge.getAeo();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
395 if (aeo != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
396 grid.setText(2, 0, "AEO [kmĀ²]");
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
397 grid.setText(2, 1, "" + nf.format(aeo));
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
398 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
399
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
400 Double datum = gauge.getDatum();
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
401 if (datum != null) {
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
402 grid.setText(3, 0, MSG.gauge_zero() + " [" +
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
403 gauge.getWstUnit() + "]");
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
404 grid.setText(3, 1, "" + nf.format(datum));
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
405 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
406
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
407 setWidget(grid);
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
408 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
409 }
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
410
44c1beb78ad1 Move GaugeTree to its own java file
Bjoern Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
411 }

http://dive4elements.wald.intevation.org