comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/AbstractEpochPanel.java @ 9224:c3994657c15d

salix workflow little improvments
author gernotbelger
date Wed, 04 Jul 2018 15:26:08 +0200
parents aafae1ab25f0
children 7c3d689294e8
comparison
equal deleted inserted replaced
9223:bfe97ad35df5 9224:c3994657c15d
9 */ 9 */
10 package org.dive4elements.river.client.client.ui; 10 package org.dive4elements.river.client.client.ui;
11 11
12 import java.util.ArrayList; 12 import java.util.ArrayList;
13 import java.util.List; 13 import java.util.List;
14 import java.util.TreeSet;
15 14
16 import org.dive4elements.river.client.client.ui.FromToTableHelperPanel.IColumnClickHandler; 15 import org.dive4elements.river.client.client.ui.FromToTableHelperPanel.IColumnClickHandler;
17 import org.dive4elements.river.client.shared.model.Data; 16 import org.dive4elements.river.client.shared.model.Data;
18 import org.dive4elements.river.client.shared.model.DataItem; 17 import org.dive4elements.river.client.shared.model.DataItem;
19 import org.dive4elements.river.client.shared.model.DataList; 18 import org.dive4elements.river.client.shared.model.DataList;
35 public abstract class AbstractEpochPanel extends AbstractUIProvider { 34 public abstract class AbstractEpochPanel extends AbstractUIProvider {
36 35
37 private static final long serialVersionUID = 1L; 36 private static final long serialVersionUID = 1L;
38 37
39 protected enum Type { 38 protected enum Type {
40 singleMinMax, multi 39 single, multi
41 // Type singleMinMax: nur eine Epoche kann gesetzt werden; minMax vorbelegt aus Datenquelle 40 // Type single: nur eine Epoche kann gesetzt werden; minMax vorbelegt aus Datenquelle
42 // Type multi: mehrere epochs können eingegeben werden 41 // Type multi: mehrere epochs können eingegeben werden
43 } 42 }
44 43
45 private TextItem start; 44 private TextItem start;
46 45
57 } 56 }
58 57
59 protected abstract String getDatakey(); 58 protected abstract String getDatakey();
60 59
61 protected abstract Canvas createWidget(final DataList data); 60 protected abstract Canvas createWidget(final DataList data);
62
63 private final void postCreate() {
64 switch (this.type) {
65 case singleMinMax:
66 final TreeSet<String> minMax = new TreeSet<String>(this.validInputs);
67 if (minMax.size() > 1) {
68 this.start.setValue(minMax.first());
69 this.end.setValue(minMax.last());
70 } else {
71 // TODO: THIS STATE IS INVALID; RETURN - es gibt keinen Mechanismus, der das verhindert; müsste
72 // im State davor passieren)
73 }
74 break;
75 case multi:
76 break; // do nothing
77 default:
78 throw new IllegalStateException();
79 }
80 }
81 61
82 protected final TextItem createStartInputItem(final String title) { 62 protected final TextItem createStartInputItem(final String title) {
83 this.start = PanelHelper.createItem(title); 63 this.start = PanelHelper.createItem(title);
84 return this.start; 64 return this.start;
85 } 65 }
142 this.validInputs = helper.getKeycolEntries(); 122 this.validInputs = helper.getKeycolEntries();
143 final Canvas table = helper.getTable(); 123 final Canvas table = helper.getTable();
144 124
145 this.helperContainer.addMember(table); 125 this.helperContainer.addMember(table);
146 126
147 postCreate();
148 return layout; 127 return layout;
149 } 128 }
150 129
151 private final IColumnClickHandler createHandler(final TextItem field) { 130 private final IColumnClickHandler createHandler(final TextItem field) {
152 final IColumnClickHandler handler = new IColumnClickHandler() { 131 final IColumnClickHandler handler = new IColumnClickHandler() {
228 @Override 207 @Override
229 protected final Data[] getData() { 208 protected final Data[] getData() {
230 final List<Data> data = new ArrayList<Data>(); 209 final List<Data> data = new ArrayList<Data>();
231 switch (this.type) { 210 switch (this.type) {
232 211
233 case singleMinMax: 212 case single:
234 data.add(buildResult(this.start.getValueAsString(), this.end.getValueAsString())); 213 data.add(buildResult(this.start.getValueAsString(), this.end.getValueAsString()));
235 214
236 break; 215 break;
237 case multi: 216 case multi:
238 final ListGridRecord[] lgr = this.elements.getRecords(); 217 final ListGridRecord[] lgr = this.elements.getRecords();

http://dive4elements.wald.intevation.org