Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DoubleInputPanel.java @ 2898:242b5c230707
Added UI for S-Q-relation parameters in minfo module.
flys-client/trunk@4636 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 11 Jun 2012 12:33:22 +0000 |
parents | |
children | 93302bd16f42 |
comparison
equal
deleted
inserted
replaced
2897:133820d1e6bf | 2898:242b5c230707 |
---|---|
1 package de.intevation.flys.client.client.ui; | |
2 | |
3 import java.util.List; | |
4 import java.util.ArrayList; | |
5 import java.util.Date; | |
6 import java.lang.NumberFormatException; | |
7 | |
8 import com.google.gwt.core.client.GWT; | |
9 import com.google.gwt.i18n.client.NumberFormat; | |
10 | |
11 import com.smartgwt.client.util.SC; | |
12 | |
13 import com.smartgwt.client.widgets.Canvas; | |
14 import com.smartgwt.client.widgets.Label; | |
15 | |
16 import com.smartgwt.client.widgets.layout.HLayout; | |
17 import com.smartgwt.client.widgets.layout.VLayout; | |
18 | |
19 import com.smartgwt.client.widgets.form.DynamicForm; | |
20 import com.smartgwt.client.widgets.form.fields.TextItem; | |
21 | |
22 import de.intevation.flys.client.client.FLYSConstants; | |
23 | |
24 import de.intevation.flys.client.shared.model.Data; | |
25 import de.intevation.flys.client.shared.model.DataItem; | |
26 import de.intevation.flys.client.shared.model.DataList; | |
27 import de.intevation.flys.client.shared.model.DefaultData; | |
28 import de.intevation.flys.client.shared.model.DefaultDataItem; | |
29 import de.intevation.flys.client.shared.model.FixingsOverviewInfo.FixEvent; | |
30 | |
31 /** | |
32 * This UIProvider creates a panel for location or distance input. | |
33 * | |
34 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | |
35 */ | |
36 public class DoubleInputPanel | |
37 extends AbstractUIProvider | |
38 { | |
39 /** The message class that provides i18n strings. */ | |
40 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); | |
41 | |
42 private TextItem inputPanel; | |
43 | |
44 private double value; | |
45 | |
46 public DoubleInputPanel() { | |
47 } | |
48 | |
49 | |
50 public Canvas create(DataList list) { | |
51 VLayout layout = new VLayout(); | |
52 | |
53 Canvas helper = createHelper(); | |
54 this.helperContainer.addMember(helper); | |
55 | |
56 Canvas submit = getNextButton(); | |
57 Canvas widget = createWidget(list); | |
58 | |
59 layout.addMember(widget); | |
60 layout.addMember(submit); | |
61 return layout; | |
62 } | |
63 | |
64 | |
65 public Canvas createWidget(DataList data) { | |
66 VLayout layout = new VLayout(); | |
67 | |
68 Label title = new Label(data.get(0).getDescription()); | |
69 title.setHeight("25px"); | |
70 | |
71 DynamicForm form = new DynamicForm(); | |
72 inputPanel = new TextItem(); | |
73 inputPanel.setTitle("outliers"); | |
74 inputPanel.setShowTitle(false); | |
75 form.setFields(inputPanel); | |
76 | |
77 layout.addMember(title); | |
78 layout.addMember(form); | |
79 | |
80 return layout; | |
81 } | |
82 | |
83 protected Canvas createHelper() { | |
84 return new VLayout(); | |
85 } | |
86 | |
87 @Override | |
88 public Canvas createOld(DataList dataList) { | |
89 List<Data> items = dataList.getAll(); | |
90 | |
91 Data d = getData(items, "outliers"); | |
92 DataItem[] item = d.getItems(); | |
93 | |
94 String v = item[0].getLabel(); | |
95 | |
96 Label old = new Label(v); | |
97 old.setWidth(130); | |
98 | |
99 HLayout layout = new HLayout(); | |
100 layout.setWidth("400px"); | |
101 | |
102 Label label = new Label(dataList.getLabel()); | |
103 label.setWidth("200px"); | |
104 | |
105 Canvas back = getBackButton(dataList.getState()); | |
106 | |
107 layout.addMember(label); | |
108 layout.addMember(old); | |
109 layout.addMember(back); | |
110 | |
111 return layout; | |
112 } | |
113 | |
114 | |
115 /** | |
116 * This method returns the selected data. | |
117 * | |
118 * @return the selected/inserted data. | |
119 */ | |
120 public Data[] getData() { | |
121 List<Data> data = new ArrayList<Data>(); | |
122 | |
123 boolean valid = saveDataValues(); | |
124 if(valid) { | |
125 | |
126 String vs = Double.valueOf(this.value).toString(); | |
127 DataItem item = new DefaultDataItem("outliers", "outliers", vs); | |
128 data.add(new DefaultData( | |
129 "outliers", | |
130 null, | |
131 null, | |
132 new DataItem[] { item })); | |
133 } | |
134 | |
135 return (Data[]) data.toArray(new Data[data.size()]); | |
136 } | |
137 | |
138 | |
139 protected boolean saveDataValues() { | |
140 String st = inputPanel.getValueAsString(); | |
141 if (st == null) { | |
142 SC.warn("fehler... TODO"); | |
143 return false; | |
144 } | |
145 | |
146 try { | |
147 NumberFormat nf = NumberFormat.getDecimalFormat(); | |
148 double d = nf.parse(st); | |
149 this.value = d; | |
150 } | |
151 catch(NumberFormatException nfe) { | |
152 SC.warn("fehler... nfe... TODO"); | |
153 return false; | |
154 } | |
155 return true; | |
156 } | |
157 } |