annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/SedLoadEpochPanel.java @ 8597:ba2a34a4e440

(issue1051) Validate epochs before adding them to the list
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 19 Mar 2015 16:28:40 +0100
parents 73a4c3c202e5
children 582e970115b6
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.client.ui.minfo;
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 import java.util.ArrayList;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 import java.util.List;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 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
15 import com.google.gwt.user.client.rpc.AsyncCallback;
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.data.Record;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.types.ListGridFieldType;
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
18 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
19 import com.smartgwt.client.widgets.Button;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 import com.smartgwt.client.widgets.Canvas;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 import com.smartgwt.client.widgets.Label;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 import com.smartgwt.client.widgets.events.ClickEvent;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 import com.smartgwt.client.widgets.events.ClickHandler;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 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
25 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
26 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 import com.smartgwt.client.widgets.grid.ListGrid;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 import com.smartgwt.client.widgets.grid.ListGridField;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 import com.smartgwt.client.widgets.grid.ListGridRecord;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 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
33 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
34
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
35 import org.dive4elements.river.client.client.Config;
8531
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
36 import org.dive4elements.river.client.client.FLYSConstants;
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
37 import org.dive4elements.river.client.client.services.SedimentLoadInfoService;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
38 import org.dive4elements.river.client.client.services.SedimentLoadInfoServiceAsync;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
39 import org.dive4elements.river.client.client.ui.AbstractUIProvider;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
40 import org.dive4elements.river.client.shared.model.ArtifactDescription;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
41 import org.dive4elements.river.client.shared.model.Data;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
42 import org.dive4elements.river.client.shared.model.DataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
43 import org.dive4elements.river.client.shared.model.DataList;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
44 import org.dive4elements.river.client.shared.model.DefaultData;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
45 import org.dive4elements.river.client.shared.model.DefaultDataItem;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
46 import org.dive4elements.river.client.shared.model.SedimentLoadInfoObject;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
47 import org.dive4elements.river.client.shared.model.SedimentLoadInfoRecord;
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 public class SedLoadEpochPanel
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 extends AbstractUIProvider
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 {
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
53 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
54 GWT.create(SedimentLoadInfoService.class);
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
55
8531
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
56 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
57
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 protected ListGrid elements;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 private TextItem start;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 private TextItem end;
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
61 private ListGrid sedLoadTable;
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62
8597
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
63 protected List<String> validYears;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
64
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 public Canvas createWidget(DataList data) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 HLayout input = new HLayout();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 VLayout root = new VLayout();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 VLayout grid = new VLayout();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 VLayout intFields = new VLayout();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 Button add = new Button(MSG.add_date());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 elements = new ListGrid();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 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
74 title.setHeight("25px");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 DynamicForm form = new DynamicForm();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 form.setNumCols(4);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 start = new TextItem(MSG.from());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 start.setWidth(60);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 start.setValidators(new IsIntegerValidator());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 end = new TextItem(MSG.to());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 end.setWidth(60);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 end.setValidators(new IsIntegerValidator());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 form.setFields(start, end);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 add.addClickHandler(new ClickHandler() {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 @Override
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 public void onClick(ClickEvent ce) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 String v1 = start.getValueAsString();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 String v2 = end.getValueAsString();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 if (v1 == null || v2 == null) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91 return;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92 }
8597
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
93 if (!isValidEpoch(v1, v2)) {
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 return;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 }
7944
9b092c960455 Fixed sediment load epoch input panel.
Raimund Renkert <rrenkert@intevation.de>
parents: 5993
diff changeset
96 ListGridRecord r = new ListGridRecord();
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
97 r.setAttribute("from", v1);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
98 r.setAttribute("to", v2);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
99 elements.addData(r);
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 });
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
102
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
103 Label sel = new Label(MSG.select());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
104 sel.setHeight(25);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
105 elements.setWidth(185);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
106 elements.setHeight(120);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
107 elements.setShowHeaderContextMenu(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
108 elements.setCanReorderFields(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
109 elements.setCanSort(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
110 elements.setCanEdit(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
111 ListGridField from = new ListGridField("from", MSG.from());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
112 ListGridField to = new ListGridField("to", MSG.to());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
113 from.setWidth(70);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
114 to.setWidth(70);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
115
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
116 final ListGridField removeField =
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117 new ListGridField("_removeRecord", "Remove Record"){{
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118 setType(ListGridFieldType.ICON);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
119 setIcon(GWT.getHostPageBaseURL() + MSG.removeFeature());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 setCanEdit(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
121 setCanFilter(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 setCanSort(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
123 setCanGroupBy(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
124 setCanFreeze(false);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
125 setWidth(25);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
126 }};
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 elements.addRecordClickHandler(new RecordClickHandler() {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
129 @Override
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
130 public void onRecordClick(final RecordClickEvent event) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 // Just handle remove-clicks
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 if(!event.getField().getName().equals(removeField.getName())) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 return;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 event.getViewer().removeData(event.getRecord());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 });
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
138
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
139 elements.setFields(from, to, removeField);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
140
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 intFields.addMember(form);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 intFields.addMember(add);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
143 grid.addMember(sel);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
144 grid.addMember(elements);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
145 input.addMember(intFields);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
146 input.addMember(grid);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
147 root.addMember(title);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
148 root.addMember(input);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
149
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
150 return root;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
151 }
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
152
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 @Override
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
154 public Canvas createOld(DataList dataList) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
155 HLayout layout = new HLayout();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
156 layout.setWidth("400px");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
157 VLayout vLayout = new VLayout();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
158 vLayout.setWidth(130);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
159 Label label = new Label(dataList.getLabel());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
160 label.setWidth("200px");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
161 label.setHeight(25);
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 List<Data> items = dataList.getAll();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
164 Data str = getData(items, "epochs");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 DataItem[] strItems = str.getItems();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
166
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
167 String[] pairs = strItems[0].getLabel().split(";");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
168 for (int i = 0; i < pairs.length; i++) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
169 String[] vals = pairs[i].split(",");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
170 Label dateLabel = new Label(vals[0] + " - " + vals[1]);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
171 dateLabel.setHeight(20);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
172 vLayout.addMember(dateLabel);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
173 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
174 Canvas back = getBackButton(dataList.getState());
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 layout.addMember(label);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
176 layout.addMember(vLayout);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 layout.addMember(back);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
178
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
179 return layout;
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
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
182 @Override
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
183 public Canvas create(DataList data) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
184 VLayout layout = new VLayout();
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
185 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
186 this.helperContainer.addMember(helper);
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
187
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
188 Canvas submit = getNextButton();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
189 Canvas widget = createWidget(data);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
190
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
191 layout.addMember(widget);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
192 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
193
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
194 fetchSedimentLoadData();
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
195
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
196 return layout;
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
197 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
198
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
199 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
200 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
201 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
202 sedLoadTable.setWidth100();
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
203 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
204 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
205 sedLoadTable.setHeight100();
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
206 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
207 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
208
8531
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
209 /* Input support pins */
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
210 String baseUrl = GWT.getHostPageBaseURL();
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
211 ListGridField pinFrom = new ListGridField ("fromIcon", MESSAGES.from());
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
212 pinFrom.setWidth (30);
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
213 pinFrom.setType (ListGridFieldType.ICON);
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
214 pinFrom.setCellIcon(baseUrl + MESSAGES.markerGreen());
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
215
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
216 ListGridField pinTo = new ListGridField ("toIcon", MESSAGES.to());
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
217 pinTo.setType (ListGridFieldType.ICON);
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
218 pinTo.setWidth (30);
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
219 pinTo.setCellIcon(baseUrl + MESSAGES.markerRed());
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
220
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
221 pinFrom.addRecordClickHandler (new RecordClickHandler () {
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
222 @Override
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
223 public void onRecordClick (RecordClickEvent e) {
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
224 Record r = e.getRecord();
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
225 start.setValue(r.getAttribute("date"));
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
226 }
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
227 });
8532
73a4c3c202e5 (issue1051) Use a list of single years in SedimentLoadYear mode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8531
diff changeset
228
8531
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
229 pinTo.addRecordClickHandler (new RecordClickHandler () {
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
230 @Override
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
231 public void onRecordClick (RecordClickEvent e) {
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
232 Record r = e.getRecord();
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
233 end.setValue(r.getAttribute("date"));
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
234 }
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
235 });
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
236
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
237
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
238 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
239 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
240 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
241
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
242 ListGridField descr =
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
243 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
244 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
245 descr.setWidth("*");
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
246
8531
3e6d4bd1c06e (issue1051) Add input support for epochs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8235
diff changeset
247 sedLoadTable.setFields(pinFrom, pinTo, date, descr);
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
248 return sedLoadTable;
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
249 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
250
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
251 @Override
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
252 protected Data[] getData() {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
253 List<Data> data = new ArrayList<Data>();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
254
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
255 ListGridRecord[] lgr = elements.getRecords();
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
256 if (lgr.length == 0) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
257 return new Data[0];
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
258 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
259 String d = "";
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
260 for (int i = 0; i < lgr.length; i++) {
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
261 Record r = (Record) lgr[i];
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
262 d += r.getAttribute("from") + "," + r.getAttribute("to");
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
263 d += ";";
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
264 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
265
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
266 DataItem item = new DefaultDataItem("epochs", null, d);
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
267 data.add(new DefaultData(
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
268 "epochs",
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
269 null,
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
270 null,
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
271 new DataItem[] { item }));
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
272 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
273 }
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
274
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
275 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
276 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
277 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
278
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
279 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
280 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
281
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
282 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
283 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
284
8230
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
285 String sq_ti_id = "";
8597
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
286 validYears = new ArrayList<String>(data.length);
8235
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
287 for (int i = 0; i < data.length; i++) {
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
288 Data str = getData(data[i].getAll(), "sq_ti_id");
8230
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
289 if (str != null) {
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
290 DataItem[] strItems = str.getItems();
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
291 sq_ti_id = strItems[0].getStringValue();
8235
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
292 break;
8230
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
293 }
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
294 }
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
295
8235
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
296 if (sq_ti_id.isEmpty()){
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
297 GWT.log("Failed to find sq time interval id in data.");
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
298 }
c0da2514f4ce (issue1448) Look through all the data for sq_ti_id in following states.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8230
diff changeset
299
8230
f54c4b858213 (issue1448) Extend SedimentLoadInfo request to handle sq time intervals
Andre Heinecke <andre.heinecke@intevation.de>
parents: 7944
diff changeset
300 sedLoadInfoService.getSedimentLoadInfo(locale, river, "single", km[0], km[1], sq_ti_id,
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
301 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
302 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
303 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
304 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
305 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
306
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
307 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
308 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
309 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
310
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
311 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
312 return;
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
313 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
314
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
315 addSedimentLoadInfo(sedLoad);
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
316 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
317 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
318 );
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
319 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
320
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
321
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
322 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
323 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
324 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
325 sedLoadTable.addData(rec);
8597
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
326 validYears.add(rec.getDate());
4299
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
327 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
328 }
abd304085bd4 Added helper panel to sediment load UI to display sediemnt load overviews.
Raimund Renkert <rrenkert@intevation.de>
parents: 4223
diff changeset
329
8597
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
330 /* Validate the epoch input. We do this here and not in an overridden
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
331 * validate method as we want to validate before an epoch is added
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
332 * to the list of epochs. */
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
333 protected boolean isValidEpoch(String y1, String y2) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
334 // First check that both are integer
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
335 int iY1;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
336 int iY2;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
337 List<String> errors = new ArrayList<String>();
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
338 try {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
339 iY1 = Integer.parseInt(y1);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
340 } catch (NumberFormatException e) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
341 errors.add(MESSAGES.wrongFormat() + ": " + y1);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
342 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
343 try {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
344 iY2 = Integer.parseInt(y2);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
345 } catch (NumberFormatException e) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
346 errors.add(MESSAGES.wrongFormat() + ": " + y2);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
347 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
348 if (!errors.isEmpty()) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
349 showErrors(errors);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
350 return false;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
351 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
352 boolean startIsGood = false;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
353 boolean endIsGood = false;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
354 for (String validYear: validYears) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
355 if (startIsGood || y1.equals(validYear)) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
356 startIsGood = true;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
357 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
358 if (endIsGood || y2.equals(validYear)) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
359 endIsGood = true;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
360 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
361 if (startIsGood && endIsGood) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
362 break;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
363 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
364 /* alternative check if data lies in between
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
365 int aYear = Integer.parseInt(validYear);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
366 if (aYear >= iY1 && aYear <= iY2) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
367 isGood = true;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
368 break;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
369 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
370 */
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
371 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
372 if (!startIsGood) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
373 String tmp = MESSAGES.no_data_for_year();
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
374 tmp = tmp.replace("$1", y1);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
375 errors.add(tmp);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
376 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
377 if (!endIsGood) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
378 String tmp = MESSAGES.no_data_for_year();
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
379 tmp = tmp.replace("$1", y2);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
380 errors.add(tmp);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
381 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
382 if (!errors.isEmpty()) {
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
383 showErrors(errors);
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
384 return false;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
385 }
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
386 return true;
ba2a34a4e440 (issue1051) Validate epochs before adding them to the list
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8532
diff changeset
387 }
4223
015b219a97af Added new UI provider for sediment load parameter input.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
388 }

http://dive4elements.wald.intevation.org