]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6918 CheckBox/Button in switch mode should support null value
authorHenri Sara <henri.sara@itmill.com>
Tue, 3 May 2011 11:34:43 +0000 (11:34 +0000)
committerHenri Sara <henri.sara@itmill.com>
Tue, 3 May 2011 11:34:43 +0000 (11:34 +0000)
svn changeset:18604/svn branch:6.6

src/com/vaadin/ui/Button.java

index 8fa9e2afb9b2286e3076ddd878bab3b0d1aebedf..c64cd386ce687480efdb050402c0cab70e7ffb6a 100644 (file)
@@ -188,7 +188,7 @@ public class Button extends AbstractField implements FieldEvents.BlurNotifier,
                 }
 
                 // If the button is true for some reason, release it
-                if (oldValue.booleanValue()) {
+                if (null == oldValue || oldValue.booleanValue()) {
                     setValue(Boolean.FALSE);
                 }
             }
@@ -240,13 +240,8 @@ public class Button extends AbstractField implements FieldEvents.BlurNotifier,
      * @return True iff the button is pressed down or checked.
      */
     public boolean booleanValue() {
-        boolean state;
-        try {
-            state = ((Boolean) getValue()).booleanValue();
-        } catch (final NullPointerException e) {
-            state = false;
-        }
-        return state;
+        Boolean value = (Boolean) getValue();
+        return (null == value) ? false : value.booleanValue();
     }
 
     /**
@@ -475,7 +470,7 @@ public class Button extends AbstractField implements FieldEvents.BlurNotifier,
     @Override
     protected void setInternalValue(Object newValue) {
         // Make sure only booleans get through
-        if (!(newValue instanceof Boolean)) {
+        if (null != newValue && !(newValue instanceof Boolean)) {
             throw new IllegalArgumentException(getClass().getSimpleName()
                     + " only accepts Boolean values");
         }