Author: mwringe
Date: 2012-02-21 16:30:26 -0500 (Tue, 21 Feb 2012)
New Revision: 8450
Added:
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/form/validator/NumberRangeValidator.java
Modified:
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/test/validator/TestWebuiValidator.java
portal/trunk/webui/dashboard/src/main/java/org/exoplatform/dashboard/webui/component/UIDashboardEditForm.java
Log:
GTNPORTAL-2357: add a new NumberRangeValidator to specify the range of valid numbers.
Update the UIDashboardEditForm to use this new validator to display a helpful error
message if the number of columns in the dashboard is out of range.
Added:
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/form/validator/NumberRangeValidator.java
===================================================================
---
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/form/validator/NumberRangeValidator.java
(rev 0)
+++
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/form/validator/NumberRangeValidator.java 2012-02-21
21:30:26 UTC (rev 8450)
@@ -0,0 +1,70 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2011, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.exoplatform.webui.form.validator;
+
+import java.io.Serializable;
+
+import org.exoplatform.web.application.CompoundApplicationMessage;
+
+/**
+ * @author <a href="mailto:mwringe@redhat.com">Matt Wringe</a>
+ * @version $Revision$
+ */
+public class NumberRangeValidator extends NumberFormatValidator
+{
+ private int min;
+ private int max;
+
+ public NumberRangeValidator(int min, int max)
+ {
+ this.min = min;
+ this.max = max;
+ }
+
+ @Override
+ protected String getMessageLocalizationKey()
+ {
+ return "NumberRangeValidator.msg.Invalid-number";
+ }
+
+ @Override
+ protected Integer validateInteger(String value, String label,
CompoundApplicationMessage messages)
+ {
+ Integer integer = super.validateInteger(value, label, messages);
+
+ if (integer == null)
+ {
+ return null;
+ }
+ else if (integer < min || integer > max)
+ {
+ messages.addMessage(getMessageLocalizationKey(), new Object[]{label, min,
max});
+ return null;
+ }
+ else
+ {
+ return integer;
+ }
+ }
+}
+
Property changes on:
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/form/validator/NumberRangeValidator.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/test/validator/TestWebuiValidator.java
===================================================================
---
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/test/validator/TestWebuiValidator.java 2012-02-21
21:23:23 UTC (rev 8449)
+++
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/test/validator/TestWebuiValidator.java 2012-02-21
21:30:26 UTC (rev 8450)
@@ -27,6 +27,7 @@
import org.exoplatform.webui.form.validator.IdentifierValidator;
import org.exoplatform.webui.form.validator.NameValidator;
import org.exoplatform.webui.form.validator.NumberFormatValidator;
+import org.exoplatform.webui.form.validator.NumberRangeValidator;
import org.exoplatform.webui.form.validator.PositiveNumberFormatValidator;
import org.exoplatform.webui.form.validator.ResourceValidator;
import org.exoplatform.webui.form.validator.SpecialCharacterValidator;
@@ -158,6 +159,21 @@
assertFalse(expected(validator, "-01"));
}
+ public void testNumberRangeValidator()
+ {
+ Validator validator = new NumberRangeValidator(-5, 5);
+ assertTrue(expected(validator, "-5"));
+ assertTrue(expected(validator, "-1"));
+ assertTrue(expected(validator, "0"));
+ assertTrue(expected(validator, "1"));
+ assertTrue(expected(validator, "5"));
+
+ assertFalse(expected(validator, "-10"));
+ assertFalse(expected(validator, "-6"));
+ assertFalse(expected(validator, "6"));
+ assertFalse(expected(validator, "10"));
+ }
+
public void testSpecialCharacterValidator()
{
Validator validator= new SpecialCharacterValidator();
Modified:
portal/trunk/webui/dashboard/src/main/java/org/exoplatform/dashboard/webui/component/UIDashboardEditForm.java
===================================================================
---
portal/trunk/webui/dashboard/src/main/java/org/exoplatform/dashboard/webui/component/UIDashboardEditForm.java 2012-02-21
21:23:23 UTC (rev 8449)
+++
portal/trunk/webui/dashboard/src/main/java/org/exoplatform/dashboard/webui/component/UIDashboardEditForm.java 2012-02-21
21:30:26 UTC (rev 8450)
@@ -91,7 +91,7 @@
catch (Exception e)
{
uiInput.setValue(lastValue);
- throw new MessageException(new
ApplicationMessage("NumberFormatValidator.msg.Invalid-number", args));
+ throw new MessageException(new
ApplicationMessage("NumberRangeValidator.msg.Invalid-number", args));
}
UIDashboardContainer uiDashboardContainer =