Author: konstantin.mishin
Date: 2010-12-29 12:25:47 -0500 (Wed, 29 Dec 2010)
New Revision: 20842
Added:
trunk/ui/input/ui/src/main/java/org/richfaces/component/UIInputNumber.java
Modified:
trunk/ui/input/ui/src/main/config/faces-config.xml
Log:
RF-9935
Modified: trunk/ui/input/ui/src/main/config/faces-config.xml
===================================================================
--- trunk/ui/input/ui/src/main/config/faces-config.xml 2010-12-29 16:46:42 UTC (rev
20841)
+++ trunk/ui/input/ui/src/main/config/faces-config.xml 2010-12-29 17:25:47 UTC (rev
20842)
@@ -236,7 +236,7 @@
</property>
<component-extension>
<cdk:generate>true</cdk:generate>
- <cdk:base-class>javax.faces.component.UIInput</cdk:base-class>
+ <cdk:base-class>org.richfaces.component.UIInputNumber</cdk:base-class>
<cdk:component-family>javax.faces.Input</cdk:component-family>
<cdk:renderer-type>org.richfaces.InputNumberSliderRenderer</cdk:renderer-type>
<cdk:tag>
@@ -534,7 +534,7 @@
</property>
<component-extension>
<cdk:generate>true</cdk:generate>
- <cdk:base-class>javax.faces.component.UIInput</cdk:base-class>
+ <cdk:base-class>org.richfaces.component.UIInputNumber</cdk:base-class>
<cdk:component-family>javax.faces.Input</cdk:component-family>
<cdk:renderer-type>org.richfaces.InputNumberSpinnerRenderer</cdk:renderer-type>
<cdk:tag>
Added: trunk/ui/input/ui/src/main/java/org/richfaces/component/UIInputNumber.java
===================================================================
--- trunk/ui/input/ui/src/main/java/org/richfaces/component/UIInputNumber.java
(rev 0)
+++ trunk/ui/input/ui/src/main/java/org/richfaces/component/UIInputNumber.java 2010-12-29
17:25:47 UTC (rev 20842)
@@ -0,0 +1,43 @@
+/**
+ *
+ */
+package org.richfaces.component;
+
+import java.util.Map;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.DoubleRangeValidator;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class UIInputNumber extends UIInput {
+
+ @Override
+ protected void validateValue(FacesContext context, Object newValue) {
+ Map<String, Object> attributes = getAttributes();
+ DoubleRangeValidator validator = new
DoubleRangeValidator(doubleValue(attributes.get("maxValue")),
+ doubleValue(attributes.get("minValue"))) {
+ @Override
+ public void validate(FacesContext context, UIComponent component, Object
value) throws ValidatorException {
+ super.validate(context, component,
UIInputNumber.this.getSubmittedValue());
+ }
+ };
+ addValidator(validator);
+ super.validateValue(context, newValue);
+ removeValidator(validator);
+ }
+
+ private static double doubleValue(Object value) {
+ if (value instanceof Number) {
+ return ((Number) value).doubleValue();
+ } else {
+ return Double.parseDouble(value.toString());
+ }
+ }
+
+}
Show replies by date