annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/bundu/CustomFixationChoiceRadioPanel.java @ 9369:1a4d2ce77423

radio choice fix
author gernotbelger
date Thu, 02 Aug 2018 17:39:13 +0200
parents 3d006afee054
children
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
9369
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
40 public CustomFixationChoiceRadioPanel() {
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
41 super("fix_choice");
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
42 }
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
43
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
44 @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
45 public Canvas createOld(final DataList dataList) { // wild überschrieben :-(
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
46 final List<Data> list = dataList.getAll();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
47
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
48 final VLayout root = new VLayout();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
49 final HLayout layoutChoice = new HLayout();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
50 layoutChoice.setHeight(35);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
51 layoutChoice.setWidth(400);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
52
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
53 for (final Data item : list) {
9369
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
54 if (getDatakey().equals(item.getLabel())) {
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
55 final Label labelLabel = new Label(this.MSG.bundu_bezugswst_fix_choice_title());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
56 final Label valueLabel = new Label(item.getItems()[0].getLabel());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
57
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
58 labelLabel.setWidth(200);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
59 valueLabel.setWidth(180);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
60 layoutChoice.addMember(labelLabel);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
61 layoutChoice.addMember(valueLabel);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
62 final Canvas back = getBackButton(dataList.getState());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
63 layoutChoice.addMember(back);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
64 root.addMember(layoutChoice);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
65 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
66 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
67
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
68 final Data data = getData(list, "events");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
69 if (data != null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
70
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
71 final VLayout dataLayout = FixEventSelect.getEventDataLayout(data);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
72
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
73 final HLayout layout = new HLayout();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
74 layout.setWidth("400px");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
75 final Label label = new Label(this.MSG.bundu_bezugswst_auto_event_choice());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
76 label.setWidth("200px");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
77 layout.addMember(label);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
78 layout.addMember(dataLayout);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
79 root.addMember(layout);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
80 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
81
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
82 return root;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
83 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
84
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
85 @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
86 public Canvas create(final DataList dataList) { // wild überschrieben :-(
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
87 final Data data = dataList.get(0);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
88 final DataItem[] items = data.getItems();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
89 for (final DataItem item : items) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
90 if (item.getLabel().equals("ignore_events_temp")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
91 if (!item.getStringValue().equals(""))
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
92 this.events = (item.getStringValue().split(";"));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
93
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
94 } else if (item.getLabel().equals("ignore_singleyear")) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
95 this.bezugsjahr = Integer.valueOf(item.getStringValue());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
96 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
97 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
98 return super.create(dataList);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
99 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
100
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
101 @Override
9366
3d006afee054 bundu.bezugswst workflow reviewed
gernotbelger
parents: 9267
diff changeset
102 protected Data[] getData() {
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
103 final String value = this.form.getValueAsString("selection");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
104 final List<Data> data = new ArrayList<Data>();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
105
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
106 // Default-values for data. they have to be reset, if user switches from auto to manual
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
107 IntegerArrayData iad = new IntegerArrayData("events", "events", new IntDataItem[] {});
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
108 DataItem firstItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
109 DataItem secItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
110 DataItem startItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
111 DataItem endItem = new DefaultDataItem(null, null, "");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
112
9369
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
113 final DataItem item = new DefaultDataItem(getDatakey(), getDatakey(), value);
1a4d2ce77423 radio choice fix
gernotbelger
parents: 9366
diff changeset
114 data.add(new DefaultData(getDatakey(), null, null, new DataItem[] { item }));
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
115
9366
3d006afee054 bundu.bezugswst workflow reviewed
gernotbelger
parents: 9267
diff changeset
116 if (value.equals("state.bundu.wst.fix.auto")) {
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
117 // set gauges: (do not appear in create old, but need to be set for calculation purpose
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
118 final LinkedHashMap<String, String> map = FixGaugeSelectPanel.getMapValues(this.MSG);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
119 final String mnq = this.MSG.gauge_mnq();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
120 final String hq5 = this.MSG.gauge_hq5();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
121 String firstKey = "-1";
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
122 String secondKey = "-1";
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
123 // irgendwie hässlich, aber sicher (man kann die Map ändern und kriegt hier den richtigen Index)
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
124 final Iterator<String> iterator = map.keySet().iterator();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
125 while (iterator.hasNext()) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
126 final String key = iterator.next();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
127 final String mapValue = map.get(key);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
128 if (mnq.equals(mapValue)) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
129 firstKey = key;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
130 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
131 if (hq5.equals(mapValue)) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
132 secondKey = key;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
133 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
134 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
135 firstItem = new DefaultDataItem("q1", "q1", firstKey);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
136 secItem = new DefaultDataItem("q2", "q2", secondKey);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
137
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
138 // make start, end
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
139 final DateTimeFormat df = DateTimeFormat.getFormat("dd.MM.yyyy");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
140 /// EVENT SELECTION... have to appear in selectOld somehow...
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
141 startItem = new DefaultDataItem("start", "start", String.valueOf(df.parse("01.01." + (this.bezugsjahr - 5)).getTime()));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
142 endItem = new DefaultDataItem("end", "end", String.valueOf(df.parse("31.12." + (this.bezugsjahr + 5)).getTime()));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
143
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
144 /// MAKE EVENTS (muss glaube ich zum schluss erst erscheinen...
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
145 if (this.events != null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
146 final IntDataItem[] arr = new IntDataItem[this.events.length];
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
147 for (int i = 0; i < this.events.length; i++) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
148 try {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
149 final String s = this.events[i];
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
150 final Integer v = new Integer(s);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
151 arr[i] = new IntDataItem("id", "id", v.intValue());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
152 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
153 catch (final NumberFormatException nfe) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
154 continue;
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 iad = new IntegerArrayData("events", "events", arr); // overrides "real" events with events_temp from previous state...
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
158 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
159 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
160
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
161 data.add(iad);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
162
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
163 data.add(new DefaultData("q1", null, null, new DataItem[] { firstItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
164 data.add(new DefaultData("q2", null, null, new DataItem[] { secItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
165 data.add(new DefaultData("start", null, null, new DataItem[] { startItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
166 data.add(new DefaultData("end", null, null, new DataItem[] { endItem }));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
167
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
168 return data.toArray(new Data[data.size()]);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
169
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
170 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
171
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
172 }

http://dive4elements.wald.intevation.org