You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/05/30 13:32:19 UTC

svn commit: r410241 - in /cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms: binding/ event/ expression/ formmodel/ formmodel/tree/ formmodel/tree/builder/ generation/ samples/ util/ validation/impl/

Author: cziegeler
Date: Tue May 30 04:32:17 2006
New Revision: 410241

URL: http://svn.apache.org/viewvc?rev=410241&view=rev
Log:
Add support for load/save model phase events
Cleanup some code and javadocs
Add missing svn properties to some files

Modified:
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/RepeaterJXPathBinding.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ImageMapEvent.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterEvent.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterEventAction.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java   (contents, props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/ExpressionManager.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java   (contents, props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldAlgorithm.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldAlgorithmBuilder.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinition.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java   (props changed)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Form.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Repeater.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreePath.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeSelectionEvent.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeWalker.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/builder/TreeModelDefinitionBuilder.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/samples/CustomBirthDateValidator.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/DomHelper.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/FOM_SimpleCocoon.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/RepeaterAsList.java
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/CaptchaValidator.java

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java Tue May 30 04:32:17 2006
@@ -16,6 +16,7 @@
 package org.apache.cocoon.forms.binding;
 
 import org.apache.cocoon.forms.binding.library.Library;
+import org.apache.cocoon.forms.formmodel.Form;
 import org.apache.cocoon.forms.formmodel.Widget;
 import org.apache.commons.jxpath.JXPathContext;
 
@@ -76,11 +77,17 @@
      * @throws BindingException
      */
     public final void loadFormFromModel(Widget frmModel, Object objModel) throws BindingException {
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informStartLoadingModel();
+        }
         try {
             doLoad(frmModel, (JXPathContext)objModel);
         } catch (Exception e) {
             throw new BindingException("Error executing custom binding", e);
         }
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informEndLoadingModel();
+        }
     }
 
     /**
@@ -93,10 +100,16 @@
      * @throws BindingException
      */
     public final void saveFormToModel(Widget frmModel, Object objModel) throws BindingException {
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informStartSavingModel();
+        }
         try {
             doSave(frmModel, (JXPathContext)objModel);
         } catch (Exception e) {
             throw new BindingException("Error executing custom binding", e);
+        }
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informEndSavingModel();
         }
     }
 

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java Tue May 30 04:32:17 2006
@@ -1,12 +1,12 @@
 /*
  * Copyright 1999-2004 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.
@@ -19,9 +19,9 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.avalon.framework.logger.LogEnabled;
-import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.cocoon.forms.binding.library.Library;
+import org.apache.cocoon.forms.formmodel.Form;
 import org.apache.cocoon.forms.formmodel.Widget;
 import org.apache.cocoon.util.jxpath.DOMFactory;
 import org.apache.commons.jxpath.JXPathContext;
@@ -38,17 +38,14 @@
  *
  * @version $Id$
  */
