comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixFunctionSelect.java @ 9256:6c24c857ccf9

fixation refactoring and inputItem behaviour to interfaces
author gernotbelger
date Fri, 13 Jul 2018 12:04:21 +0200
parents 5e38e2924c07
children e6958f0e72fa
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.HashMap;
12 import java.util.LinkedHashMap;
13 import java.util.Map;
14
15 import org.dive4elements.river.client.shared.model.Data;
16 import org.dive4elements.river.client.shared.model.DataItem;
17 import org.dive4elements.river.client.shared.model.DataList;
18 import org.dive4elements.river.client.shared.model.DefaultData;
19 import org.dive4elements.river.client.shared.model.DefaultDataItem;
20 import org.dive4elements.river.client.shared.model.FixingsOverviewInfo;
21
11 import com.smartgwt.client.types.VerticalAlignment; 22 import com.smartgwt.client.types.VerticalAlignment;
12 import com.smartgwt.client.widgets.Canvas; 23 import com.smartgwt.client.widgets.Canvas;
13 import com.smartgwt.client.widgets.Label; 24 import com.smartgwt.client.widgets.Label;
14 import com.smartgwt.client.widgets.form.DynamicForm; 25 import com.smartgwt.client.widgets.form.DynamicForm;
15 import com.smartgwt.client.widgets.form.fields.SelectItem; 26 import com.smartgwt.client.widgets.form.fields.SelectItem;
16 import com.smartgwt.client.widgets.layout.HLayout; 27 import com.smartgwt.client.widgets.layout.HLayout;
17 import com.smartgwt.client.widgets.layout.VLayout; 28 import com.smartgwt.client.widgets.layout.VLayout;
18 29
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
25 import java.util.HashMap;
26 import java.util.LinkedHashMap;
27 import java.util.Map;
28
29 public class FixFunctionSelect extends FixationPanel { 30 public class FixFunctionSelect extends FixationPanel {
30 private static final Map<String, String> funcDesc = 31 private static final Map<String, String> funcDesc = new HashMap<String, String>();
31 new HashMap<String, String>();
32 32
33 static { 33 static {
34 funcDesc.put("log", "W(Q) = m*ln(Q + b)"); 34 funcDesc.put("log", "W(Q) = m*ln(Q + b)");
35 funcDesc.put("linear", "W(Q) = m * Q + b"); 35 funcDesc.put("linear", "W(Q) = m * Q + b");
36 funcDesc.put("log-linear", "W(Q) = a*ln(m*Q+b)"); 36 funcDesc.put("log-linear", "W(Q) = a*ln(m*Q+b)");
38 funcDesc.put("quad", "W(Q) = n*Q^2+m*Q+b"); 38 funcDesc.put("quad", "W(Q) = n*Q^2+m*Q+b");
39 funcDesc.put("pow", "W(Q) = a * Q^c + d"); 39 funcDesc.put("pow", "W(Q) = a * Q^c + d");
40 funcDesc.put("sq-pow", "S(Q) = a * Q^b"); 40 funcDesc.put("sq-pow", "S(Q) = a * Q^b");
41 } 41 }
42 42
43 /** The combobox.*/ 43 /** The combobox. */
44 protected DynamicForm form; 44 protected DynamicForm form;
45 45
46 @Override 46 @Override
47 public Canvas createWidget(DataList data) { 47 public Canvas createWidget(final DataList data) {
48 VLayout layout = new VLayout(); 48 final VLayout layout = new VLayout();
49 layout.setAlign(VerticalAlignment.TOP); 49 layout.setAlign(VerticalAlignment.TOP);
50 layout.setHeight(25); 50 layout.setHeight(25);
51 51
52 LinkedHashMap initial = new LinkedHashMap(); 52 final LinkedHashMap initial = new LinkedHashMap();
53 53
54 form = new DynamicForm(); 54 this.form = new DynamicForm();
55 55
56 int size = data.size(); 56 final int size = data.size();
57 57
58 for (int i = 0; i < size; i++) { 58 for (int i = 0; i < size; i++) {
59 Data d = data.get(i); 59 final Data d = data.get(i);
60 60
61 Label label = new Label(d.getDescription()); 61 final Label label = new Label(d.getDescription());
62 label.setValign(VerticalAlignment.TOP); 62 label.setValign(VerticalAlignment.TOP);
63 label.setHeight(20); 63 label.setHeight(20);
64 label.setWidth(400); 64 label.setWidth(400);
65 65
66 SelectItem combobox = new SelectItem(d.getLabel()); 66 final SelectItem combobox = new SelectItem(d.getLabel());
67 combobox.setWidth(250); 67 combobox.setWidth(250);
68 68
69 LinkedHashMap<String, String> funcTypes = 69 final LinkedHashMap<String, String> funcTypes = new LinkedHashMap<String, String>();
70 new LinkedHashMap<String, String>();
71 70
72 boolean defaultSet = false; 71 boolean defaultSet = false;
73 boolean first = true; 72 boolean first = true;
74 73
75 DataItem def = d.getDefault(); 74 final DataItem def = d.getDefault();
76 String defValue = def != null ? def.getStringValue() : null; 75 final String defValue = def != null ? def.getStringValue() : null;
77 76
78 if (defValue != null && defValue.length() > 0) { 77 if (defValue != null && defValue.length() > 0) {
79 initial.put(d.getLabel(), def.getStringValue()); 78 initial.put(d.getLabel(), def.getStringValue());
80 defaultSet = true; 79 defaultSet = true;
81 } 80 }
82 81
83 // I was here. Me 2. 82 // I was here. Me 2.
84 for (DataItem item: d.getItems()) { 83 for (final DataItem item : d.getItems()) {
85 if (!defaultSet && first) { 84 if (!defaultSet && first) {
86 initial.put(d.getLabel(), item.getStringValue()); 85 initial.put(d.getLabel(), item.getStringValue());
87 first = false; 86 first = false;
88 } 87 }
89 88
91 } 90 }
92 91
93 label.setWidth(50); 92 label.setWidth(50);
94 combobox.setValueMap(funcTypes); 93 combobox.setValueMap(funcTypes);
95 combobox.setShowTitle(false); 94 combobox.setShowTitle(false);
96 form.setItems(combobox); 95 this.form.setItems(combobox);
97 96
98 layout.addMember(label); 97 layout.addMember(label);
99 layout.addMember(form); 98 layout.addMember(this.form);
100 } 99 }
101 100
102 form.setValues(initial); 101 this.form.setValues(initial);
103 102
104 layout.setAlign(VerticalAlignment.TOP); 103 layout.setAlign(VerticalAlignment.TOP);
105 104
106 return layout; 105 return layout;
107 } 106 }
108 107
109
110 @Override 108 @Override
111 public Canvas createOld(DataList dataList) { 109 public Canvas createOld(final DataList dataList) {
112 HLayout layout = new HLayout(); 110 final HLayout layout = new HLayout();
113 VLayout vLayout = new VLayout(); 111 final VLayout vLayout = new VLayout();
114 layout.setWidth("400px"); 112 layout.setWidth("400px");
115 113
116 Label label = new Label(dataList.getLabel()); 114 final Label label = new Label(dataList.getLabel());
117 label.setWidth("200px"); 115 label.setWidth("200px");
118 116
119 int size = dataList.size(); 117 final int size = dataList.size();
120 for (int i = 0; i < size; i++) { 118 for (int i = 0; i < size; i++) {
121 Data data = dataList.get(i); 119 final Data data = dataList.get(i);
122 DataItem[] items = data.getItems(); 120 final DataItem[] items = data.getItems();
123 121
124 for (DataItem item: items) { 122 for (final DataItem item : items) {
125 HLayout hLayout = new HLayout(); 123 final HLayout hLayout = new HLayout();
126 124
127 String desc = funcDesc.containsKey(item.getLabel()) ? 125 final String desc = funcDesc.containsKey(item.getLabel()) ? funcDesc.get(item.getLabel()) : item.getLabel();
128 funcDesc.get(item.getLabel()) : item.getLabel();
129 hLayout.addMember(label); 126 hLayout.addMember(label);
130 hLayout.addMember(new Label(desc)); 127 hLayout.addMember(new Label(desc));
131 128
132 vLayout.addMember(hLayout); 129 vLayout.addMember(hLayout);
133 vLayout.setWidth("130px"); 130 vLayout.setWidth("130px");
134 } 131 }
135 } 132 }
136 133
137 Canvas back = getBackButton(dataList.getState()); 134 final Canvas back = getBackButton(dataList.getState());
138 135
139 layout.addMember(label); 136 layout.addMember(label);
140 layout.addMember(vLayout); 137 layout.addMember(vLayout);
141 layout.addMember(back); 138 layout.addMember(back);
142 139
143 return layout; 140 return layout;
144 } 141 }
145 142
146
147 @Override 143 @Override
148 public Data[] getData() { 144 public Data[] getData() {
149 Map<?, ?> values = form.getValues(); 145 final Map<?, ?> values = this.form.getValues();
150 146
151 Data[] list = new Data[values.size()]; 147 final Data[] list = new Data[values.size()];
152 int i = 0; 148 int i = 0;
153 149
154 for (Map.Entry<?, ?>entry: values.entrySet()) { 150 for (final Map.Entry<?, ?> entry : values.entrySet()) {
155 String fieldname = (String)entry.getKey(); 151 final String fieldname = (String) entry.getKey();
156 String selection = (String)entry.getValue(); 152 final String selection = (String) entry.getValue();
157 153
158 DataItem item = new DefaultDataItem(fieldname, null, selection); 154 final DataItem item = new DefaultDataItem(fieldname, null, selection);
159 155
160 list[i++] = new DefaultData( 156 list[i++] = new DefaultData(fieldname, null, null, new DataItem[] { item });
161 fieldname, null, null, new DataItem[] { item });
162 } 157 }
163 158
164 return list; 159 return list;
165 } 160 }
166 161
167
168 @Override 162 @Override
169 public void setValues(String cid, boolean checked) { 163 public void setValues(final String cid, final boolean checked) {
170 } 164 }
171 165
172 @Override 166 @Override
173 public boolean renderCheckboxes() { 167 public boolean renderCheckboxes() {
174 return false; 168 return false;
175 } 169 }
176 170
177 @Override 171 @Override
178 public void success() { 172 public void success(final FixingsOverviewInfo fixInfo) {
179 } 173 }
180
181 } 174 }

http://dive4elements.wald.intevation.org