Mercurial > dive4elements > river
comparison flys-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/SedLoadPeriodPanel.java @ 5834:f507086aa94b
Repaired internal references.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:31:32 +0200 |
parents | flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadPeriodPanel.java@b195fede1c3b |
children | 821a02bbfb4e |
comparison
equal
deleted
inserted
replaced
5833:a2bdc0f524e8 | 5834:f507086aa94b |
---|---|
1 package de.intevation.flys.client.client.ui.minfo; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
5 | |
6 import com.google.gwt.core.client.GWT; | |
7 import com.google.gwt.user.client.rpc.AsyncCallback; | |
8 import com.smartgwt.client.types.ListGridFieldType; | |
9 import com.smartgwt.client.util.SC; | |
10 import com.smartgwt.client.widgets.Canvas; | |
11 import com.smartgwt.client.widgets.Label; | |
12 import com.smartgwt.client.widgets.form.DynamicForm; | |
13 import com.smartgwt.client.widgets.form.fields.TextItem; | |
14 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; | |
15 import com.smartgwt.client.widgets.grid.ListGrid; | |
16 import com.smartgwt.client.widgets.grid.ListGridField; | |
17 import com.smartgwt.client.widgets.layout.HLayout; | |
18 import com.smartgwt.client.widgets.layout.VLayout; | |
19 | |
20 import de.intevation.flys.client.client.Config; | |
21 import de.intevation.flys.client.client.services.SedimentLoadInfoService; | |
22 import de.intevation.flys.client.client.services.SedimentLoadInfoServiceAsync; | |
23 import de.intevation.flys.client.client.ui.AbstractUIProvider; | |
24 import de.intevation.flys.client.shared.model.ArtifactDescription; | |
25 import de.intevation.flys.client.shared.model.Data; | |
26 import de.intevation.flys.client.shared.model.DataItem; | |
27 import de.intevation.flys.client.shared.model.DataList; | |
28 import de.intevation.flys.client.shared.model.DefaultData; | |
29 import de.intevation.flys.client.shared.model.DefaultDataItem; | |
30 import de.intevation.flys.client.shared.model.SedimentLoadInfoObject; | |
31 import de.intevation.flys.client.shared.model.SedimentLoadInfoRecord; | |
32 | |
33 | |
34 public class SedLoadPeriodPanel | |
35 extends AbstractUIProvider | |
36 { | |
37 protected SedimentLoadInfoServiceAsync sedLoadInfoService = | |
38 GWT.create(SedimentLoadInfoService.class); | |
39 | |
40 private TextItem start; | |
41 private TextItem end; | |
42 | |
43 private ListGrid sedLoadTable; | |
44 | |
45 public SedLoadPeriodPanel () { | |
46 } | |
47 | |
48 @Override | |
49 public Canvas createOld(DataList dataList) { | |
50 List<Data> items = dataList.getAll(); | |
51 Data start = getData(items, "start"); | |
52 Data end = getData(items, "end"); | |
53 DataItem[] startItem = start.getItems(); | |
54 DataItem[] endItem = end.getItems(); | |
55 | |
56 String v1 = startItem[0].getStringValue(); | |
57 String v2 = endItem[0].getStringValue(); | |
58 | |
59 int v1i = 0; | |
60 int v2i = 0; | |
61 try { | |
62 v1i = Integer.parseInt(v1); | |
63 v2i = Integer.parseInt(v2); | |
64 } | |
65 catch (NumberFormatException nfe) { | |
66 GWT.log(nfe.toString()); | |
67 } | |
68 Label old = new Label(v1i + " - " + v2i); | |
69 HLayout layout = new HLayout(); | |
70 layout.setWidth("400px"); | |
71 | |
72 Label label = new Label(dataList.getLabel()); | |
73 label.setWidth("200px"); | |
74 | |
75 Canvas back = getBackButton(dataList.getState()); | |
76 | |
77 layout.addMember(label); | |
78 layout.addMember(old); | |
79 layout.addMember(back); | |
80 | |
81 return layout; | |
82 } | |
83 | |
84 @Override | |
85 public Canvas create(DataList data) { | |
86 VLayout layout = new VLayout(); | |
87 | |
88 Canvas helper = createHelper(); | |
89 this.helperContainer.addMember(helper); | |
90 | |
91 Canvas submit = getNextButton(); | |
92 Canvas widget = createWidget(data); | |
93 | |
94 layout.addMember(widget); | |
95 layout.addMember(submit); | |
96 | |
97 fetchSedimentLoadData(); | |
98 | |
99 return layout; | |
100 } | |
101 | |
102 private Canvas createHelper() { | |
103 sedLoadTable = new ListGrid(); | |
104 sedLoadTable.setShowHeaderContextMenu(false); | |
105 sedLoadTable.setWidth100(); | |
106 sedLoadTable.setShowRecordComponents(true); | |
107 sedLoadTable.setShowRecordComponentsByCell(true); | |
108 sedLoadTable.setHeight100(); | |
109 sedLoadTable.setEmptyMessage(MSG.empty_table()); | |
110 sedLoadTable.setCanReorderFields(false); | |
111 | |
112 ListGridField date = new ListGridField("date", MSG.year()); | |
113 date.setType(ListGridFieldType.TEXT); | |
114 date.setWidth(100); | |
115 | |
116 ListGridField descr = | |
117 new ListGridField("description", MSG.description()); | |
118 descr.setType(ListGridFieldType.TEXT); | |
119 descr.setWidth("*"); | |
120 | |
121 sedLoadTable.setFields(date, descr); | |
122 return sedLoadTable; | |
123 } | |
124 | |
125 public Canvas createWidget(DataList data) { | |
126 VLayout layout = new VLayout(); | |
127 | |
128 Label title = new Label(data.get(0).getDescription()); | |
129 title.setHeight("25px"); | |
130 | |
131 DynamicForm form = new DynamicForm(); | |
132 form.setNumCols(4); | |
133 start = new TextItem(MSG.from()); | |
134 start.setValidators(new IsIntegerValidator()); | |
135 end = new TextItem(MSG.to()); | |
136 end.setValidators(new IsIntegerValidator()); | |
137 form.setFields(start, end); | |
138 // inputPanel.setToTitle(MSG.to()); | |
139 // inputPanel.setFromTitle(MSG.from()); | |
140 // inputPanel.setShowTitle(false); | |
141 | |
142 layout.addMember(title); | |
143 layout.addMember(form); | |
144 | |
145 return layout; | |
146 } | |
147 | |
148 @Override | |
149 protected Data[] getData() { | |
150 int v1; | |
151 int v2; | |
152 try { | |
153 v1 = Integer.parseInt(start.getValueAsString()); | |
154 v2 = Integer.parseInt(end.getValueAsString()); | |
155 } | |
156 catch(NumberFormatException nfe) { | |
157 // warn the user... | |
158 return new Data[0]; | |
159 } | |
160 if (validateRange(v1, v2)) { | |
161 List<Data> data = new ArrayList<Data>(); | |
162 | |
163 DataItem startItem = new DefaultDataItem("start", "start", start.getValueAsString()); | |
164 DataItem endItem = new DefaultDataItem("end", "end", end.getValueAsString()); | |
165 data.add(new DefaultData( | |
166 "start", | |
167 null, | |
168 null, | |
169 new DataItem[] { startItem })); | |
170 data.add(new DefaultData( | |
171 "end", | |
172 null, | |
173 null, | |
174 new DataItem[] { endItem })); | |
175 | |
176 return data.toArray(new Data[data.size()]); | |
177 } | |
178 return new Data[0]; | |
179 } | |
180 | |
181 protected boolean validateRange(int v1, int v2) { | |
182 // TODO: Set useful years for validation. Current range is between start | |
183 // of gregorian calendar and a year in the future... | |
184 if ((v1 > 1582 && v1 < 2100) | |
185 && (v2 > 1582 && v2 < 2100)) { | |
186 return true; | |
187 } | |
188 return false; | |
189 } | |
190 | |
191 protected void fetchSedimentLoadData() { | |
192 Config config = Config.getInstance(); | |
193 String locale = config.getLocale (); | |
194 | |
195 ArtifactDescription adescr = artifact.getArtifactDescription(); | |
196 DataList[] data = adescr.getOldData(); | |
197 | |
198 double[] km = artifact.getArtifactDescription().getKMRange(); | |
199 String river = artifact.getArtifactDescription().getRiver(); | |
200 | |
201 sedLoadInfoService.getSedimentLoadInfo(locale, river, "single", km[0], km[1], | |
202 new AsyncCallback<SedimentLoadInfoObject[]>() { | |
203 public void onFailure(Throwable caught) { | |
204 GWT.log("Could not recieve sediment load informations."); | |
205 SC.warn(caught.getMessage()); | |
206 } | |
207 | |
208 public void onSuccess(SedimentLoadInfoObject[] sedLoad) { | |
209 int num = sedLoad != null ? sedLoad.length :0; | |
210 GWT.log("Recieved " + num + " sediment load informations."); | |
211 | |
212 if (num == 0) { | |
213 return; | |
214 } | |
215 | |
216 addSedimentLoadInfo(sedLoad); | |
217 } | |
218 } | |
219 ); | |
220 } | |
221 | |
222 | |
223 protected void addSedimentLoadInfo (SedimentLoadInfoObject[] sedLoad) { | |
224 for(SedimentLoadInfoObject sl: sedLoad) { | |
225 SedimentLoadInfoRecord rec = new SedimentLoadInfoRecord(sl); | |
226 sedLoadTable.addData(rec); | |
227 } | |
228 } | |
229 | |
230 } |