-public abstract class JXPathBindingBase implements Binding, LogEnabled {
+public abstract class JXPathBindingBase
+    extends AbstractLogEnabled
+    implements Binding {
 
     /**
-     * Avalon Logger to use in all subclasses.
-     */
-    private Logger logger;
-    
-    /**
      * the local library, if this is the top binding
      */
-    private Library enclosingLibrary = null;
+    private Library enclosingLibrary;
     
     /**
      * Object holding the values of the common objects on all Bindings.
@@ -94,7 +91,7 @@
     		try {
     			return !this.enclosingLibrary.dependenciesHaveChanged();
     		} catch(Exception e) {
-    			logger.error("Error checking dependencies!",e);
+    			getLogger().error("Error checking dependencies!",e);
     			throw new NestableRuntimeException("Error checking dependencies!",e);
     		}
     	}
@@ -203,7 +200,7 @@
      * depending on the configured value of the "direction" attribute.
      */
     public final void loadFormFromModel(Widget frmModel, JXPathContext jxpc)
-            throws BindingException {
+    throws BindingException {
         boolean inheritedLeniency = jxpc.isLenient();
         applyLeniency(jxpc);
         applyNSDeclarations(jxpc);
@@ -217,9 +214,14 @@
      * Hooks up with the more generic Binding of any objectModel by wrapping
      * it up in a JXPathContext object and then transfering control over to
      * the new overloaded version of this method.
+     *
+     * @see org.apache.cocoon.forms.binding.Binding#loadFormFromModel(org.apache.cocoon.forms.formmodel.Widget, java.lang.Object)
      */
     public final void loadFormFromModel(Widget frmModel, Object objModel)
-            throws BindingException {
+    throws BindingException {
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informStartLoadingModel();
+        }
         if (objModel != null) {
             JXPathContext jxpc = makeJXPathContext(objModel);
             loadFormFromModel(frmModel, jxpc);
@@ -227,6 +229,9 @@
             throw new NullPointerException(
                     "null object passed to loadFormFromModel() method");
         }
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informEndLoadingModel();
+        }
     }
 
     /**
@@ -257,9 +262,14 @@
      * Hooks up with the more generic Binding of any objectModel by wrapping
      * it up in a JXPathContext object and then transfering control over to
      * the new overloaded version of this method.
+     *
+     * @see org.apache.cocoon.forms.binding.Binding#saveFormToModel(org.apache.cocoon.forms.formmodel.Widget, java.lang.Object)
      */
     public void saveFormToModel(Widget frmModel, Object objModel)
                 throws BindingException {
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informStartSavingModel();
+        }
         if (objModel != null) {
             JXPathContext jxpc = makeJXPathContext(objModel);
             saveFormToModel(frmModel, jxpc);    
@@ -267,6 +277,9 @@
             throw new NullPointerException(
                     "null object passed to saveFormToModel() method");
         }
+        if ( frmModel instanceof Form ) {
+            ((Form)frmModel).informEndSavingModel();
+        }
     }
 
     private void applyLeniency(JXPathContext jxpc) {
@@ -307,19 +320,6 @@
         return jxpc;
     }
 
-    /**
-     * Receives the Avalon logger to use.
-     * Subclasses should always start with <code>super.enableLogging(logger)
-     * </code> in possible overriding versions.
-     */
-    public void enableLogging(Logger logger) {
-        this.logger = logger;
-    }
-
-    protected Logger getLogger() {
-        return logger;
-    }
-    
     /**
      * JXPath factory that combines the DOMFactory and support for collections.
      */

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/RepeaterJXPathBinding.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/RepeaterJXPathBinding.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/RepeaterJXPathBinding.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/binding/RepeaterJXPathBinding.java Tue May 30 04:32:17 2006
@@ -292,7 +292,6 @@
     /**
      * Tests if any of the elements in a List is not null.
      * @param list
-     * @return
      */
     private boolean hasNonNullElements(List list) {
         Iterator iter = list.iterator();

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/ImageMapEvent.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterEvent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterEvent.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterEventAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterEventAction.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java Tue May 30 04:32:17 2006
@@ -16,7 +16,7 @@
 package org.apache.cocoon.forms.event;
 
 /**
- * Listeners for {@link ListenerEvent}s
+ * Listeners for {@link RepeaterEvent}s
  * 
  * @version $Id$
  */

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/event/RepeaterListener.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/ExpressionManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/ExpressionManager.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/ExpressionManager.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/expression/ExpressionManager.java Tue May 30 04:32:17 2006
@@ -44,7 +44,8 @@
     /**
      * Parse the given expression to extract variables.
      * @param expressionString The string containing the expression to parse.
-     * @return A {@link List} of {@link org.outerj.expression.VariableFunction}, one for each variable used in the expression. {@see org.outerj.expression.VariableFunction#getVariableName()}.
+     * @return A {@link List} of {@link org.outerj.expression.VariableFunction}, one for each variable used in the expression.
+     * @see org.outerj.expression.VariableFunction#getVariableName()
      * @throws ParseException If something goes wrong while parsing.
      * @throws ExpressionException If the expression has been parsed successfully but is invalid.
      */

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java Tue May 30 04:32:17 2006
@@ -46,14 +46,14 @@
  */
 public class CalculatedField extends Field {
 
-    private CalculatedFieldDefinition definition = null;
+//    private CalculatedFieldDefinition definition;
     private CalculatedFieldAlgorithm algorithm = null;
         
     private WidgetFinder finder = null;
     private RecalculateValueListener mockListener = new RecalculateValueListener();
     
     private boolean needRecaulculate = false;
-    private boolean initialized = false;
+//    private boolean initialized = false;
     private boolean calculating = false;
 
     
@@ -63,7 +63,7 @@
     protected CalculatedField(CalculatedFieldDefinition definition) {
         super(definition);
         
-        this.definition = definition;
+//        this.definition = definition;
         this.algorithm = definition.getAlgorithm();
     }
     
@@ -74,7 +74,7 @@
         this.finder.addRepeaterListener(new InstallHandlersListener());
         installHandlers();
         
-        this.initialized = true;
+//        this.initialized = true;
     }
     
     /**

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedField.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldAlgorithm.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldAlgorithm.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldAlgorithmBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldAlgorithmBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinition.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CalculatedFieldDefinitionBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaDefinitionBuilder.java Tue May 30 04:32:17 2006
@@ -25,7 +25,7 @@
 /**
  * Builds {@link CaptchaFieldDefinition}s.
  *
- * @see http://www.captcha.net/
+ * @see <a href="http://www.captcha.net">www.captcha.net</a>
  * @version $Id$
  */
 public class CaptchaDefinitionBuilder extends AbstractDatatypeWidgetDefinitionBuilder implements Contextualizable, ThreadSafe {

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/CaptchaFieldDefinition.java Tue May 30 04:32:17 2006
@@ -20,7 +20,7 @@
 /**
  * A {@link FieldDefinition} for {@link CaptchaField}s.
  * 
- * @see http://www.captcha.net/
+ * @see <a href="http://www.captcha.net">www.captcha.net</a>
  * @version $Id$
  */
 public class CaptchaFieldDefinition extends FieldDefinition {

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Form.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Form.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Form.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Form.java Tue May 30 04:32:17 2006
@@ -179,6 +179,53 @@
     }
 
     /**
+     * Inform the form that the values will be loaded.
+     */
+    public void informStartLoadingModel() {
+        if (this.phase != ProcessingPhase.LOAD_MODEL) {
+            throw new IllegalStateException("Cannot load form in phase " + this.phase);
+        }
+    }
+
+    /**
+     * Inform the form that the values are loaded.
+     */
+    public void informEndLoadingModel() {
+        // Notify the end of the current phase
+        if (this.listener != null) {
+            this.listener.phaseEnded(new ProcessingPhaseEvent(this, this.phase));
+        }
+        // TODO - Should we change the phase?
+    }
+
+    /**
+     * Inform the form that the values will be saved.
+     */
+    public void informStartSavingModel() {
+        if (this.phase != ProcessingPhase.VALIDATE) {
+            throw new IllegalStateException("Cannot save model in phase " + this.phase);
+        }
+        if (!isValid()) {
+            throw new IllegalStateException("Cannot save an invalid form.");
+        }
+        this.phase = ProcessingPhase.SAVE_MODEL;
+    }
+
+    /**
+     * Inform the form that the values are saved.
+     */
+    public void informEndSavingModel() {
+        if (this.phase != ProcessingPhase.SAVE_MODEL) {
+            throw new IllegalStateException("Cannot save model in phase " + this.phase);
+        }
+        // Notify the end of the current phase
+        if (this.listener != null) {
+            this.listener.phaseEnded(new ProcessingPhaseEvent(this, this.phase));
+        }
+        // TODO - Should we change the phase?
+    }
+
+    /**
      * Get the locale to be used to process this form.
      *
      * @return the form's locale.
@@ -234,27 +281,6 @@
     public void setFormHandler(FormHandler formHandler) {
         this.formHandler = formHandler;
     }
-
-// TODO: going through the form for load and save ensures state consistency. To we add this or
-// keep the binding strictly separate ?
-//    public void load(Object data, Binding binding) {
-//        if (this.phase != ProcessingPhase.LOAD_MODEL) {
-//            throw new IllegalStateException("Cannot load form in phase " + this.phase);
-//        }
-//        binding.loadFormFromModel(this, data);
-//    }
-//
-//    public void save(Object data, Binding binding) throws BindingException {
-//        if (this.phase != ProcessingPhase.VALIDATE) {
-//            throw new IllegalStateException("Cannot save model in phase " + this.phase);
-//        }
-//
-//        if (!isValid()) {
-//            throw new IllegalStateException("Cannot save an invalid form.");
-//        }
-//        this.phase = ProcessingPhase.SAVE_MODEL;
-//        binding.saveFormToModel(this, data);
-//    }
 
     public void addProcessingPhaseListener(ProcessingPhaseListener listener) {
         this.listener = WidgetEventMulticaster.add(this.listener, listener);

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Repeater.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Repeater.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Repeater.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/Repeater.java Tue May 30 04:32:17 2006
@@ -277,7 +277,7 @@
     }
 
     /**
-     * @deprecated {@see #clear()}
+     * @deprecated See {@link #clear()}
      *
      */
     public void removeRows() {

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreePath.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreePath.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreePath.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreePath.java Tue May 30 04:32:17 2006
@@ -79,7 +79,7 @@
      * TreePath. The first element (index 0) is the root.
      * 
      * @return an array of Objects representing the TreePath
-     * @see #TreePath(Object[])
+     * @see #TreePath()
      */
     public Object[] getObjectPath(TreeModel model) {
         int i = getPathCount();
@@ -96,7 +96,7 @@
      * DefaultTreeModel this will return an instance of TreeNode.
      * 
      * @return the Object at the end of the path
-     * @see #TreePath(Object[])
+     * @see #TreePath()
      */
     public Object getLastPathObject(TreeModel model) {
         Object parent;

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeSelectionEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeSelectionEvent.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeSelectionEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeSelectionEvent.java Tue May 30 04:32:17 2006
@@ -63,8 +63,6 @@
     
     /**
      * Is the first path a new addition to the selection?
-     * 
-     * @return
      */
     public boolean isAddedPath() {
         return this.isNew[0];

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeWalker.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeWalker.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeWalker.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/TreeWalker.java Tue May 30 04:32:17 2006
@@ -122,7 +122,7 @@
     
     /**
      * Get the current depth of this walker (can be used e.g. to compute indentation margins
-     * or CSS styles). If root node is visible (see {@link Tree#isRootVisible()), depth 0 is
+     * or CSS styles). If root node is visible (see {@link Tree#isRootVisible()}), depth 0 is
      * for the root. Otherwise, children of the root node are at depth 0.
      * 
      * @return the current depth

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/builder/TreeModelDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/builder/TreeModelDefinitionBuilder.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/builder/TreeModelDefinitionBuilder.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/formmodel/tree/builder/TreeModelDefinitionBuilder.java Tue May 30 04:32:17 2006
@@ -15,6 +15,7 @@
  */
 package org.apache.cocoon.forms.formmodel.tree.builder;
 
+import org.apache.cocoon.forms.formmodel.tree.TreeModel;
 import org.apache.cocoon.forms.formmodel.tree.TreeModelDefinition;
 import org.w3c.dom.Element;
 
@@ -25,7 +26,7 @@
  */
 public interface TreeModelDefinitionBuilder {
     
-    static final String ROLE = TreeModelDefinitionBuilder.class.getName();
+    String ROLE = TreeModelDefinitionBuilder.class.getName();
 
     TreeModelDefinition build(Element treeModelElement) throws Exception;
 }

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java Tue May 30 04:32:17 2006
@@ -277,7 +277,7 @@
      * Get a child widget of a given widget, throwing an exception if no such child exists.
      *
      * @param currentWidget
-     * @param id
+     * @param path
      */
     public Widget getWidget(Widget currentWidget, String path) {
         Widget result = currentWidget.lookupWidget(path);
@@ -301,7 +301,7 @@
      * event so that the template can insert styling information in it.
      *
      * @param widget
-     * @param locale
+     * @param arguments
      * @throws SAXException
      */
     public void generateWidget(Widget widget, Map arguments) throws SAXException {
@@ -313,9 +313,8 @@
 
     /**
      * Flush the root element name that has been stored in
-     * {@link #generateWidget(Widget, Locale)}.
+     * {@link #generateWidget(Widget, Map)}.
      *
-     * @param obj the object that is terminated (widget or validation error)
      * @throws SAXException
      */
     public void flushRootAndPop() throws SAXException {

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/samples/CustomBirthDateValidator.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/samples/CustomBirthDateValidator.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/samples/CustomBirthDateValidator.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/samples/CustomBirthDateValidator.java Tue May 30 04:32:17 2006
@@ -18,11 +18,7 @@
 import java.util.Date;
 import java.util.GregorianCalendar;
 
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.logger.LogEnabled;
-import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.cocoon.forms.formmodel.Widget;
 import org.apache.cocoon.forms.validation.ValidationError;
 import org.apache.cocoon.forms.validation.ValidationErrorAware;
@@ -32,15 +28,18 @@
  * Example of a custom validator.  Check that the given date is a valid birth date, i.e. 
  * is at least 5 years before current date and no more than 100 years old.
  */
-public class CustomBirthDateValidator implements WidgetValidator, LogEnabled, Contextualizable {
+public class CustomBirthDateValidator
+    extends AbstractLogEnabled
+    implements WidgetValidator {
 
-    private Logger logger = null;
-    private Context context = null;
-    
-    
+    /**
+     * @see org.apache.cocoon.forms.validation.WidgetValidator#validate(org.apache.cocoon.forms.formmodel.Widget)
+     */
     public boolean validate(Widget widget) {
         Date birthDate = (Date) widget.getValue();
-        if (logger.isDebugEnabled()) logger.debug("Validating date " + birthDate);
+        if (getLogger().isDebugEnabled()) {
+            getLogger().debug("Validating date " + birthDate);
+        }
         GregorianCalendar cal = new GregorianCalendar();
         cal.add(GregorianCalendar.YEAR, -5);
         Date maxDate = cal.getTime();
@@ -54,13 +53,4 @@
         }
         return true;
     }
-
-    public void enableLogging(Logger logger) {
-        this.logger = logger;
-    }
-
-    public void contextualize(Context context) throws ContextException {
-        this.context = context;
-    }
-
 }

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/DomHelper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/DomHelper.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/DomHelper.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/DomHelper.java Tue May 30 04:32:17 2006
@@ -70,7 +70,7 @@
     /**
      * Retrieves the location of an element node in the source file from which
      * the Document was created. This will only work for Document's created
-     * with the method {@link #parse(InputSource)} of this class.
+     * with the method {@link #parse(InputSource, ServiceManager)} of this class.
      */
     public static String getLocation(Element element) {
         return LocationAttributes.getLocationString(element);

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/FOM_SimpleCocoon.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/FOM_SimpleCocoon.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/FOM_SimpleCocoon.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/FOM_SimpleCocoon.java Tue May 30 04:32:17 2006
@@ -37,12 +37,12 @@
         return "FOM_SimpleCocoon";
     }
 
-    private FOM_Cocoon.FOM_Request request = null;
-    private FOM_Cocoon.FOM_Context context = null;
-    private FOM_Cocoon.FOM_Session session = null;
+    private FOM_Cocoon.FOM_Request request;
+    private FOM_Cocoon.FOM_Context context;
+    private FOM_Cocoon.FOM_Session session;
     
     private Scriptable response;
-    private Scriptable parameters;
+    //private Scriptable parameters;
     
     
     public Scriptable jsGet_request() {

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/RepeaterAsList.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/RepeaterAsList.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/RepeaterAsList.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/util/RepeaterAsList.java Tue May 30 04:32:17 2006
@@ -18,6 +18,7 @@
 import java.util.AbstractList;
 import java.util.Map;
 
+import org.apache.cocoon.forms.formmodel.AbstractContainerWidget;
 import org.apache.cocoon.forms.formmodel.Repeater;
 import org.apache.cocoon.forms.formmodel.Widget;
 

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/CaptchaValidator.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/CaptchaValidator.java?rev=410241&r1=410240&r2=410241&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/CaptchaValidator.java (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/java/org/apache/cocoon/forms/validation/impl/CaptchaValidator.java Tue May 30 04:32:17 2006
@@ -25,7 +25,7 @@
  * A {@link org.apache.cocoon.forms.validation.WidgetValidator} that relies on a CAPTCHA
  * test.
  * 
- * @see http://www.captcha.net/
+ * @see <a href="http://www.captcha.net">www.captcha.net</a>
  * @version $Id$
  */
 public class CaptchaValidator implements WidgetValidator {