comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DoubleInputPanel.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-client/src/main/java/org/dive4elements/river/client/client/ui/DoubleInputPanel.java@821a02bbfb4e
children 172338b1407f
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.client.client.ui;
2
3 import com.google.gwt.core.client.GWT;
4 import com.google.gwt.i18n.client.NumberFormat;
5
6 import com.smartgwt.client.util.SC;
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.layout.HLayout;
12 import com.smartgwt.client.widgets.layout.VLayout;
13
14 import org.dive4elements.river.client.client.FLYSConstants;
15 import org.dive4elements.river.client.shared.model.Data;
16 import org.dive4elements.river.client.shared.model.DataItem;
17 import org.dive4elements.river.client.shared.model.DataList;
18 import org.dive4elements.river.client.shared.model.DefaultData;
19 import org.dive4elements.river.client.shared.model.DefaultDataItem;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 /**
25 * This UIProvider creates a panel for location or distance input.
26 *
27 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
28 */
29 public class DoubleInputPanel
30 extends AbstractUIProvider
31 {
32
33 private static final long serialVersionUID = 2006773072352563622L;
34
35 /** The message class that provides i18n strings. */
36 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
37
38 private TextItem inputPanel;
39
40 private double value;
41
42 protected String dataName;
43
44
45 public DoubleInputPanel() {
46 dataName = "outliers";
47 }
48
49
50 public DoubleInputPanel(String dataName) {
51 this.dataName = dataName;
52 }
53
54
55 @Override
56 public Canvas create(DataList list) {
57 VLayout layout = new VLayout();
58
59 Canvas helper = createHelper();
60 this.helperContainer.addMember(helper);
61
62 Canvas submit = getNextButton();
63 Canvas widget = createWidget(list);
64
65 layout.addMember(widget);
66 layout.addMember(submit);
67 return layout;
68 }
69
70
71 /** Create a labelled input-panel. */
72 public Canvas createWidget(DataList data) {
73 VLayout layout = new VLayout();
74
75 Label title = new Label(data.get(0).getDescription());
76 title.setHeight("25px");
77
78 DataItem defaultItem = data.get(0).getDefault();
79
80 DynamicForm form = new DynamicForm();
81 inputPanel = new TextItem();
82 inputPanel.setTitle(dataName);
83 inputPanel.setShowTitle(false);
84
85 if (defaultItem != null) {
86 inputPanel.setValue(defaultItem.getStringValue());
87 }
88
89 form.setFields(inputPanel);
90
91 layout.addMember(title);
92 layout.addMember(form);
93
94 return layout;
95 }
96
97
98 protected Canvas createHelper() {
99 return new VLayout();
100 }
101
102
103 /** Create canvas to show previously entered value. */
104 @Override
105 public Canvas createOld(DataList dataList) {
106 List<Data> items = dataList.getAll();
107
108 Data d = getData(items, dataName);
109 DataItem[] item = d.getItems();
110
111 String v = item[0].getLabel();
112
113 Label old = new Label(v);
114 old.setWidth(130);
115
116 HLayout layout = new HLayout();
117 layout.setWidth("400px");
118
119 Label label = new Label(dataList.getLabel());
120 label.setWidth("200px");
121
122 Canvas back = getBackButton(dataList.getState());
123
124 layout.addMember(label);
125 layout.addMember(old);
126 layout.addMember(back);
127
128 return layout;
129 }
130
131
132 /**
133 * This method returns the selected data.
134 *
135 * @return the selected/inserted data.
136 */
137 @Override
138 public Data[] getData() {
139 List<Data> data = new ArrayList<Data>();
140
141 boolean valid = saveDataValues();
142 if(valid) {
143
144 String vs = Double.valueOf(this.value).toString();
145 DataItem item = new DefaultDataItem(dataName, dataName, vs);
146 data.add(new DefaultData(
147 dataName,
148 null,
149 null,
150 new DataItem[] { item }));
151 }
152
153 return data.toArray(new Data[data.size()]);
154 }
155
156
157 protected boolean saveDataValues() {
158 String st = inputPanel.getValueAsString();
159 if (st == null) {
160 SC.warn("fehler... TODO");
161 return false;
162 }
163
164 try {
165 NumberFormat nf = NumberFormat.getDecimalFormat();
166 double d = nf.parse(st);
167 this.value = d;
168 }
169 catch(NumberFormatException nfe) {
170 SC.warn("fehler... nfe... TODO");
171 return false;
172 }
173 return true;
174 }
175 }
176 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org