annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/bundu/CustomFixationChoiceRadioPanel.java @ 9366:3d006afee054

bundu.bezugswst workflow reviewed
author gernotbelger
date Thu, 02 Aug 2018 15:06:22 +0200
parents c7e5285d434f
children 1a4d2ce77423
rev   line source
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
3 *
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
7 */
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
8
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.client.client.ui.bundu;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
10
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
11 import java.util.ArrayList;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
12 import java.util.Iterator;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
13 import java.util.LinkedHashMap;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
14 import java.util.List;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
15
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.client.client.ui.RadioPanel;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.client.client.ui.fixation.FixEventSelect;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.client.client.ui.fixation.FixGaugeSelectPanel;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.client.shared.model.Data;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.client.shared.model.DataItem;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.client.shared.model.DataList;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.client.shared.model.DefaultData;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.client.shared.model.DefaultDataItem;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.client.shared.model.IntDataItem;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
25 import org.dive4elements.river.client.shared.model.IntegerArrayData;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
26
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
27 import com.google.gwt.i18n.client.DateTimeFormat;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
28 import com.smartgwt.client.widgets.Canvas;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
29 import com.smartgwt.client.widgets.Label;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
30 import com.smartgwt.client.widgets.layout.HLayout;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
31 import com.smartgwt.client.widgets.layout.VLayout;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
32
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
33 public class CustomFixationChoiceRadioPanel extends RadioPanel {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
34
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
35 private static final long serialVersionUID = 3357071563224461043L;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
36
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
37 private String events[];
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
38 private int bezugsjahr = 0;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
39
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
40 @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
41 public Canvas createOld(final DataList dataList) { // wild überschrieben :-(
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
42 final List<Data> list = dataList.getAll();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
43
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
44 final VLayout root = new VLayout();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
45 final HLayout layoutChoice = new HLayout();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
46 layoutChoice.setHeight(35);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
47 layoutChoice.setWidth(400);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
48
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
49 for (final Data item : list) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
50 if ("fix_choice".equals(item.getLabel())) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
51 final Label labelLabel = new Label(this.MSG.bundu_bezugswst_fix_choice_title());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
52 final Label valueLabel = new Label(item.getItems()[0].getLabel());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
53
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
54 labelLabel.setWidth(200);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
55 valueLabel.setWidth(180);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
56 layoutChoice.addMember(labelLabel);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
57 layoutChoice.addMember(valueLabel);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
58 final Canvas back = getBackButton(dataList.getState());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
59 layoutChoice.addMember(back);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
60 root.addMember(layoutChoice);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
61 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
62 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
63
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
64 final Data data = getData(list, "events");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
65 if (data != null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
66
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
67 final VLayout dataLayout = FixEventSelect.getEventDataLayout(data);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
68
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
69 final HLayout layout = new HLayout();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
70 layout.setWidth("400px");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
71 final Label label = new Label(this.MSG.bundu_bezugswst_auto_event_choice());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
72 label.setWidth("200px");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
73 layout.addMember(label);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
74 layout.addMember(dataLayout);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
75 root.addMember(layout);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
76 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
77
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
78 return root;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
79 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
80
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
81 @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
82 public Canvas create(final DataList dataList) { // wild überschrieben :-(
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
83 final Data data = dataList.get(0);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
84 final DataItem[] items = data.getItems();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
85 for (final DataItem item : items) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
86 if (item.getLabel().equals("ignore_events_temp")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
87 if (!item.getStringValue().equals(""))
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
88 this.events = (item.getStringValue().split(";"));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
89
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
90 } else if (item.getLabel().equals("ignore_singleyear")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
91 this.bezugsjahr = Integer.valueOf(item.getStringValue());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
92 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
93 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
94 return super.create(dataList);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
95 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
96
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
97 @Override
9366
3d006afee054 bundu.bezugswst workflow reviewed
gernotbelger
parents: 9267
diff changeset
98 protected Data[] getData() {
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
99 final String value = this.form.getValueAsString("selection");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
100 final List<Data> data = new ArrayList<Data>();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
101
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
102 // Default-values for data. they have to be reset, if user switches from auto to manual
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
103 IntegerArrayData iad = new IntegerArrayData("events", "events", new IntDataItem[] {});
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
104 DataItem firstItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
105 DataItem secItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
106 DataItem startItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
107 DataItem endItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
108
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
109 final DataItem item = new DefaultDataItem("fix_choice", "fix_choice", value);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
110 data.add(new DefaultData("fix_choice", null, null, new DataItem[] { item }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
111
9366
3d006afee054 bundu.bezugswst workflow reviewed
gernotbelger
parents: 9267
diff changeset
112 if (value.equals("state.bundu.wst.fix.auto")) {
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
113 // set gauges: (do not appear in create old, but need to be set for calculation purpose
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
114 final LinkedHashMap<String, String> map = FixGaugeSelectPanel.getMapValues(this.MSG);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
115 final String mnq = this.MSG.gauge_mnq();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
116 final String hq5 = this.MSG.gauge_hq5();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
117 String firstKey = "-1";
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
118 String secondKey = "-1";
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
119 // irgendwie hässlich, aber sicher (man kann die Map ändern und kriegt hier den richtigen Index)
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
120 final Iterator<String> iterator = map.keySet().iterator();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
121 while (iterator.hasNext()) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
122 final String key = iterator.next();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
123 final String mapValue = map.get(key);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
124 if (mnq.equals(mapValue)) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
125 firstKey = key;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
126 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
127 if (hq5.equals(mapValue)) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
128 secondKey = key;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
129 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
130 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
131 firstItem = new DefaultDataItem("q1", "q1", firstKey);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
132 secItem = new DefaultDataItem("q2", "q2", secondKey);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
133
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
134 // make start, end
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
135 final DateTimeFormat df = DateTimeFormat.getFormat("dd.MM.yyyy");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
136 /// EVENT SELECTION... have to appear in selectOld somehow...
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
137 startItem = new DefaultDataItem("start", "start", String.valueOf(df.parse("01.01." + (this.bezugsjahr - 5)).getTime()));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
138 endItem = new DefaultDataItem("end", "end", String.valueOf(df.parse("31.12." + (this.bezugsjahr + 5)).getTime()));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
139
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
140 /// MAKE EVENTS (muss glaube ich zum schluss erst erscheinen...
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
141 if (this.events != null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
142 final IntDataItem[] arr = new IntDataItem[this.events.length];
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
143 for (int i = 0; i < this.events.length; i++) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
144 try {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
145 final String s = this.events[i];
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
146 final Integer v = new Integer(s);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
147 arr[i] = new IntDataItem("id", "id", v.intValue());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
148 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
149 catch (final NumberFormatException nfe) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
150 continue;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
151 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
152 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
153 iad = new IntegerArrayData("events", "events", arr); // overrides "real" events with events_temp from previous state...
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
154 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
155 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
156
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
157 data.add(iad);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
158
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
159 data.add(new DefaultData("q1", null, null, new DataItem[] { firstItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
160 data.add(new DefaultData("q2", null, null, new DataItem[] { secItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
161 data.add(new DefaultData("start", null, null, new DataItem[] { startItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
162 data.add(new DefaultData("end", null, null, new DataItem[] { endItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
163
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
164 return data.toArray(new Data[data.size()]);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
165
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
166 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
167
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
168 }

http://dive4elements.wald.intevation.org