annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/fixation/FixMultiPeriodPanel.java @ 4241:49cb65d5932d

Improved the historical discharge calculation. The calculation now creates new HistoricalWQKms (new subclass of WQKms). Those WQKms are used to create new facets from (new) type 'HistoricalDischargeCurveFacet'. The chart generator is improved to support those facets.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 24 Oct 2012 14:34:35 +0200
parents 11d74b9d428a
children
rev   line source
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.fixation;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import com.google.gwt.core.client.GWT;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import com.google.gwt.i18n.client.DateTimeFormat;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
6 import com.smartgwt.client.types.ListGridFieldType;
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
7 import com.smartgwt.client.widgets.Button;
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.Canvas;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.widgets.Label;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.events.ClickEvent;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.events.ClickHandler;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.grid.ListGrid;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.grid.ListGridField;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.grid.ListGridRecord;
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
15 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
16 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.layout.HLayout;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import com.smartgwt.client.widgets.layout.VLayout;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
20 import de.intevation.flys.client.client.FLYSConstants;
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.client.shared.model.Data;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.client.shared.model.DataItem;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.client.shared.model.DataList;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import de.intevation.flys.client.shared.model.DefaultData;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.client.shared.model.DefaultDataItem;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
27 import java.util.ArrayList;
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
28 import java.util.Date;
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
29 import java.util.List;
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
30
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 /**
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 * This UIProvider creates a panel for location or distance input.
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 *
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 */
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 public class FixMultiPeriodPanel
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 extends FixPeriodPanel
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 {
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
39 /** The message class that provides i18n strings. */
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
40 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 protected ListGrid elements;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 protected String values;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 public FixMultiPeriodPanel() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 this("", "");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 public FixMultiPeriodPanel(String startName, String endName) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 super(startName, endName);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
54 @Override
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 public Canvas createWidget(DataList data) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 HLayout input = new HLayout();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 VLayout root = new VLayout();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 VLayout grid = new VLayout();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 VLayout layout = (VLayout) super.createWidget(data);
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
60 Button add = new Button(MESSAGES.add());
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 elements = new ListGrid();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 add.addClickHandler(new ClickHandler() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 public void onClick(ClickEvent ce) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 Date f = inputPanel.getFromDate();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 Date t = inputPanel.getToDate();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 if (f == null || t == null) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 return;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 DateRangeRecord drr = new DateRangeRecord(f, t);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 elements.addData(drr);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 });
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 layout.addMember(add);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 Label sel = new Label("Selected");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 sel.setHeight(25);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 elements.setWidth(185);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 elements.setHeight(120);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 elements.setShowHeaderContextMenu(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 elements.setCanReorderFields(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 elements.setCanSort(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 elements.setCanEdit(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 ListGridField from = new ListGridField("from", "From");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 ListGridField to = new ListGridField("to", "To");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 from.setWidth(70);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 to.setWidth(70);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 final ListGridField removeField =
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 new ListGridField("_removeRecord", "Remove Record"){{
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 setType(ListGridFieldType.ICON);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 setIcon(GWT.getHostPageBaseURL() + MSG.removeFeature());
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 setCanEdit(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 setCanFilter(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 setCanSort(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 setCanGroupBy(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 setCanFreeze(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 setWidth(25);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 }};
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 elements.addRecordClickHandler(new RecordClickHandler() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 public void onRecordClick(final RecordClickEvent event) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 // Just handle remove-clicks
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 if(!event.getField().getName().equals(removeField.getName())) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 return;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 event.getViewer().removeData(event.getRecord());
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 });
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 elements.setFields(from, to, removeField);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 grid.addMember(sel);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 grid.addMember(elements);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 input.addMember(layout);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 input.addMember(grid);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 root.addMember(input);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 return root;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 @Override
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 public Canvas createOld(DataList dataList) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 HLayout layout = new HLayout();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 layout.setWidth("400px");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 VLayout vLayout = new VLayout();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 vLayout.setWidth(130);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 Label label = new Label(dataList.getLabel());
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 label.setWidth("200px");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 label.setHeight(25);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 List<Data> items = dataList.getAll();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 Data str = getData(items, "ana_data");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 DataItem[] strItems = str.getItems();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 String[] pairs = strItems[0].getLabel().split(";");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 for (int i = 0; i < pairs.length; i++) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 String[] vals = pairs[i].split(",");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 try {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 long f = Long.valueOf(vals[0]).longValue();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 long t = Long.valueOf(vals[1]).longValue();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 Date from = new Date(f);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 Date to = new Date(t);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 String fromString =
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 DateTimeFormat.getMediumDateFormat().format(from);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 String toString =
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 DateTimeFormat.getMediumDateFormat().format(to);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 Label dateLabel = new Label(fromString + " - " + toString);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 dateLabel.setHeight(20);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 vLayout.addMember(dateLabel);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 catch(NumberFormatException nfe) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 Canvas back = getBackButton(dataList.getState());
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 layout.addMember(label);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 layout.addMember(vLayout);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 layout.addMember(back);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 return layout;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 /**
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
166 * This method returns the selected data.
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 *
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 * @return the selected/inserted data.
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 */
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
170 @Override
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 public Data[] getData() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 List<Data> data = new ArrayList<Data>();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
174 boolean valid = saveDateValues();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 if(valid) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176 DataItem item = new DefaultDataItem("ana_data", null, this.values);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 data.add(new DefaultData(
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178 "ana_data",
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 null,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 null,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 new DataItem[] { item }));
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 }
3379
0de61fc9d281 Removed some superfluous casts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2893
diff changeset
183 return data.toArray(new Data[data.size()]);
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186
3835
11d74b9d428a i18n (#872)
Christian Lins <christian.lins@intevation.de>
parents: 3379
diff changeset
187 @Override
2883
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 protected boolean saveDateValues() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 ListGridRecord[] lgr = elements.getRecords();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 if (lgr.length == 0) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 return false;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193 String data = "";
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 for (int i = 0; i < lgr.length; i++) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 DateRangeRecord drr = (DateRangeRecord) lgr[i];
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 data += drr.getFrom() + "," + drr.getTo();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 data += ";";
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199 values = data;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200 return true;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 protected static class DateRangeRecord extends ListGridRecord {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 protected Date from;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 protected Date to;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
208 protected final static String FROM_FIELD = "from";
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
209 protected final static String TO_FIELD = "to";
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
210
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 public DateRangeRecord (Date from, Date to) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212 setFrom(from);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213 setTo(to);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 public void setFrom(Date from) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 this.from = from;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 setAttribute(
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 FROM_FIELD,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220 DateTimeFormat.getMediumDateFormat().format(from));
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
221 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
223
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
224 public void setTo(Date to) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 this.to = to;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 setAttribute(
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227 TO_FIELD,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 DateTimeFormat.getMediumDateFormat().format(to));
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 public long getFrom() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 return this.from.getTime();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 public long getTo() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
238 return this.to.getTime();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
240 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 }

http://dive4elements.wald.intevation.org