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