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 }

http://dive4elements.wald.intevation.org