Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadPeriodPanel.java @ 4433:5b8919ef601d
Backed out changeset e8a4d2fd25cc
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 07 Nov 2012 12:23:41 +0100 |
parents | abd304085bd4 |
children | b195fede1c3b |
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; |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
7 import com.google.gwt.user.client.rpc.AsyncCallback; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
8 import com.smartgwt.client.types.ListGridFieldType; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
9 import com.smartgwt.client.util.SC; |
4223
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.form.DynamicForm; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 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
|
14 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
15 import com.smartgwt.client.widgets.grid.ListGrid; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
16 import com.smartgwt.client.widgets.grid.ListGridField; |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 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
|
18 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
|
19 |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
20 import de.intevation.flys.client.client.Config; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
21 import de.intevation.flys.client.client.services.SedimentLoadInfoService; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
22 import de.intevation.flys.client.client.services.SedimentLoadInfoServiceAsync; |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.flys.client.client.ui.AbstractUIProvider; |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
24 import de.intevation.flys.client.shared.model.ArtifactDescription; |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 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
|
26 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
|
27 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
|
28 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
|
29 import de.intevation.flys.client.shared.model.DefaultDataItem; |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
30 import de.intevation.flys.client.shared.model.SedimentLoadInfoObject; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
31 import de.intevation.flys.client.shared.model.SedimentLoadInfoRecord; |
4223
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 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 public class SedLoadPeriodPanel |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 extends AbstractUIProvider |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 { |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
37 protected SedimentLoadInfoServiceAsync sedLoadInfoService = |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
38 GWT.create(SedimentLoadInfoService.class); |
4223
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 private TextItem start; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 private TextItem end; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
43 private ListGrid sedLoadTable; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
44 |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 public SedLoadPeriodPanel () { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 } |
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 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 public Canvas createOld(DataList dataList) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 List<Data> items = dataList.getAll(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 Data start = getData(items, "start"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 Data end = getData(items, "end"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 DataItem[] startItem = start.getItems(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 DataItem[] endItem = end.getItems(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 String v1 = startItem[0].getStringValue(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 String v2 = endItem[0].getStringValue(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 int v1i = 0; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 int v2i = 0; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 try { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 v1i = Integer.parseInt(v1); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 v2i = Integer.parseInt(v2); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 catch (NumberFormatException nfe) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 GWT.log(nfe.toString()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 Label old = new Label(v1i + " - " + v2i); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 HLayout layout = new HLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 layout.setWidth("400px"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 Label label = new Label(dataList.getLabel()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 label.setWidth("200px"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 Canvas back = getBackButton(dataList.getState()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 layout.addMember(label); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 layout.addMember(old); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 layout.addMember(back); |
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 return layout; |
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 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 public Canvas create(DataList data) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 VLayout layout = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
88 Canvas helper = createHelper(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
89 this.helperContainer.addMember(helper); |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 Canvas submit = getNextButton(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 Canvas widget = createWidget(data); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 layout.addMember(widget); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 layout.addMember(submit); |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
96 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
97 fetchSedimentLoadData(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
98 |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 return layout; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
102 private Canvas createHelper() { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
103 sedLoadTable = new ListGrid(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
104 sedLoadTable.setShowHeaderContextMenu(false); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
105 sedLoadTable.setWidth100(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
106 sedLoadTable.setShowRecordComponents(true); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
107 sedLoadTable.setShowRecordComponentsByCell(true); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
108 sedLoadTable.setHeight100(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
109 sedLoadTable.setEmptyMessage(MSG.empty_table()); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
110 sedLoadTable.setCanReorderFields(false); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
111 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
112 ListGridField date = new ListGridField("date", MSG.year()); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
113 date.setType(ListGridFieldType.TEXT); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
114 date.setWidth(100); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
115 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
116 ListGridField descr = |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
117 new ListGridField("description", MSG.description()); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
118 descr.setType(ListGridFieldType.TEXT); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
119 descr.setWidth("*"); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
120 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
121 sedLoadTable.setFields(date, descr); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
122 return sedLoadTable; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
123 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
124 |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 public Canvas createWidget(DataList data) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 VLayout layout = new VLayout(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 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
|
129 title.setHeight("25px"); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 DynamicForm form = new DynamicForm(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 form.setNumCols(4); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 start = new TextItem(MSG.from()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 start.setValidators(new IsIntegerValidator()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 end = new TextItem(MSG.to()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 end.setValidators(new IsIntegerValidator()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 form.setFields(start, end); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 // inputPanel.setToTitle(MSG.to()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 // inputPanel.setFromTitle(MSG.from()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 // inputPanel.setShowTitle(false); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 layout.addMember(title); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 layout.addMember(form); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 return layout; |
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 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 @Override |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 protected Data[] getData() { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 int v1; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 int v2; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 try { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 v1 = Integer.parseInt(start.getValueAsString()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 v2 = Integer.parseInt(end.getValueAsString()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 catch(NumberFormatException nfe) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 // warn the user... |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 return new Data[0]; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 if (validateRange(v1, v2)) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 List<Data> data = new ArrayList<Data>(); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 DataItem startItem = new DefaultDataItem("start", "start", start.getValueAsString()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 DataItem endItem = new DefaultDataItem("end", "end", end.getValueAsString()); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 data.add(new DefaultData( |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 "start", |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 null, |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 null, |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 new DataItem[] { startItem })); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 data.add(new DefaultData( |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 "end", |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 null, |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 null, |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 new DataItem[] { endItem })); |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 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
|
177 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 return new Data[0]; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 } |
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 protected boolean validateRange(int v1, int v2) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
182 // TODO: Set useful years for validation. Current range is between start |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 // of gregorian calendar and a year in the future... |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 if ((v1 > 1582 && v1 < 2100) |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 && (v2 > 1582 && v2 < 2100)) { |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
186 return true; |
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 return false; |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 } |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 |
4299
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
191 protected void fetchSedimentLoadData() { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
192 Config config = Config.getInstance(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
193 String locale = config.getLocale (); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
194 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
195 ArtifactDescription adescr = artifact.getArtifactDescription(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
196 DataList[] data = adescr.getOldData(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
197 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
198 double[] km = artifact.getArtifactDescription().getKMRange(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
199 String river = artifact.getArtifactDescription().getRiver(); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
200 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
201 sedLoadInfoService.getSedimentLoadInfo(locale, river, "single", km[0], km[1], |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
202 new AsyncCallback<SedimentLoadInfoObject[]>() { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
203 public void onFailure(Throwable caught) { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
204 GWT.log("Could not recieve sediment load informations."); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
205 SC.warn(caught.getMessage()); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
206 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
207 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
208 public void onSuccess(SedimentLoadInfoObject[] sedLoad) { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
209 int num = sedLoad != null ? sedLoad.length :0; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
210 GWT.log("Recieved " + num + " sediment load informations."); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
211 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
212 if (num == 0) { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
213 return; |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
214 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
215 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
216 addSedimentLoadInfo(sedLoad); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
217 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
218 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
219 ); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
220 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
221 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
222 |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
223 protected void addSedimentLoadInfo (SedimentLoadInfoObject[] sedLoad) { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
224 for(SedimentLoadInfoObject sl: sedLoad) { |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
225 SedimentLoadInfoRecord rec = new SedimentLoadInfoRecord(sl); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
226 sedLoadTable.addData(rec); |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
227 } |
abd304085bd4
Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents:
4223
diff
changeset
|
228 } |
4223
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
229 |
015b219a97af
Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
230 } |