Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadEpochPanel.java @ 4223:015b219a97af
Added new UI provider for sediment load parameter input.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 23 Oct 2012 13:21:57 +0200 |
parents | |
children | abd304085bd4 |
rev | line source |
---|---|
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.client.ui.minfo; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import com.google.gwt.core.client.GWT; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import com.smartgwt.client.data.Record; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import com.smartgwt.client.types.ListGridFieldType; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import com.smartgwt.client.widgets.Button; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import com.smartgwt.client.widgets.Canvas; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import com.smartgwt.client.widgets.Label; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import com.smartgwt.client.widgets.events.ClickEvent; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import com.smartgwt.client.widgets.events.ClickHandler; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import com.smartgwt.client.widgets.form.DynamicForm; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import com.smartgwt.client.widgets.form.fields.TextItem; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import com.smartgwt.client.widgets.grid.ListGrid; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import com.smartgwt.client.widgets.grid.ListGridField; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import com.smartgwt.client.widgets.grid.ListGridRecord; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 import com.smartgwt.client.widgets.grid.events.RecordClickHandler; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import com.smartgwt.client.widgets.layout.HLayout; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 import com.smartgwt.client.widgets.layout.VLayout; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.flys.client.client.ui.AbstractUIProvider; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.flys.client.shared.model.Data; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.flys.client.shared.model.DataItem; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.flys.client.shared.model.DataList; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.flys.client.shared.model.DefaultData; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.flys.client.shared.model.DefaultDataItem; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 public class SedLoadEpochPanel |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 extends AbstractUIProvider |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 protected ListGrid elements; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 private TextItem start; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 private TextItem end; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 public Canvas createWidget(DataList data) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 HLayout input = new HLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 VLayout root = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 VLayout grid = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 VLayout intFields = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 Button add = new Button(MSG.add_date()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 elements = new ListGrid(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 Label title = new Label(data.get(0).getDescription()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 title.setHeight("25px"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 DynamicForm form = new DynamicForm(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 form.setNumCols(4); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 start = new TextItem(MSG.from()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 start.setWidth(60); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 start.setValidators(new IsIntegerValidator()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 end = new TextItem(MSG.to()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 end.setWidth(60); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 end.setValidators(new IsIntegerValidator()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 form.setFields(start, end); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 add.addClickHandler(new ClickHandler() { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 public void onClick(ClickEvent ce) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 String v1 = start.getValueAsString(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 String v2 = end.getValueAsString(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 //TODO: better validation. |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 if (v1 == null || v2 == null) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 return; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 try { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 int v1i = Integer.parseInt(v1); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 int v2i = Integer.parseInt(v2); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 catch(NumberFormatException nfe) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 return; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 Record r = new Record(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 r.setAttribute("from", v1); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 r.setAttribute("to", v2); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 elements.addData(r); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 }); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 Label sel = new Label(MSG.select()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 sel.setHeight(25); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 elements.setWidth(185); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 elements.setHeight(120); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 elements.setShowHeaderContextMenu(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 elements.setCanReorderFields(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 elements.setCanSort(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 elements.setCanEdit(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 ListGridField from = new ListGridField("from", MSG.from()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 ListGridField to = new ListGridField("to", MSG.to()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 from.setWidth(70); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 to.setWidth(70); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 final ListGridField removeField = |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 new ListGridField("_removeRecord", "Remove Record"){{ |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 setType(ListGridFieldType.ICON); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 setIcon(GWT.getHostPageBaseURL() + MSG.removeFeature()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 setCanEdit(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 setCanFilter(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 setCanSort(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 setCanGroupBy(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 setCanFreeze(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 setWidth(25); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 }}; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 elements.addRecordClickHandler(new RecordClickHandler() { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 public void onRecordClick(final RecordClickEvent event) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 // Just handle remove-clicks |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 if(!event.getField().getName().equals(removeField.getName())) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 return; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 event.getViewer().removeData(event.getRecord()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 }); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 elements.setFields(from, to, removeField); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 intFields.addMember(form); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 intFields.addMember(add); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 grid.addMember(sel); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 grid.addMember(elements); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 input.addMember(intFields); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 input.addMember(grid); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 root.addMember(title); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 root.addMember(input); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 return root; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 public Canvas createOld(DataList dataList) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 GWT.log("old............................"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 HLayout layout = new HLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 layout.setWidth("400px"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 VLayout vLayout = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 vLayout.setWidth(130); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 Label label = new Label(dataList.getLabel()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 label.setWidth("200px"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 label.setHeight(25); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 List<Data> items = dataList.getAll(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 Data str = getData(items, "epochs"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 DataItem[] strItems = str.getItems(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 String[] pairs = strItems[0].getLabel().split(";"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 for (int i = 0; i < pairs.length; i++) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 String[] vals = pairs[i].split(","); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 Label dateLabel = new Label(vals[0] + " - " + vals[1]); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 dateLabel.setHeight(20); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 vLayout.addMember(dateLabel); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 Canvas back = getBackButton(dataList.getState()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 layout.addMember(label); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 layout.addMember(vLayout); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 layout.addMember(back); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 return layout; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 public Canvas create(DataList data) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 VLayout layout = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 Canvas submit = getNextButton(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 Canvas widget = createWidget(data); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 layout.addMember(widget); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 layout.addMember(submit); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 return layout; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 protected Data[] getData() { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 List<Data> data = new ArrayList<Data>(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 ListGridRecord[] lgr = elements.getRecords(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 if (lgr.length == 0) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 return new Data[0]; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 String d = ""; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
182 for (int i = 0; i < lgr.length; i++) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 Record r = (Record) lgr[i]; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 d += r.getAttribute("from") + "," + r.getAttribute("to"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 d += ";"; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
186 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
187 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 DataItem item = new DefaultDataItem("epochs", null, d); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 data.add(new DefaultData( |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 "epochs", |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 null, |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 null, |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 new DataItem[] { item })); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
194 return data.toArray(new Data[data.size()]); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
195 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 } |