Author: pamarcelot Date: Fri Oct 12 14:32:33 2012 New Revision: 1397581 URL: http://svn.apache.org/viewvc?rev=1397581&view=rev Log: Fix for DIRSTUDIO-823 (Integer Value Editor only selects values of Java Integer magnitude). Modified: directory/studio/trunk/plugins/valueeditors/src/main/java/org/apache/directory/studio/valueeditors/integer/IntegerValueEditor.java Modified: directory/studio/trunk/plugins/valueeditors/src/main/java/org/apache/directory/studio/valueeditors/integer/IntegerValueEditor.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/valueeditors/src/main/java/org/apache/directory/studio/valueeditors/integer/IntegerValueEditor.java?rev=1397581&r1=1397580&r2=1397581&view=diff ============================================================================== --- directory/studio/trunk/plugins/valueeditors/src/main/java/org/apache/directory/studio/valueeditors/integer/IntegerValueEditor.java (original) +++ directory/studio/trunk/plugins/valueeditors/src/main/java/org/apache/directory/studio/valueeditors/integer/IntegerValueEditor.java Fri Oct 12 14:32:33 2012 @@ -21,6 +21,8 @@ package org.apache.directory.studio.valueeditors.integer; +import java.math.BigDecimal; + import org.apache.directory.studio.valueeditors.AbstractDialogStringValueEditor; import org.eclipse.swt.widgets.Shell; @@ -32,7 +34,6 @@ import org.eclipse.swt.widgets.Shell; */ public class IntegerValueEditor extends AbstractDialogStringValueEditor { - /** * {@inheritDoc} * @@ -41,27 +42,34 @@ public class IntegerValueEditor extends public boolean openDialog( Shell shell ) { Object value = getValue(); + if ( value != null && value instanceof String ) { - String stringValue = ( String ) value; - int intValue; + BigDecimal integer = null; boolean isNewOrMalformedValue = false; + try { - intValue = Integer.valueOf( stringValue ); + integer = new BigDecimal( ( String ) value ); } catch ( NumberFormatException e ) { - intValue = 0; + integer = new BigDecimal( 0 ); isNewOrMalformedValue = true; } - IntegerDialog dialog = new IntegerDialog( shell, intValue ); + + IntegerDialog dialog = new IntegerDialog( shell, integer ); if ( dialog.open() == IntegerDialog.OK && ( dialog.isDirty() || isNewOrMalformedValue ) ) { - setValue( Integer.toString( dialog.getInteger() ) ); - return true; + BigDecimal newValue = dialog.getInteger(); + if ( newValue != null ) + { + setValue( newValue.toString() ); + return true; + } } } + return false; } }