annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/fixation/FixMultiPeriodPanel.java @ 2883:c3feb721035c

Added ui provider for multiple date range input in fix analysis. flys-client/trunk@4555 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 30 May 2012 12:02:56 +0000
parents
children 88bca9f735c0
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 java.util.List;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.ArrayList;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import java.util.Date;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 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
8 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
9 import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
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.util.SC;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
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.data.Record;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 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
16 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
17 import com.smartgwt.client.widgets.Button;
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.events.ClickEvent;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 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
20
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 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
22 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
23 import com.smartgwt.client.widgets.grid.ListGridRecord;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 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
26 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
27
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 import com.smartgwt.client.widgets.form.DynamicForm;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 import com.smartgwt.client.widgets.form.fields.DateRangeItem;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import com.smartgwt.client.widgets.form.fields.TextAreaItem;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 import com.smartgwt.client.types.ListGridFieldType;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
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 import de.intevation.flys.client.client.FLYSConstants;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 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
39 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
40 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
41 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
42 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
43
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 /**
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 * 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
46 *
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 * @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
48 */
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 public class FixMultiPeriodPanel
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 extends FixPeriodPanel
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 {
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 protected ListGrid elements;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 protected String values;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 public FixMultiPeriodPanel() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 this("", "");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 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
62 super(startName, endName);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 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
66 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
67 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
68 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
69 VLayout layout = (VLayout) super.createWidget(data);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 Button add = new Button("Add");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 elements = new ListGrid();
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 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
74 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
75 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
76 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
77 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
78 return;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 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
81 elements.addData(drr);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 });
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 layout.addMember(add);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 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
87 sel.setHeight(25);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 elements.setWidth(185);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 elements.setHeight(120);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 elements.setShowHeaderContextMenu(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 elements.setCanReorderFields(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 elements.setCanSort(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 elements.setCanEdit(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 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
95 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
96 from.setWidth(70);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 to.setWidth(70);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 final ListGridField removeField =
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 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
101 setType(ListGridFieldType.ICON);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 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
103 setCanEdit(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 setCanFilter(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 setCanSort(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 setCanGroupBy(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 setCanFreeze(false);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 setWidth(25);
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.addRecordClickHandler(new RecordClickHandler() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 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
113 // 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
114 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
115 return;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 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
118 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 });
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 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
122
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 grid.addMember(sel);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 grid.addMember(elements);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 input.addMember(layout);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 input.addMember(grid);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 root.addMember(input);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 return root;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 }
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 @Override
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 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
134 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
135 layout.setWidth("400px");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 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
137 vLayout.setWidth(130);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 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
139 label.setWidth("200px");
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 label.setHeight(25);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 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
143 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
144 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
145
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 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
147 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
148 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
149 try {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 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
151 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
152 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
153 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
154 String fromString =
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 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
156 String toString =
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 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
158
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159 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
160 dateLabel.setHeight(20);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 vLayout.addMember(dateLabel);
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 catch(NumberFormatException nfe) {
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 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
167 layout.addMember(label);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
168 layout.addMember(vLayout);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
169 layout.addMember(back);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
170
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
171 return layout;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 }
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
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
175 /**
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
176 * 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
177 *
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178 * @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
179 */
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 public Data[] getData() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 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
182
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 boolean valid = saveDateValues();
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 if(valid) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 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
186 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
187 "ana_data",
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 null,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 null,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 new DataItem[] { item }));
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
192 return (Data[]) data.toArray(new Data[data.size()]);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
193 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 public void setFilter(FixFilter filter) {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 this.fixFilter = filter;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
199 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
200
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 public FixFilter getFilter() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 return this.fixFilter;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 protected boolean saveDateValues() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
207 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
208 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
209 return false;
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 String data = "";
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212 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
213 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
214 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
215 data += ";";
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 GWT.log(data);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 values = data;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 return true;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
220 }
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 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
224 protected Date from;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 protected Date to;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
227 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
228 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
229
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 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
231 setFrom(from);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 setTo(to);
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 }
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 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
236 this.from = from;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 setAttribute(
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
238 FROM_FIELD,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 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
240 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
242
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
243 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
244 this.to = to;
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
245 setAttribute(
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
246 TO_FIELD,
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
247 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
248 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
249
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251 public long getFrom() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
252 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
253 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
254
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256 public long getTo() {
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
257 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
258 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259 }
c3feb721035c Added ui provider for multiple date range input in fix analysis.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 }

http://dive4elements.wald.intevation.org