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 }

http://dive4elements.wald.intevation.org