Author: drobiazko
Date: Thu Oct 22 20:34:06 2009
New Revision: 828840

URL: http://svn.apache.org/viewvc?rev=828840&view=rev
Log:
TAP5-895: Tracking issue for Tapestry/JSR-303 integration

Added:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java
   (with props)
Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
    
tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanEditForm.tml

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java?rev=828840&r1=828839&r2=828840&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
 Thu Oct 22 20:34:06 2009
@@ -158,6 +158,14 @@
      */
     @Parameter
     private String validationId;
+    
+    /**
+     * Object to validate during the form submission process. The value of 
this parameter is pushed as a 
+     * {...@link org.apache.tapestry5.services.BeanValidationContext} into the 
environment. This parameter should
+     * only be used in combination with the Bean Validation Library.
+     */
+    @Parameter
+    private Object validate;
 
     @Inject
     private Logger logger;
@@ -215,6 +223,11 @@
     {
         return resources.getId();
     }
+    
+    Object defaultValidate()
+    {
+        return resources.getContainer();
+    }
 
     public ValidationTracker getDefaultTracker()
     {
@@ -355,6 +368,12 @@
 
         environment.push(ValidationTracker.class, tracker);
         environment.push(FormSupport.class, formSupport);
+        environment.push(BeanValidationContext.class, new 
BeanValidationContext(){
+
+            public Object getObject()
+            {
+                return validate;
+            }});
 
         Heartbeat heartbeat = new HeartbeatImpl();
 
@@ -416,6 +435,8 @@
             // stored back into the session.
 
             tracker = environment.pop(ValidationTracker.class);
+            
+            environment.pop(BeanValidationContext.class);
         }
     }
 

Added: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java?rev=828840&view=auto
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java
 (added)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java
 Thu Oct 22 20:34:06 2009
@@ -0,0 +1,27 @@
+// Copyright 2009 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package org.apache.tapestry5.services;
+
+/**
+ * Defines a context for validating beans.
+ * 
+ * @since 5.2.0.0
+ */
+public interface BeanValidationContext
+{
+    /**
+     * Return the object to validate.
+     */
+    Object getObject();
+}

Propchange: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/BeanValidationContext.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanEditForm.tml
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanEditForm.tml?rev=828840&r1=828839&r2=828840&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanEditForm.tml
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanEditForm.tml
 Thu Oct 22 20:34:06 2009
@@ -1,4 +1,4 @@
-<form t:id="form"
+<form t:id="form" validate="object"
       xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
     <t:errors/>
 


Reply via email to