[richfaces-svn-commits] JBoss Rich Faces SVN: r12241 - in trunk: samples/beanValidatorSample and 5 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Mon Jan 12 19:23:40 EST 2009
Author: alexsmirnov
Date: 2009-01-12 19:23:40 -0500 (Mon, 12 Jan 2009)
New Revision: 12241
Added:
trunk/samples/beanValidatorSample/src/main/webapp/example/index.xhtml
trunk/samples/beanValidatorSample/src/main/webapp/pages/graphValidation.xhtml
trunk/samples/beanValidatorSample/src/main/webapp/src/org/richfaces/example/GraphValidatorBean.java
Removed:
trunk/samples/beanValidatorSample/src/main/webapp/pages/index.xhtml
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ClientScript.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSResource.java
trunk/samples/beanValidatorSample/pom.xml
trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/faces-config.xml
trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/web.xml
trunk/samples/beanValidatorSample/src/main/webapp/index.jsp
trunk/samples/beanValidatorSample/src/main/webapp/pages/ajaxValidation.xhtml
Log:
Fix validator example.
Alwais use factory method for a JavaScript renderer.
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ClientScript.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ClientScript.java 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ClientScript.java 2009-01-13 00:23:40 UTC (rev 12241)
@@ -53,8 +53,8 @@
*/
public ClientScript() {
super();
- setRenderer(new ScriptRenderer());
InternetResourceBuilder resourceBuilder = InternetResourceBuilder.getInstance();
+ setRenderer(resourceBuilder.getScriptRenderer());
String key = this.getClass().getName();
try {
// Search already registered resource for this class.
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java 2009-01-13 00:23:40 UTC (rev 12241)
@@ -76,10 +76,10 @@
private static final Pattern DATA_SEPARATOR_PATTERN = Pattern
.compile("/DAT(A|B)/");
- private static Map<String, ResourceRenderer> renderers;
- private static ResourceRenderer defaultRenderer = new MimeRenderer(null);
+ private static final ResourceRenderer defaultRenderer = new MimeRenderer(null);
+ private Map<String, ResourceRenderer> renderers;
/**
* keep resources instances . TODO - put this map to application-scope
* attribute, for support clastering environment.
@@ -95,21 +95,6 @@
private static final ResourceRenderer styleRenderer = new StyleRenderer();
static {
- renderers = new HashMap<String, ResourceRenderer>();
- // append known renderers for extentions.
- renderers.put(".gif", new GifRenderer());
- ResourceRenderer renderer = new JpegRenderer();
- renderers.put(".jpeg", renderer);
- renderers.put(".jpg", renderer);
- renderers.put(".png", new PngRenderer());
- renderers.put(".js", scriptRenderer);
- renderers.put(".css", styleRenderer);
- renderers.put(".log", new LogfileRenderer());
- renderers.put(".html", new HTMLRenderer());
- renderers.put(".xhtml", new MimeRenderer("application/xhtml+xml"));
- renderers.put(".xml", new MimeRenderer("text/xml"));
- renderers.put(".xcss", new TemplateCSSRenderer());
- renderers.put(".swf", new MimeRenderer("application/x-shockwave-flash"));
// renderers.put(".htc",new BehaviorRenderer());
// set in-memory caching ImageIO
ImageIO.setUseCache(false);
@@ -129,6 +114,21 @@
super();
_startTime = System.currentTimeMillis();
codec = new Codec();
+ renderers = new HashMap<String, ResourceRenderer>();
+ // append known renderers for extentions.
+ renderers.put(".gif", new GifRenderer());
+ ResourceRenderer renderer = new JpegRenderer();
+ renderers.put(".jpeg", renderer);
+ renderers.put(".jpg", renderer);
+ renderers.put(".png", new PngRenderer());
+ renderers.put(".js", getScriptRenderer());
+ renderers.put(".css", getStyleRenderer());
+ renderers.put(".log", new LogfileRenderer());
+ renderers.put(".html", new HTMLRenderer());
+ renderers.put(".xhtml", new MimeRenderer("application/xhtml+xml"));
+ renderers.put(".xml", new MimeRenderer("text/xml"));
+ renderers.put(".xcss", new TemplateCSSRenderer());
+ renderers.put(".swf", new MimeRenderer("application/x-shockwave-flash"));
}
/**
@@ -460,8 +460,7 @@
int lastPoint = path.lastIndexOf('.');
if (lastPoint > 0) {
String ext = path.substring(lastPoint);
- ResourceRenderer resourceRenderer = (ResourceRenderer) renderers
- .get(ext);
+ ResourceRenderer resourceRenderer = getRendererByExtension(ext);
if (null != resourceRenderer) {
res.setRenderer(resourceRenderer);
} else {
@@ -478,6 +477,15 @@
}
/**
+ * @param ext
+ * @return
+ */
+ protected ResourceRenderer getRendererByExtension(String ext) {
+ return renderers
+ .get(ext);
+ }
+
+ /**
* Create resurce to send from classpath relative to base class.
*
* @param base
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSResource.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSResource.java 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSResource.java 2009-01-13 00:23:40 UTC (rev 12241)
@@ -61,7 +61,8 @@
// remove leaded / - as need for ClassLoader.getResource call.
this.templateName = templateName.startsWith("/")?templateName.substring(1):templateName;
// Self-register resource in system.
- _resource = InternetResourceBuilder.getInstance().createResource(null,this.templateName);
+ InternetResourceBuilder resourceBuilder = InternetResourceBuilder.getInstance();
+ _resource = resourceBuilder.createResource(null,this.templateName);
_resource.setRenderer(templateCSSRenderer);
try {
// Attempt to compile template at init time. Due to client-side caching,
Modified: trunk/samples/beanValidatorSample/pom.xml
===================================================================
--- trunk/samples/beanValidatorSample/pom.xml 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/samples/beanValidatorSample/pom.xml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -12,7 +12,7 @@
<name>beanValidatorSample Maven Webapp</name>
<version>3.3.0-SNAPSHOT</version>
<build>
- <finalName>beanValidatorSample</finalName>
+ <finalName>richfaces-validator</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
Modified: trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/faces-config.xml 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/faces-config.xml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -37,4 +37,9 @@
<managed-bean-class>org.richfaces.TabNavigation</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
+ <managed-bean>
+ <managed-bean-name>graphValidatorBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.example.GraphValidatorBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
</faces-config>
Modified: trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/web.xml 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/samples/beanValidatorSample/src/main/webapp/WEB-INF/web.xml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -1,57 +1,60 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>Archetype Created Web Application</display-name>
- <context-param>
- <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
- <param-value>server</param-value>
- </context-param>
- <context-param>
- <param-name>org.ajax4jsf.SKIN</param-name>
- <param-value>classic</param-value>
- </context-param>
- <context-param>
- <param-name>org.richfaces.CONTROL_SKINNING</param-name>
- <param-value>enable</param-value>
- </context-param>
- <context-param>
- <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
- <param-value>com.sun.facelets.FaceletViewHandler</param-value>
- </context-param>
- <context-param>
- <param-name>facelets.VIEW_MAPPINGS</param-name>
- <param-value>*.xhtml</param-value>
- </context-param>
- <!--
- -->
- <filter>
- <display-name>Ajax4jsf Filter</display-name>
- <filter-name>ajax4jsf</filter-name>
- <filter-class>org.ajax4jsf.Filter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>ajax4jsf</filter-name>
- <servlet-name>Faces Servlet</servlet-name>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- <dispatcher>INCLUDE</dispatcher>
- <dispatcher>ERROR</dispatcher>
- </filter-mapping>
- <servlet>
- <servlet-name>Faces Servlet</servlet-name>
- <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>/faces/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>*.jsf</url-pattern>
- </servlet-mapping>
- <login-config>
- <auth-method>BASIC</auth-method>
- </login-config>
-</web-app>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+ <display-name>Archetype Created Web Application</display-name>
+ <context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.SKIN</param-name>
+ <param-value>classic</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING</param-name>
+ <param-value>enable</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
+ <param-value>com.sun.facelets.FaceletViewHandler</param-value>
+ </context-param>
+ <context-param>
+ <param-name>facelets.VIEW_MAPPINGS</param-name>
+ <param-value>*.xhtml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+ <!--
+ -->
+ <filter>
+ <display-name>Ajax4jsf Filter</display-name>
+ <filter-name>ajax4jsf</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>ajax4jsf</filter-name>
+ <servlet-name>Faces Servlet</servlet-name>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+ <dispatcher>ERROR</dispatcher>
+ </filter-mapping>
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>/faces/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>
Copied: trunk/samples/beanValidatorSample/src/main/webapp/example/index.xhtml (from rev 12158, trunk/samples/beanValidatorSample/src/main/webapp/pages/index.xhtml)
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/example/index.xhtml (rev 0)
+++ trunk/samples/beanValidatorSample/src/main/webapp/example/index.xhtml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:c="http://java.sun.com/jsp/jstl/core">
+<ui:composition template="/layout/template.xhtml">
+ <ui:param name="title" value="Hibernate validator test" />
+ <!-- Page header -->
+ <ui:define name="header">
+ <h1>Using Hibernate validator annotations in the JSF beans</h1>
+ </ui:define>
+ <!-- content -->
+ <ui:define name="content">
+ <h:form id="form">
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText>Single input field with label and message. Validated by AJAX on every char.</h:outputText>
+ </f:facet>
+ <h:panelGrid columns="3">
+ <h:outputLabel for="ltext" value="#{lengthBean.textDescription}" />
+ <h:inputText id="ltext" value="#{lengthBean.text}" label="3-letter text">
+ <rich:ajaxValidator event="onkeyup" summary="Invalid Id"/>
+ </h:inputText>
+ <rich:message for="ltext" showDetail="true" showSummary="true" />
+ <h:outputLabel for="mtext" value="#{minMaxBean.intDescription}" />
+ <h:inputText id="mtext" value="#{minMaxBean.intValue}" label="value">
+ <rich:ajaxValidator event="onkeyup" summary="Invalid value"/>
+ </h:inputText>
+ <rich:message for="mtext" showDetail="true" showSummary="true" />
+ </h:panelGrid>
+ <h:commandButton value="Submit"></h:commandButton>
+ </rich:panel>
+ <rich:messages id="fieldsMessages"/>
+ </h:form>
+ <h:form id="form1">
+ <h2>Input fields with label and message in the JSF dataTable.
+ Each field validated by AJAX on 'onblur' event</h2>
+ <rich:graphValidator value="#{data}">
+ <rich:dataTable value="#{data.beans}" var="bean" id="table">
+ <f:facet name="header">
+ <h:outputText
+ value="Validate values in the data table. Total sum for an all integer values validated for a value less then 20" />
+ </f:facet>
+
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="text field" />
+ </f:facet>
+ <h:outputLabel for="text" value="#{bean.textDescription}" />
+ <h:inputText id="text" value="#{bean.text}">
+ <rich:ajaxValidator event="onblur"
+ ajaxListener="#{data.ajaxListener}" summary="#{bean.textSummary}"/>
+ </h:inputText>
+ <rich:message for="text" showDetail="true" showSummary="true" />
+ </h:column>
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="integer field" />
+ </f:facet>
+ <h:outputLabel for="intValue" value="#{bean.intDescription}" />
+ <h:inputText id="intValue" value="#{bean.intValue}">
+ <rich:ajaxValidator event="onblur" summary="#{bean.intSummary}"/>
+ </h:inputText>
+ <rich:message for="intValue" showDetail="true" showSummary="true" />
+ </h:column>
+ <f:facet name="footer">
+ <h:panelGroup>
+ <h:outputText>in addition to fields validation, total sum for an all integer values validated for a value less then 20.</h:outputText>
+ <h:commandButton value="Submit all fields"></h:commandButton>
+ </h:panelGroup>
+ </f:facet>
+ </rich:dataTable>
+ </rich:graphValidator>
+ </h:form>
+ <h:form id="form2">
+ <h2>Input fields with label and message in the JSF dataTable.
+ Same as above, but fields validated by form submit only.</h2>
+
+ <rich:dataTable value="#{data.beans}" var="bean" id="table2">
+ <f:facet name="header">
+ <h:outputText
+ value="Validate values in the data table." />
+ </f:facet>
+
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="text field" />
+ </f:facet>
+ <h:outputLabel for="text" value="#{bean.textDescription}" />
+ <h:inputText id="text" value="#{bean.text}">
+ <rich:beanValidator summary="Invalid text"/>
+ </h:inputText>
+ <rich:message for="text" />
+ </h:column>
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="integer field" />
+ </f:facet>
+ <h:outputLabel for="intValue" value="#{bean.intDescription}" />
+ <h:inputText id="intValue" value="#{bean.intValue}">
+ <rich:beanValidator summary="Invalid number"/>
+ </h:inputText>
+ <rich:message for="intValue" />
+ </h:column>
+ <f:facet name="footer">
+ <h:panelGroup>
+ <h:outputText></h:outputText>
+ <h:commandButton value="Submit all fields"></h:commandButton>
+ </h:panelGroup>
+ </f:facet>
+ </rich:dataTable>
+
+ </h:form>
+ <rich:messages />
+ </ui:define>
+</ui:composition>
+</html>
Property changes on: trunk/samples/beanValidatorSample/src/main/webapp/example/index.xhtml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/samples/beanValidatorSample/src/main/webapp/index.jsp
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/index.jsp 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/samples/beanValidatorSample/src/main/webapp/index.jsp 2009-01-13 00:23:40 UTC (rev 12241)
@@ -5,7 +5,7 @@
<head></head>
<body>
- <jsp:forward page="/faces/pages/index.xhtml" />
+ <jsp:forward page="/pages/beanValidation.jsf" />
</body>
</html>
\ No newline at end of file
Modified: trunk/samples/beanValidatorSample/src/main/webapp/pages/ajaxValidation.xhtml
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/pages/ajaxValidation.xhtml 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/samples/beanValidatorSample/src/main/webapp/pages/ajaxValidation.xhtml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -18,11 +18,16 @@
<ui:define name="content">
<h:form id="form">
<h:panelGrid columns="3">
- <h:outputLabel for="text" value="Enter Id" />
- <h:inputText id="text" value="#{bean.text}" label="Id">
- <rich:ajaxValidator event="onkeyup" summary="Invalid Id"/>
+ <h:outputLabel for="email" value="Email Address:" />
+ <h:inputText id="email" value="#{bean.email}" label="Email">
+ <rich:ajaxValidator event="onkeyup" summary="Invalid Email address"/>
</h:inputText>
- <rich:message for="text" showDetail="true" showSummary="true" />
+ <rich:message for="email"/>
+ <h:outputLabel for="card" value="Credit card number:" />
+ <h:inputText id="card" value="#{bean.creditCardNumber}" label="Credit card">
+ <rich:ajaxValidator event="onkeyup" summary="Invalid credit card number"/>
+ </h:inputText>
+ <rich:message for="card"/>
</h:panelGrid>
<h:commandButton value="Submit"></h:commandButton>
<rich:messages/>
Added: trunk/samples/beanValidatorSample/src/main/webapp/pages/graphValidation.xhtml
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/pages/graphValidation.xhtml (rev 0)
+++ trunk/samples/beanValidatorSample/src/main/webapp/pages/graphValidation.xhtml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:c="http://java.sun.com/jsp/jstl/core">
+<ui:composition template="/layout/template.xhtml">
+ <ui:param name="title" value="<rich:graphValidator> usage" />
+ <ui:param name="javaBean" value="org/richfaces/example/GraphValidatorBean.java" />
+ <!-- Page header -->
+ <ui:define name="header">
+ <h1><rich:graphValidator> usage</h1>
+ </ui:define>
+ <!-- content -->
+ <ui:define name="content">
+ <h:form id="form">
+ <rich:graphValidator value="#{graphValidatorBean}" id="validator">
+ <h:panelGrid columns="3">
+ <h:outputLabel for="value0" value="First value:" />
+ <h:inputText id="value0" value="#{graphValidatorBean.first}" label="First" />
+ <rich:message for="value0"/>
+ <h:outputLabel for="value1" value="Second value:" />
+ <h:inputText id="value1" value="#{graphValidatorBean.second}" label="First" />
+ <rich:message for="value1"/>
+ <h:outputLabel for="value2" value="Third value:" />
+ <h:inputText id="value2" value="#{graphValidatorBean.third}" label="First" />
+ <rich:message for="value2"/>
+ <h:outputLabel for="total" value="Total:" />
+ <h:outputText id="total" value="#{graphValidatorBean.summ}"/>
+ </h:panelGrid>
+ <h:commandButton value="Submit" action="#{graphValidatorBean.action}"></h:commandButton>
+ <h:outputText id="result" value="#{graphValidatorBean.actionResult}"/>
+ </rich:graphValidator>
+ <rich:messages/>
+ </h:form>
+ </ui:define>
+</ui:composition>
+</html>
\ No newline at end of file
Property changes on: trunk/samples/beanValidatorSample/src/main/webapp/pages/graphValidation.xhtml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: trunk/samples/beanValidatorSample/src/main/webapp/pages/index.xhtml
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/pages/index.xhtml 2009-01-12 23:10:59 UTC (rev 12240)
+++ trunk/samples/beanValidatorSample/src/main/webapp/pages/index.xhtml 2009-01-13 00:23:40 UTC (rev 12241)
@@ -1,121 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:a4j="http://richfaces.org/a4j"
- xmlns:rich="http://richfaces.org/rich"
- xmlns:s="http://jboss.com/products/seam/taglib"
- xmlns:c="http://java.sun.com/jsp/jstl/core">
-<ui:composition template="/layout/template.xhtml">
- <ui:param name="title" value="Hibernate validator test" />
- <!-- Page header -->
- <ui:define name="header">
- <h1>Using Hibernate validator annotations in the JSF beans</h1>
- </ui:define>
- <!-- content -->
- <ui:define name="content">
- <h:form id="form">
- <rich:panel>
- <f:facet name="header">
- <h:outputText>Single input field with label and message. Validated by AJAX on every char.</h:outputText>
- </f:facet>
- <h:panelGrid columns="3">
- <h:outputLabel for="ltext" value="#{lengthBean.textDescription}" />
- <h:inputText id="ltext" value="#{lengthBean.text}" label="3-letter text">
- <rich:ajaxValidator event="onkeyup" summary="Invalid Id"/>
- </h:inputText>
- <rich:message for="ltext" showDetail="true" showSummary="true" />
- <h:outputLabel for="mtext" value="#{minMaxBean.intDescription}" />
- <h:inputText id="mtext" value="#{minMaxBean.intValue}" label="value">
- <rich:ajaxValidator event="onkeyup" summary="Invalid value"/>
- </h:inputText>
- <rich:message for="mtext" showDetail="true" showSummary="true" />
- </h:panelGrid>
- <h:commandButton value="Submit"></h:commandButton>
- </rich:panel>
- <rich:messages id="fieldsMessages"/>
- </h:form>
- <h:form id="form1">
- <h2>Input fields with label and message in the JSF dataTable.
- Each field validated by AJAX on 'onblur' event</h2>
- <rich:graphValidator value="#{data}">
- <rich:dataTable value="#{data.beans}" var="bean" id="table">
- <f:facet name="header">
- <h:outputText
- value="Validate values in the data table. Total sum for an all integer values validated for a value less then 20" />
- </f:facet>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="text field" />
- </f:facet>
- <h:outputLabel for="text" value="#{bean.textDescription}" />
- <h:inputText id="text" value="#{bean.text}">
- <rich:ajaxValidator event="onblur"
- ajaxListener="#{data.ajaxListener}" summary="#{bean.textSummary}"/>
- </h:inputText>
- <rich:message for="text" showDetail="true" showSummary="true" />
- </h:column>
- <h:column>
- <f:facet name="header">
- <h:outputText value="integer field" />
- </f:facet>
- <h:outputLabel for="intValue" value="#{bean.intDescription}" />
- <h:inputText id="intValue" value="#{bean.intValue}">
- <rich:ajaxValidator event="onblur" summary="#{bean.intSummary}"/>
- </h:inputText>
- <rich:message for="intValue" showDetail="true" showSummary="true" />
- </h:column>
- <f:facet name="footer">
- <h:panelGroup>
- <h:outputText>in addition to fields validation, total sum for an all integer values validated for a value less then 20.</h:outputText>
- <h:commandButton value="Submit all fields"></h:commandButton>
- </h:panelGroup>
- </f:facet>
- </rich:dataTable>
- </rich:graphValidator>
- </h:form>
- <h:form id="form2">
- <h2>Input fields with label and message in the JSF dataTable.
- Same as above, but fields validated by form submit only.</h2>
-
- <rich:dataTable value="#{data.beans}" var="bean" id="table2">
- <f:facet name="header">
- <h:outputText
- value="Validate values in the data table." />
- </f:facet>
-
- <h:column>
- <f:facet name="header">
- <h:outputText value="text field" />
- </f:facet>
- <h:outputLabel for="text" value="#{bean.textDescription}" />
- <h:inputText id="text" value="#{bean.text}">
- <rich:beanValidator summary="Invalid text"/>
- </h:inputText>
- <rich:message for="text" />
- </h:column>
- <h:column>
- <f:facet name="header">
- <h:outputText value="integer field" />
- </f:facet>
- <h:outputLabel for="intValue" value="#{bean.intDescription}" />
- <h:inputText id="intValue" value="#{bean.intValue}">
- <rich:beanValidator summary="Invalid number"/>
- </h:inputText>
- <rich:message for="intValue" />
- </h:column>
- <f:facet name="footer">
- <h:panelGroup>
- <h:outputText></h:outputText>
- <h:commandButton value="Submit all fields"></h:commandButton>
- </h:panelGroup>
- </f:facet>
- </rich:dataTable>
-
- </h:form>
- <rich:messages />
- </ui:define>
-</ui:composition>
-</html>
Added: trunk/samples/beanValidatorSample/src/main/webapp/src/org/richfaces/example/GraphValidatorBean.java
===================================================================
--- trunk/samples/beanValidatorSample/src/main/webapp/src/org/richfaces/example/GraphValidatorBean.java (rev 0)
+++ trunk/samples/beanValidatorSample/src/main/webapp/src/org/richfaces/example/GraphValidatorBean.java 2009-01-13 00:23:40 UTC (rev 12241)
@@ -0,0 +1,97 @@
+/**
+ *
+ */
+package org.richfaces.example;
+
+import org.hibernate.validator.Max;
+import org.hibernate.validator.Min;
+
+/**
+ * @author asmirnov
+ *
+ */
+public class GraphValidatorBean {
+
+ @Min(0)
+ @Max(10)
+ private int first ;
+
+ @Min(0)
+ @Max(10)
+ private int second ;
+ @Min(0)
+ @Max(10)
+ private int third ;
+
+ private String actionResult;
+
+ /**
+ * @return the actionResult
+ */
+ public String getActionResult() {
+ return actionResult;
+ }
+
+ /**
+ * @param actionResult the actionResult to set
+ */
+ public void setActionResult(String actionResult) {
+ this.actionResult = actionResult;
+ }
+
+ /**
+ * @return the first
+ */
+ public int getFirst() {
+ return first;
+ }
+
+ /**
+ * @param first the first to set
+ */
+ public void setFirst(int first) {
+ this.first = first;
+ }
+
+ /**
+ * @return the second
+ */
+ public int getSecond() {
+ return second;
+ }
+
+ /**
+ * @param second the second to set
+ */
+ public void setSecond(int second) {
+ this.second = second;
+ }
+
+ /**
+ * @return the third
+ */
+ public int getThird() {
+ return third;
+ }
+
+ /**
+ * @param third the third to set
+ */
+ public void setThird(int third) {
+ this.third = third;
+ }
+
+ /**
+ * @return total summ of the list values.
+ */
+ @Max(value=20,message="Total value should be less then 20")
+ public int getSumm(){
+ return first+second+third;
+ }
+
+ public String action() {
+ // Persist your data here
+ setActionResult("Data have been saved");
+ return "ok";
+ }
+}
Property changes on: trunk/samples/beanValidatorSample/src/main/webapp/src/org/richfaces/example/GraphValidatorBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the richfaces-svn-commits
mailing list