From 2dd881d0203f14f5f1eec6e03b60b380639b7b68 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sat, 26 Mar 2011 01:32:47 -0500 Subject: [PATCH] BF [3058780] WNumberEditor allow only BigDecimal https://sourceforge.net/tracker/?func=detail&aid=3058780&group_id=176962&atid=955896 Fix problem reported at http://sourceforge.net/support/tracker.php?aid=3168968 --- .../adempiere/webui/editor/WNumberEditor.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java index ba979ce62e..195971d503 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WNumberEditor.java @@ -133,19 +133,24 @@ public class WNumberEditor extends WEditor implements ContextMenuListener if (Events.ON_CHANGE.equalsIgnoreCase(event.getName()) || Events.ON_OK.equalsIgnoreCase(event.getName())) { Object newValue = getComponent().getValue(); + if (oldValue == null && newValue == null) { + return; + } + + if (displayType == DisplayType.Integer) { + if (newValue != null && newValue instanceof BigDecimal) { + newValue = new Integer(((BigDecimal)newValue).intValue()); + } + if (oldValue != null && oldValue instanceof BigDecimal) { + oldValue = new Integer(((BigDecimal)oldValue).intValue()); + } + } - BigDecimal bd = new BigDecimal(newValue.toString()); - if (displayType == DisplayType.Integer) - newValue = new Integer(bd.intValue()); - else - newValue = bd; if (oldValue != null && newValue != null && oldValue.equals(newValue)) { return; } - if (oldValue == null && newValue == null) { - return; - } + ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue); super.fireValueChange(changeEvent); oldValue = newValue;