comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/fixation/FixPeriodPanel.java @ 2505:87ac5c532523

First part of the UI for fixing analysis parameter. flys-client/trunk@4350 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 07 May 2012 13:22:43 +0000
parents
children 8f528f5ae137
comparison
equal deleted inserted replaced
2504:425bc486a40f 2505:87ac5c532523
1 package de.intevation.flys.client.client.ui.fixation;
2
3 import java.util.List;
4 import java.util.ArrayList;
5 import java.util.Date;
6
7 import com.google.gwt.core.client.GWT;
8 import com.smartgwt.client.util.SC;
9
10 import com.smartgwt.client.widgets.Canvas;
11 import com.smartgwt.client.widgets.Label;
12
13 import com.smartgwt.client.widgets.layout.HLayout;
14 import com.smartgwt.client.widgets.layout.VLayout;
15
16 import com.smartgwt.client.widgets.form.DynamicForm;
17 import com.smartgwt.client.widgets.form.fields.DateRangeItem;
18
19 import de.intevation.flys.client.client.FLYSConstants;
20
21 import de.intevation.flys.client.shared.model.Data;
22 import de.intevation.flys.client.shared.model.DataItem;
23 import de.intevation.flys.client.shared.model.DataList;
24 import de.intevation.flys.client.shared.model.DefaultData;
25 import de.intevation.flys.client.shared.model.DefaultDataItem;
26
27 /**
28 * This UIProvider creates a panel for location or distance input.
29 *
30 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
31 */
32 public class FixPeriodPanel
33 extends FixationPanel
34 {
35 /** The message class that provides i18n strings. */
36 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
37
38 DateRangeItem inputPanel;
39
40 long start;
41 long end;
42
43 public FixPeriodPanel() {
44 htmlOverview = "";
45 }
46
47 public Canvas createWidget(DataList data) {
48 instances.put(this.artifact.getUuid(), this);
49
50 VLayout layout = new VLayout();
51
52 Label title = new Label(MESSAGES.period());
53 title.setHeight("25px");
54
55 DynamicForm form = new DynamicForm();
56 inputPanel = new DateRangeItem();
57 inputPanel.setToTitle(MESSAGES.to());
58 inputPanel.setFromTitle(MESSAGES.from());
59 inputPanel.setShowTitle(false);
60 form.setFields(inputPanel);
61
62 layout.addMember(title);
63 layout.addMember(form);
64
65 return layout;
66 }
67
68 @Override
69 public Canvas createOld(DataList dataList) {
70 List<Data> items = dataList.getAll();
71
72 Data start = getData(items, "start");
73 Data end = getData(items, "end");
74 DataItem[] startItem = start.getItems();
75 DataItem[] endItem = end.getItems();
76
77 StringBuilder sb = new StringBuilder();
78 sb.append(startItem[0].getLabel() + " - ");
79 sb.append(endItem[0].getLabel());
80
81 Label old = new Label(sb.toString());
82 old.setWidth(130);
83
84 HLayout layout = new HLayout();
85 layout.setWidth("400px");
86
87 Label label = new Label(dataList.getLabel());
88 label.setWidth("200px");
89
90 Canvas back = getBackButton(dataList.getState());
91
92 layout.addMember(label);
93 layout.addMember(old);
94 layout.addMember(back);
95
96 return layout;
97 }
98
99
100 /**
101 * This method returns the selected data.
102 *
103 * @return the selected/inserted data.
104 */
105 public Data[] getData() {
106 List<Data> data = new ArrayList<Data>();
107
108 boolean valid = saveDateValues();
109 if(valid) {
110 String start = Long.valueOf(this.start).toString();
111 String end = Long.valueOf(this.end).toString();
112 DataItem startItem = new DefaultDataItem("start", "start", start);
113 DataItem endItem = new DefaultDataItem("end", "end", end);
114 data.add(new DefaultData(
115 "start",
116 null,
117 null,
118 new DataItem[] { startItem }));
119 data.add(new DefaultData(
120 "end",
121 null,
122 null,
123 new DataItem[] { endItem }));
124 }
125
126 return (Data[]) data.toArray(new Data[data.size()]);
127 }
128
129
130 @Override
131 public void setValues(String cid, boolean checked) {
132 // No user interaction, do nothing.
133 }
134
135
136 @Override
137 public boolean renderCheckboxes() {
138 // No selection, return false.
139 return false;
140 }
141
142
143 protected boolean saveDateValues() {
144 Date st = inputPanel.getFromDate();
145 Date en = inputPanel.getToDate();
146 if (st == null || en == null) {
147 SC.warn(MESSAGES.error_wrong_date());
148 return false;
149 }
150
151 long start = st.getTime();
152 long end = en.getTime();
153
154 if (start <= end) {
155 this.start = start;
156 this.end = end;
157 return true;
158 }
159 return false;
160 }
161 }

http://dive4elements.wald.intevation.org