[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="&lt;rich:graphValidator&gt; usage" />
+	<ui:param name="javaBean" value="org/richfaces/example/GraphValidatorBean.java" />
+	<!-- Page header -->
+	<ui:define name="header">
+		<h1>&lt;rich:graphValidator&gt; 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