Mercurial > dive4elements > river
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 } |