comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/SedLoadPeriodPanel.java @ 4223:015b219a97af

Added new UI provider for sediment load parameter input.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 23 Oct 2012 13:21:57 +0200
parents
children abd304085bd4
comparison
equal deleted inserted replaced
4222:94c76129af7d 4223:015b219a97af
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.smartgwt.client.widgets.Canvas;
8 import com.smartgwt.client.widgets.Label;
9 import com.smartgwt.client.widgets.form.DynamicForm;
10 import com.smartgwt.client.widgets.form.fields.TextItem;
11 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
12 import com.smartgwt.client.widgets.layout.HLayout;
13 import com.smartgwt.client.widgets.layout.VLayout;
14
15 import de.intevation.flys.client.client.ui.AbstractUIProvider;
16 import de.intevation.flys.client.client.ui.IntegerRangePanel;
17 import de.intevation.flys.client.shared.model.Data;
18 import de.intevation.flys.client.shared.model.DataItem;
19 import de.intevation.flys.client.shared.model.DataList;
20 import de.intevation.flys.client.shared.model.DefaultData;
21 import de.intevation.flys.client.shared.model.DefaultDataItem;
22
23
24 public class SedLoadPeriodPanel
25 extends AbstractUIProvider
26 //extends SedLoadPanel
27 {
28
29 private TextItem start;
30 private TextItem end;
31
32 public SedLoadPeriodPanel () {
33 }
34
35 @Override
36 public Canvas createOld(DataList dataList) {
37 List<Data> items = dataList.getAll();
38 Data start = getData(items, "start");
39 Data end = getData(items, "end");
40 DataItem[] startItem = start.getItems();
41 DataItem[] endItem = end.getItems();
42
43 String v1 = startItem[0].getStringValue();
44 String v2 = endItem[0].getStringValue();
45
46 int v1i = 0;
47 int v2i = 0;
48 try {
49 v1i = Integer.parseInt(v1);
50 v2i = Integer.parseInt(v2);
51 }
52 catch (NumberFormatException nfe) {
53 GWT.log(nfe.toString());
54 }
55 Label old = new Label(v1i + " - " + v2i);
56 HLayout layout = new HLayout();
57 layout.setWidth("400px");
58
59 Label label = new Label(dataList.getLabel());
60 label.setWidth("200px");
61
62 Canvas back = getBackButton(dataList.getState());
63
64 layout.addMember(label);
65 layout.addMember(old);
66 layout.addMember(back);
67
68 return layout;
69 }
70
71 @Override
72 public Canvas create(DataList data) {
73 VLayout layout = new VLayout();
74
75 // Canvas helper = createHelper();
76 // this.helperContainer.addMember(helper);
77
78 Canvas submit = getNextButton();
79 Canvas widget = createWidget(data);
80
81 layout.addMember(widget);
82 layout.addMember(submit);
83 return layout;
84 }
85
86 public Canvas createWidget(DataList data) {
87 VLayout layout = new VLayout();
88
89 Label title = new Label(data.get(0).getDescription());
90 title.setHeight("25px");
91
92 DynamicForm form = new DynamicForm();
93 form.setNumCols(4);
94 start = new TextItem(MSG.from());
95 start.setValidators(new IsIntegerValidator());
96 end = new TextItem(MSG.to());
97 end.setValidators(new IsIntegerValidator());
98 form.setFields(start, end);
99 // inputPanel.setToTitle(MSG.to());
100 // inputPanel.setFromTitle(MSG.from());
101 // inputPanel.setShowTitle(false);
102
103 layout.addMember(title);
104 layout.addMember(form);
105
106 return layout;
107 }
108
109 @Override
110 protected Data[] getData() {
111 int v1;
112 int v2;
113 try {
114 v1 = Integer.parseInt(start.getValueAsString());
115 v2 = Integer.parseInt(end.getValueAsString());
116 }
117 catch(NumberFormatException nfe) {
118 // warn the user...
119 return new Data[0];
120 }
121 if (validateRange(v1, v2)) {
122 List<Data> data = new ArrayList<Data>();
123
124 DataItem startItem = new DefaultDataItem("start", "start", start.getValueAsString());
125 DataItem endItem = new DefaultDataItem("end", "end", end.getValueAsString());
126 data.add(new DefaultData(
127 "start",
128 null,
129 null,
130 new DataItem[] { startItem }));
131 data.add(new DefaultData(
132 "end",
133 null,
134 null,
135 new DataItem[] { endItem }));
136
137 return data.toArray(new Data[data.size()]);
138 }
139 return new Data[0];
140 }
141
142 protected boolean validateRange(int v1, int v2) {
143 // TODO: Set useful years for validation. Current range is between start
144 // of gregorian calendar and a year in the future...
145 if ((v1 > 1582 && v1 < 2100)
146 && (v2 > 1582 && v2 < 2100)) {
147 return true;
148 }
149 return false;
150 }
151
152
153 }

http://dive4elements.wald.intevation.org