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