Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixGaugeSelectPanel.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/fixation/FixGaugeSelectPanel.java@821a02bbfb4e |
children | 172338b1407f |
comparison
equal
deleted
inserted
replaced
5837:d9901a08d0a6 | 5838:5aa05a7a34b7 |
---|---|
1 package org.dive4elements.river.client.client.ui.fixation; | |
2 | |
3 import com.google.gwt.core.client.GWT; | |
4 | |
5 import com.smartgwt.client.widgets.Canvas; | |
6 import com.smartgwt.client.widgets.Label; | |
7 import com.smartgwt.client.widgets.form.DynamicForm; | |
8 import com.smartgwt.client.widgets.form.fields.SelectItem; | |
9 import com.smartgwt.client.widgets.form.fields.StaticTextItem; | |
10 import com.smartgwt.client.widgets.layout.HLayout; | |
11 import com.smartgwt.client.widgets.layout.VLayout; | |
12 | |
13 import org.dive4elements.river.client.client.FLYSConstants; | |
14 import org.dive4elements.river.client.shared.model.Data; | |
15 import org.dive4elements.river.client.shared.model.DataItem; | |
16 import org.dive4elements.river.client.shared.model.DataList; | |
17 import org.dive4elements.river.client.shared.model.DefaultData; | |
18 import org.dive4elements.river.client.shared.model.DefaultDataItem; | |
19 | |
20 import java.util.ArrayList; | |
21 import java.util.LinkedHashMap; | |
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 FixGaugeSelectPanel | |
30 extends FixationPanel | |
31 { | |
32 /** The message class that provides i18n strings. */ | |
33 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); | |
34 | |
35 protected String first; | |
36 protected String second; | |
37 | |
38 protected SelectItem from; | |
39 protected SelectItem to; | |
40 | |
41 protected LinkedHashMap<String, String> mapValues; | |
42 | |
43 public FixGaugeSelectPanel() { | |
44 htmlOverview = ""; | |
45 | |
46 mapValues = new LinkedHashMap<String, String>(); | |
47 mapValues.put("0", MESSAGES.gauge_mnq()); | |
48 mapValues.put("1", MESSAGES.gauge_mq()); | |
49 mapValues.put("2", MESSAGES.gauge_mhq()); | |
50 mapValues.put("3", MESSAGES.gauge_hq5()); | |
51 } | |
52 | |
53 @Override | |
54 public Canvas createWidget(DataList data) { | |
55 instances.put(this.artifact.getUuid(), this); | |
56 | |
57 VLayout layout = new VLayout(); | |
58 | |
59 Label title = new Label(MESSAGES.gauge_class()); | |
60 title.setHeight(25); | |
61 | |
62 from = new SelectItem(MESSAGES.from()); | |
63 to = new SelectItem(MESSAGES.to()); | |
64 | |
65 from.setShowTitle(false); | |
66 to.setShowTitle(false); | |
67 from.setValueMap(mapValues); | |
68 from.setDefaultValues("0"); | |
69 from.setWidth(160); | |
70 to.setValueMap(mapValues); | |
71 to.setDefaultValues("3"); | |
72 to.setWidth(160); | |
73 | |
74 DynamicForm form = new DynamicForm(); | |
75 StaticTextItem separator = new StaticTextItem("separator"); | |
76 separator.setShowTitle(false); | |
77 separator.setValue(MESSAGES.to()); | |
78 form.setNumCols(5); | |
79 form.setFields(from, separator, to); | |
80 | |
81 layout.addMember(title); | |
82 layout.addMember(form); | |
83 | |
84 return layout; | |
85 } | |
86 | |
87 @Override | |
88 public Canvas createOld(DataList dataList) { | |
89 List<Data> items = dataList.getAll(); | |
90 | |
91 Data f = getData(items, "q1"); | |
92 Data t = getData(items, "q2"); | |
93 DataItem[] fItems = f.getItems(); | |
94 DataItem[] tItems = t.getItems(); | |
95 | |
96 StringBuilder sb = new StringBuilder(); | |
97 sb.append(mapValues.get(fItems[0].getLabel())); | |
98 sb.append(" " + MESSAGES.to() + " "); | |
99 sb.append(mapValues.get(tItems[0].getLabel())); | |
100 | |
101 Label old = new Label(sb.toString()); | |
102 old.setWidth(130); | |
103 | |
104 HLayout layout = new HLayout(); | |
105 layout.setWidth("400px"); | |
106 Label label = new Label(dataList.getLabel()); | |
107 label.setWidth("200px"); | |
108 | |
109 Canvas back = getBackButton(dataList.getState()); | |
110 | |
111 layout.addMember(label); | |
112 layout.addMember(old); | |
113 layout.addMember(back); | |
114 return layout; | |
115 } | |
116 | |
117 | |
118 /** | |
119 * This method returns the selected data. | |
120 * | |
121 * @return the selected/inserted data. | |
122 */ | |
123 @Override | |
124 public Data[] getData() { | |
125 List<Data> data = new ArrayList<Data>(); | |
126 | |
127 boolean valid = saveClassValues(); | |
128 if (valid) { | |
129 DataItem firstItem = new DefaultDataItem("q1", "q1", this.first); | |
130 DataItem secItem = new DefaultDataItem("q2", "q2", this.second); | |
131 data.add(new DefaultData( | |
132 "q1", | |
133 null, | |
134 null, | |
135 new DataItem[] { firstItem })); | |
136 data.add(new DefaultData( | |
137 "q2", | |
138 null, | |
139 null, | |
140 new DataItem[] { secItem })); | |
141 } | |
142 return data.toArray(new Data[data.size()]); | |
143 } | |
144 | |
145 | |
146 @Override | |
147 public void setValues(String cid, boolean checked) { | |
148 // No user interaction, do nothing. | |
149 } | |
150 | |
151 | |
152 @Override | |
153 public boolean renderCheckboxes() { | |
154 // No selection, return false. | |
155 return false; | |
156 } | |
157 | |
158 | |
159 @Override | |
160 public void success() {} | |
161 | |
162 protected boolean saveClassValues() { | |
163 String v1 = from.getValueAsString(); | |
164 String v2 = to.getValueAsString(); | |
165 try { | |
166 int v1i = Integer.parseInt(v1); | |
167 int v2i = Integer.parseInt(v2); | |
168 if (v1i <= v2i) { | |
169 this.first = v1; | |
170 this.second = v2; | |
171 return true; | |
172 } | |
173 } | |
174 catch(NumberFormatException nfe) { | |
175 return false; | |
176 } | |
177 return false; | |
178 } | |
179 } |