# HG changeset patch # User Felix Wolfsteller # Date 1336599894 0 # Node ID 89814cc6e922ab0f82c1f6587018178906b8ce79 # Parent 72266675b351ec319f409b07e3d92fcd8a9142dc Fix issue652: spinner input. flys-client/trunk@4371 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 72266675b351 -r 89814cc6e922 flys-client/ChangeLog --- a/flys-client/ChangeLog Wed May 09 20:07:22 2012 +0000 +++ b/flys-client/ChangeLog Wed May 09 21:44:54 2012 +0000 @@ -1,3 +1,18 @@ +2012-05-09 Felix Wolfsteller + + issue652: Empty spinner leads to exception. + + * src/main/java/de/intevation/flys/client/client/ui/chart/CrossSectionChartThemePanel.java: + Employ ValueFormatter and ValueParser to respect locale and stabilize. + +2012-05-09 Felix Wolfsteller + + * src/main/java/de/intevation/flys/client/client/FLYSConstants.java, + src/main/java/de/intevation/flys/client/client/FLYSConstants.properties, + src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties, + src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties: + Added i18n strings for showmiddleheight theme property strings. + 2012-05-09 Sascha L. Teichmann * src/main/webapp/WEB-INF/config.yaml: Simplified config. Still ugly. diff -r 72266675b351 -r 89814cc6e922 flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/CrossSectionChartThemePanel.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/CrossSectionChartThemePanel.java Wed May 09 20:07:22 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/CrossSectionChartThemePanel.java Wed May 09 21:44:54 2012 +0000 @@ -9,12 +9,15 @@ import com.google.gwt.core.client.GWT; +import com.google.gwt.i18n.client.NumberFormat; + import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.util.SC; import com.smartgwt.client.types.ListGridFieldType; +import com.smartgwt.client.data.Record; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; @@ -23,8 +26,11 @@ import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; +import com.smartgwt.client.widgets.form.fields.FormItem; import com.smartgwt.client.widgets.form.fields.SpinnerItem; import com.smartgwt.client.widgets.form.DynamicForm; +import com.smartgwt.client.widgets.form.FormItemValueFormatter; +import com.smartgwt.client.widgets.form.FormItemValueParser; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.TextItem; @@ -546,17 +552,56 @@ spinnerValueEntered(null, currentValue - 0.1d, _facetRecord); } }); - // TODO i18n + DynamicForm form = new DynamicForm(); final TextItem kmField = new TextItem(); kmField.setValue(currentValue); kmField.setWidth(35); kmField.setTitle(""); kmField.setHeight(height); + + FormItemValueFormatter doubleFormat = new FormItemValueFormatter() { + public String formatValue(Object value, Record record, + DynamicForm form, FormItem item) { + if (value != null) { + NumberFormat nf = NumberFormat.getDecimalFormat(); + try { + double d = Double.valueOf(value.toString()).doubleValue(); + return nf.format(d); + } catch (Exception e) { + return value.toString(); + } + } + else { + return null; + } + } + }; + kmField.setEditorValueFormatter(doubleFormat); + + FormItemValueParser doubleParser = new FormItemValueParser() { + public Object parseValue(String value, + DynamicForm form, + FormItem item) { + if (value == null) + return null; + try { + NumberFormat nf = NumberFormat.getDecimalFormat(); + double d = nf.parse(value.toString()); + return (new Double(d)).toString(); + } + catch(NumberFormatException nfe) { + return value; + } + } + }; + kmField.setEditorValueParser(doubleParser); + // Update on focus lost and enter-pressed. kmField.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent be) { + if(kmField.getValue() != null) spinnerValueEntered(null, Double.parseDouble(kmField.getValue().toString()), _facetRecord);