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 }

http://dive4elements.wald.intevation.org