Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/validator/RealValidator.java')
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/validator/RealValidator.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/validator/RealValidator.java b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/validator/RealValidator.java
index c67a8979ee7..3ff10f0d880 100644
--- a/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/validator/RealValidator.java
+++ b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/validator/RealValidator.java
@@ -25,6 +25,22 @@ import org.eclipse.papyrus.infra.widgets.messages.Messages;
*/
public class RealValidator extends AbstractValidator {
+ private final boolean allowNull;
+
+ public RealValidator() {
+ this(false);
+ }
+
+ /**
+ * Create a new {@link RealValidator}. If <code>allowNull</code>
+ * is true, null and empty strings will be considered valid values (These
+ * null/empty values can be used e.g. to reset or unset a real value)
+ *
+ * @since 3.5
+ */
+ public RealValidator(boolean allowNull) {
+ this.allowNull = allowNull;
+ }
/**
*
@@ -38,9 +54,17 @@ public class RealValidator extends AbstractValidator {
return Status.OK_STATUS;
}
+ if (newValue == null && allowNull) {
+ return Status.OK_STATUS;
+ }
+
if (newValue instanceof String) {
+ String strValue = (String) newValue;
+ if (allowNull && strValue.isEmpty()) {
+ return Status.OK_STATUS;
+ }
try {
- Double.parseDouble((String) newValue);
+ Double.parseDouble(strValue);
return Status.OK_STATUS;
} catch (NumberFormatException ex) {
return error(Messages.RealInputValidator_NotaRealMessage);

Back to the top