Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadPeriodPanel.java @ 5462:f2371f3aaf03
Show top level folder icons only if node has no factory
If you have an empty folder the folder icon is still shown.
This makes it possible to add functional "Top Level" entries
in the Datacage
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Tue, 26 Mar 2013 18:29:13 +0100 |
parents | b195fede1c3b |
children |
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... |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4299
diff
changeset
|
184 if ((v1 > 1582 && v1 < 2100) |
4223
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 } |