Mercurial > dive4elements > river
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 } |