Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixGaugeSelectPanel.java @ 9256:6c24c857ccf9
fixation refactoring and inputItem behaviour to interfaces
author | gernotbelger |
---|---|
date | Fri, 13 Jul 2018 12:04:21 +0200 |
parents | 716709cd5ba3 |
children | c7e5285d434f |
comparison
equal
deleted
inserted
replaced
9255:9be51f776798 | 9256:6c24c857ccf9 |
---|---|
6 * documentation coming with Dive4Elements River for details. | 6 * documentation coming with Dive4Elements River for details. |
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.client.client.ui.fixation; | 9 package org.dive4elements.river.client.client.ui.fixation; |
10 | 10 |
11 import java.util.ArrayList; | |
12 import java.util.LinkedHashMap; | |
13 import java.util.List; | |
14 | |
15 import org.dive4elements.river.client.client.FLYSConstants; | |
16 import org.dive4elements.river.client.shared.model.Data; | |
17 import org.dive4elements.river.client.shared.model.DataItem; | |
18 import org.dive4elements.river.client.shared.model.DataList; | |
19 import org.dive4elements.river.client.shared.model.DefaultData; | |
20 import org.dive4elements.river.client.shared.model.DefaultDataItem; | |
21 import org.dive4elements.river.client.shared.model.FixingsOverviewInfo; | |
22 | |
11 import com.google.gwt.core.client.GWT; | 23 import com.google.gwt.core.client.GWT; |
12 | |
13 import com.smartgwt.client.widgets.Canvas; | 24 import com.smartgwt.client.widgets.Canvas; |
14 import com.smartgwt.client.widgets.Label; | 25 import com.smartgwt.client.widgets.Label; |
15 import com.smartgwt.client.widgets.form.DynamicForm; | 26 import com.smartgwt.client.widgets.form.DynamicForm; |
16 import com.smartgwt.client.widgets.form.fields.SelectItem; | 27 import com.smartgwt.client.widgets.form.fields.SelectItem; |
17 import com.smartgwt.client.widgets.form.fields.StaticTextItem; | 28 import com.smartgwt.client.widgets.form.fields.StaticTextItem; |
18 import com.smartgwt.client.widgets.layout.HLayout; | 29 import com.smartgwt.client.widgets.layout.HLayout; |
19 import com.smartgwt.client.widgets.layout.VLayout; | 30 import com.smartgwt.client.widgets.layout.VLayout; |
20 | 31 |
21 import org.dive4elements.river.client.client.FLYSConstants; | |
22 import org.dive4elements.river.client.shared.model.Data; | |
23 import org.dive4elements.river.client.shared.model.DataItem; | |
24 import org.dive4elements.river.client.shared.model.DataList; | |
25 import org.dive4elements.river.client.shared.model.DefaultData; | |
26 import org.dive4elements.river.client.shared.model.DefaultDataItem; | |
27 | |
28 import java.util.ArrayList; | |
29 import java.util.LinkedHashMap; | |
30 import java.util.List; | |
31 | |
32 /** | 32 /** |
33 * This UIProvider creates a panel to select discharge classes / sectors | 33 * This UIProvider creates a panel to select discharge classes / sectors |
34 * (german Abflussklassen). | 34 * (german Abflussklassen). |
35 * | 35 * |
36 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | 36 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> |
37 */ | 37 */ |
38 public class FixGaugeSelectPanel | 38 public class FixGaugeSelectPanel extends FixationPanel { |
39 extends FixationPanel | |
40 { | |
41 /** The message class that provides i18n strings. */ | 39 /** The message class that provides i18n strings. */ |
42 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); | 40 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); |
43 | 41 |
44 protected String first; | 42 protected String first; |
45 protected String second; | 43 protected String second; |
48 protected SelectItem to; | 46 protected SelectItem to; |
49 | 47 |
50 protected LinkedHashMap<String, String> mapValues; | 48 protected LinkedHashMap<String, String> mapValues; |
51 | 49 |
52 public FixGaugeSelectPanel() { | 50 public FixGaugeSelectPanel() { |
53 htmlOverview = ""; | 51 this.mapValues = new LinkedHashMap<String, String>(); |
54 | 52 this.mapValues.put("0", this.MESSAGES.gauge_mnq()); |
55 mapValues = new LinkedHashMap<String, String>(); | 53 this.mapValues.put("1", this.MESSAGES.gauge_mq()); |
56 mapValues.put("0", MESSAGES.gauge_mnq()); | 54 this.mapValues.put("2", this.MESSAGES.gauge_mhq()); |
57 mapValues.put("1", MESSAGES.gauge_mq()); | 55 this.mapValues.put("3", this.MESSAGES.gauge_hq5()); |
58 mapValues.put("2", MESSAGES.gauge_mhq()); | |
59 mapValues.put("3", MESSAGES.gauge_hq5()); | |
60 } | 56 } |
61 | 57 |
62 @Override | 58 @Override |
63 public Canvas createWidget(DataList data) { | 59 public Canvas createWidget(final DataList data) { |
64 instances.put(this.artifact.getUuid(), this); | 60 instances.put(this.artifact.getUuid(), this); |
65 | 61 |
66 VLayout layout = new VLayout(); | 62 final VLayout layout = new VLayout(); |
67 | 63 |
68 Label title = new Label(MESSAGES.gauge_class()); | 64 final Label title = new Label(this.MESSAGES.gauge_class()); |
69 title.setHeight(25); | 65 title.setHeight(25); |
70 | 66 |
71 from = new SelectItem(MESSAGES.from()); | 67 this.from = new SelectItem(this.MESSAGES.from()); |
72 to = new SelectItem(MESSAGES.to()); | 68 this.to = new SelectItem(this.MESSAGES.to()); |
73 | 69 |
74 from.setShowTitle(false); | 70 this.from.setShowTitle(false); |
75 to.setShowTitle(false); | 71 this.to.setShowTitle(false); |
76 from.setValueMap(mapValues); | 72 this.from.setValueMap(this.mapValues); |
77 from.setDefaultValues("0"); | 73 this.from.setDefaultValues("0"); |
78 from.setWidth(160); | 74 this.from.setWidth(160); |
79 to.setValueMap(mapValues); | 75 this.to.setValueMap(this.mapValues); |
80 to.setDefaultValues("3"); | 76 this.to.setDefaultValues("3"); |
81 to.setWidth(160); | 77 this.to.setWidth(160); |
82 | 78 |
83 DynamicForm form = new DynamicForm(); | 79 final DynamicForm form = new DynamicForm(); |
84 StaticTextItem separator = new StaticTextItem("separator"); | 80 final StaticTextItem separator = new StaticTextItem("separator"); |
85 separator.setShowTitle(false); | 81 separator.setShowTitle(false); |
86 separator.setValue(MESSAGES.to()); | 82 separator.setValue(this.MESSAGES.to()); |
87 form.setNumCols(5); | 83 form.setNumCols(5); |
88 form.setFields(from, separator, to); | 84 form.setFields(this.from, separator, this.to); |
89 | 85 |
90 layout.addMember(title); | 86 layout.addMember(title); |
91 layout.addMember(form); | 87 layout.addMember(form); |
92 | 88 |
93 return layout; | 89 return layout; |
94 } | 90 } |
95 | 91 |
96 @Override | 92 @Override |
97 public Canvas createOld(DataList dataList) { | 93 public Canvas createOld(final DataList dataList) { |
98 List<Data> items = dataList.getAll(); | 94 final List<Data> items = dataList.getAll(); |
99 | 95 |
100 Data f = getData(items, "q1"); | 96 final Data f = getData(items, "q1"); |
101 Data t = getData(items, "q2"); | 97 final Data t = getData(items, "q2"); |
102 DataItem[] fItems = f.getItems(); | 98 final DataItem[] fItems = f.getItems(); |
103 DataItem[] tItems = t.getItems(); | 99 final DataItem[] tItems = t.getItems(); |
104 | 100 |
105 StringBuilder sb = new StringBuilder(); | 101 final StringBuilder sb = new StringBuilder(); |
106 sb.append(mapValues.get(fItems[0].getLabel())); | 102 sb.append(this.mapValues.get(fItems[0].getLabel())); |
107 sb.append(" " + MESSAGES.to() + " "); | 103 sb.append(" " + this.MESSAGES.to() + " "); |
108 sb.append(mapValues.get(tItems[0].getLabel())); | 104 sb.append(this.mapValues.get(tItems[0].getLabel())); |
109 | 105 |
110 Label old = new Label(sb.toString()); | 106 final Label old = new Label(sb.toString()); |
111 old.setWidth(130); | 107 old.setWidth(130); |
112 | 108 |
113 HLayout layout = new HLayout(); | 109 final HLayout layout = new HLayout(); |
114 layout.setWidth("400px"); | 110 layout.setWidth("400px"); |
115 Label label = new Label(dataList.getLabel()); | 111 final Label label = new Label(dataList.getLabel()); |
116 label.setWidth("200px"); | 112 label.setWidth("200px"); |
117 | 113 |
118 Canvas back = getBackButton(dataList.getState()); | 114 final Canvas back = getBackButton(dataList.getState()); |
119 | 115 |
120 layout.addMember(label); | 116 layout.addMember(label); |
121 layout.addMember(old); | 117 layout.addMember(old); |
122 layout.addMember(back); | 118 layout.addMember(back); |
123 return layout; | 119 return layout; |
124 } | 120 } |
125 | |
126 | 121 |
127 /** | 122 /** |
128 * This method returns the selected data. | 123 * This method returns the selected data. |
129 * | 124 * |
130 * @return the selected/inserted data. | 125 * @return the selected/inserted data. |
131 */ | 126 */ |
132 @Override | 127 @Override |
133 public Data[] getData() { | 128 public Data[] getData() { |
134 List<Data> data = new ArrayList<Data>(); | 129 final List<Data> data = new ArrayList<Data>(); |
135 | 130 |
136 boolean valid = saveClassValues(); | 131 final boolean valid = saveClassValues(); |
137 if (valid) { | 132 if (valid) { |
138 DataItem firstItem = new DefaultDataItem("q1", "q1", this.first); | 133 final DataItem firstItem = new DefaultDataItem("q1", "q1", this.first); |
139 DataItem secItem = new DefaultDataItem("q2", "q2", this.second); | 134 final DataItem secItem = new DefaultDataItem("q2", "q2", this.second); |
140 data.add(new DefaultData( | 135 data.add(new DefaultData("q1", null, null, new DataItem[] { firstItem })); |
141 "q1", | 136 data.add(new DefaultData("q2", null, null, new DataItem[] { secItem })); |
142 null, | |
143 null, | |
144 new DataItem[] { firstItem })); | |
145 data.add(new DefaultData( | |
146 "q2", | |
147 null, | |
148 null, | |
149 new DataItem[] { secItem })); | |
150 } | 137 } |
151 return data.toArray(new Data[data.size()]); | 138 return data.toArray(new Data[data.size()]); |
152 } | 139 } |
153 | 140 |
154 | |
155 @Override | 141 @Override |
156 public void setValues(String cid, boolean checked) { | 142 public void setValues(final String cid, final boolean checked) { |
157 // No user interaction, do nothing. | 143 // No user interaction, do nothing. |
158 } | 144 } |
159 | |
160 | 145 |
161 @Override | 146 @Override |
162 public boolean renderCheckboxes() { | 147 public boolean renderCheckboxes() { |
163 // No selection, return false. | 148 // No selection, return false. |
164 return false; | 149 return false; |
165 } | 150 } |
166 | 151 |
167 | |
168 @Override | 152 @Override |
169 public void success() {} | 153 public void success(final FixingsOverviewInfo fixInfo) { |
154 } | |
170 | 155 |
171 protected boolean saveClassValues() { | 156 protected boolean saveClassValues() { |
172 String v1 = from.getValueAsString(); | 157 final String v1 = this.from.getValueAsString(); |
173 String v2 = to.getValueAsString(); | 158 final String v2 = this.to.getValueAsString(); |
174 try { | 159 try { |
175 int v1i = Integer.parseInt(v1); | 160 final int v1i = Integer.parseInt(v1); |
176 int v2i = Integer.parseInt(v2); | 161 final int v2i = Integer.parseInt(v2); |
177 if (v1i <= v2i) { | 162 if (v1i <= v2i) { |
178 this.first = v1; | 163 this.first = v1; |
179 this.second = v2; | 164 this.second = v2; |
180 return true; | 165 return true; |
181 } | 166 } |
182 } | 167 } |
183 catch(NumberFormatException nfe) { | 168 catch (final NumberFormatException nfe) { |
184 return false; | 169 return false; |
185 } | 170 } |
186 return false; | 171 return false; |
187 } | 172 } |
188 } | 173 } |