You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2007/02/20 00:08:48 UTC

svn commit: r509372 - in /tapestry/tapestry5/tapestry-core/trunk/src: main/java/org/apache/tapestry/annotations/ main/java/org/apache/tapestry/corelib/components/ main/java/org/apache/tapestry/corelib/mixins/ main/java/org/apache/tapestry/internal/stru...

Author: hlship
Date: Mon Feb 19 15:08:46 2007
New Revision: 509372

URL: http://svn.apache.org/viewvc?view=rev&rev=509372
Log:
Unify the render phase method return values, so that "true" is always the default, and represents the normal progression.

Modified:
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRender.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderBody.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderTemplate.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/CleanupRender.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Select.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java
    tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt
    tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt
    tapestry/tapestry5/tapestry-core/trunk/src/site/apt/index.apt
    tapestry/tapestry5/tapestry-core/trunk/src/site/images/component-render-states.graffle
    tapestry/tapestry5/tapestry-core/trunk/src/site/resources/images/component-render-states.png
    tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/corelib/components/LoopTest.java
    tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRender.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRender.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRender.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRender.java Mon Feb 19 15:08:46 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 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.
@@ -24,8 +24,8 @@
 /**
  * Marker annotation for methods associated with the AfterRender phase. This corresponds closely to
  * {@link org.apache.tapestry.annotations.BeginRender}, but occurs after the template and body of
- * the component have been rendered. Often, this is used to render a close tag. Return void or false
- * to advance to the {@link org.apache.tapestry.annotations.CleanupRender} phase. Return true to
+ * the component have been rendered. Often, this is used to render a close tag. Return void or true (the default)
+ * to advance to the {@link org.apache.tapestry.annotations.CleanupRender} phase. Return false to
  * return to the {@link org.apache.tapestry.annotations.BeginRender} phase.
  */
 @Target(ElementType.METHOD)

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderBody.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderBody.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderBody.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderBody.java Mon Feb 19 15:08:46 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 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.
@@ -23,9 +23,9 @@
 
 /**
  * Corresponds to {@link BeforeRenderBody}, allowing additional markup after rendering the body of
- * a component, but before rendering the rest of the component's template. Return false (the
+ * a component, but before rendering the rest of the component's template. Return true (the
  * default) to progress to the {@link AfterRenderTemplate} or {@link AfterRender} phase (depending
- * on whether the component does or does not have a template). Return true to return to the
+ * on whether the component does or does not have a template). Return false to return to the
  * {@link BeforeRenderBody} phase.
  */
 @Target(ElementType.METHOD)

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderTemplate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderTemplate.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderTemplate.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/AfterRenderTemplate.java Mon Feb 19 15:08:46 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 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.
@@ -12,23 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.annotations;
-
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Corresponds to {@link BeforeRenderTemplate}, allowing additional markup after rendering the
- * component's template. Returning false is the default, which progress to the {@link AfterRender}
- * phase. Return true to return to the {@link BeforeRenderTemplate} phase.
- */
-@Target(ElementType.METHOD)
-@Retention(RUNTIME)
-@Documented
-public @interface AfterRenderTemplate {
-
-}
+package org.apache.tapestry.annotations;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Corresponds to {@link BeforeRenderTemplate}, allowing additional markup after rendering the
+ * component's template. Returning true (the default), will progress to the {@link AfterRender}
+ * phase. Return false to return to the {@link BeforeRenderTemplate} phase.
+ */
+@Target(ElementType.METHOD)
+@Retention(RUNTIME)
+@Documented
+public @interface AfterRenderTemplate {
+
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/CleanupRender.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/CleanupRender.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/CleanupRender.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/CleanupRender.java Mon Feb 19 15:08:46 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 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.
@@ -25,9 +25,9 @@
  * Marker annotation for component methods associated with the terminal phase for the component
  * rendering state machine. Methods may optionally take a {@link org.apache.tapestry.MarkupWriter}
  * annotation. Generally, methods marked with this annotation are used to perform post-render
- * cleanup. In addition, a method may return true to return to the
- * {@link org.apache.tapestry.annotations.SetupRender} phase. Returning false, or void, is the
- * normal course.
+ * cleanup. In addition, a method may return false to return to the
+ * {@link org.apache.tapestry.annotations.SetupRender} phase. Returning void or true (the default),
+ * is the normal course.
  */
 @Target(ElementType.METHOD)
 @Retention(RUNTIME)

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java Mon Feb 19 15:08:46 2007
@@ -21,8 +21,6 @@
 import org.apache.tapestry.ComponentResources;
 import org.apache.tapestry.Link;
 import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.AfterRender;
-import org.apache.tapestry.annotations.BeginRender;
 import org.apache.tapestry.annotations.Environmental;
 import org.apache.tapestry.annotations.Inject;
 import org.apache.tapestry.annotations.Mixin;
@@ -60,8 +58,7 @@
     @Parameter("false")
     private boolean _disabled;
 
-    @BeginRender
-    void begin(MarkupWriter writer)
+    void beginRender(MarkupWriter writer)
     {
         if (_disabled)
             return;
@@ -77,8 +74,7 @@
         _resources.renderInformalParameters(writer);
     }
 
-    @AfterRender
-    void end(MarkupWriter writer)
+    void afterRender(MarkupWriter writer)
     {
         if (_disabled)
             return;

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java Mon Feb 19 15:08:46 2007
@@ -28,16 +28,11 @@
 import org.apache.tapestry.TapestryConstants;
 import org.apache.tapestry.ValidationTracker;
 import org.apache.tapestry.ValidationTrackerImpl;
-import org.apache.tapestry.annotations.AfterRender;
-import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.CleanupRender;
 import org.apache.tapestry.annotations.Environmental;
 import org.apache.tapestry.annotations.Inject;
 import org.apache.tapestry.annotations.Mixin;
-import org.apache.tapestry.annotations.OnEvent;
 import org.apache.tapestry.annotations.Parameter;
 import org.apache.tapestry.annotations.Persist;
-import org.apache.tapestry.annotations.SetupRender;
 import org.apache.tapestry.corelib.mixins.RenderInformals;
 import org.apache.tapestry.dom.Element;
 import org.apache.tapestry.internal.services.FormParameterLookup;
@@ -171,8 +166,7 @@
         _defaultTracker = defaultTracker;
     }
 
-    @SetupRender
-    void setup()
+    void setupRender()
     {
         try
         {
@@ -195,8 +189,7 @@
 
     private Element _div;
 
-    @BeginRender
-    void begin(MarkupWriter writer)
+    void beginRender(MarkupWriter writer)
     {
         // Now that the environment is setup, inform the component or other listeners that the form
         // is about to
@@ -230,8 +223,7 @@
 
     }
 
-    @AfterRender
-    void after(MarkupWriter writer)
+    void afterRender(MarkupWriter writer)
     {
         _environment.peek(Heartbeat.class).end();
 
@@ -253,8 +245,7 @@
         _div.element("input", "type", "hidden", "name", FORM_DATA, "value", _actions.toBase64());
     }
 
-    @CleanupRender
-    void cleanup()
+    void cleanupRender()
     {
         _environment.pop(FormSupport.class);
 
@@ -269,8 +260,7 @@
     private ComponentEventResultProcessor _eventResultProcessor;
 
     @SuppressWarnings("unchecked")
-    @OnEvent("action")
-    Object onSubmit(Object[] context)
+    Object onAction(Object[] context)
     {
         _tracker.clear();
 

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java Mon Feb 19 15:08:46 2007
@@ -102,7 +102,7 @@
     {
         _rowIndex++;
 
-        return _rowIndex <= _endRow;
+        return _rowIndex > _endRow;
     }
 
     public List<String> getPropertyNames()

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java Mon Feb 19 15:08:46 2007
@@ -326,7 +326,7 @@
         if (_formSupport != null)
             _formSupport.store(this, END_HEARTBEAT);
 
-        return _iterator.hasNext();
+        return ! _iterator.hasNext();
     }
 
     private void endHeartbeat()

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java Mon Feb 19 15:08:46 2007
@@ -17,8 +17,6 @@
 import org.apache.tapestry.ComponentResources;
 import org.apache.tapestry.Link;
 import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.AfterRender;
-import org.apache.tapestry.annotations.BeginRender;
 import org.apache.tapestry.annotations.Environmental;
 import org.apache.tapestry.annotations.Inject;
 import org.apache.tapestry.annotations.Parameter;
@@ -39,8 +37,7 @@
     @Environmental
     private PageRenderSupport _support;
 
-    @BeginRender
-    void begin(MarkupWriter writer)
+    void beginRender(MarkupWriter writer)
     {
         String clientId = _support.allocateClientId(_resources.getId());
 
@@ -51,8 +48,7 @@
         _resources.renderInformalParameters(writer);
     }
 
-    @AfterRender
-    void end(MarkupWriter writer)
+    void afterRender(MarkupWriter writer)
     {
         writer.end(); // <a>
     }

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Select.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Select.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Select.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Select.java Mon Feb 19 15:08:46 2007
@@ -28,7 +28,6 @@
 import org.apache.tapestry.ValidationException;
 import org.apache.tapestry.ValidationTracker;
 import org.apache.tapestry.ValueEncoder;
-import org.apache.tapestry.annotations.AfterRender;
 import org.apache.tapestry.annotations.BeforeRenderTemplate;
 import org.apache.tapestry.annotations.Environmental;
 import org.apache.tapestry.annotations.Inject;
@@ -228,7 +227,6 @@
             writer.attributes(e.getKey(), e.getValue());
     }
 
-    @AfterRender
     void afterRender(MarkupWriter writer)
     {
         writer.end();

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java Mon Feb 19 15:08:46 2007
@@ -16,18 +16,19 @@
 
 import org.apache.tapestry.Field;
 import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.BeginRender;
 import org.apache.tapestry.annotations.InjectComponent;
-
 import org.apache.tapestry.annotations.MixinAfter;
+
+/**
+ * Renders an "disabled" attribute if the containing {@link Field#isDisabled() is disabled}.
+ */
 @MixinAfter
 public class RenderDisabled
 {
     @InjectComponent
     private Field _field;
 
-    @BeginRender
-    void begin(MarkupWriter writer)
+    void beginRender(MarkupWriter writer)
     {
         if (_field.isDisabled())
             writer.attributes("disabled", "disabled");

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java Mon Feb 19 15:08:46 2007
@@ -43,8 +43,7 @@
     @Inject
     private ComponentResources _resources;
 
-    @BeginRender
-    void write(MarkupWriter writer)
+    void beginRender(MarkupWriter writer)
     {
         _resources.renderInformalParameters(writer);
     }

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java Mon Feb 19 15:08:46 2007
@@ -117,15 +117,10 @@
 
     private static class RenderPhaseEventHandler implements ComponentEventHandler
     {
-        private boolean _result;
+        private boolean _result = true;
 
         private List<RenderCommand> _commands;
 
-        public RenderPhaseEventHandler(boolean defaultResult)
-        {
-            _result = defaultResult;
-        }
-
         boolean getResult()
         {
             return _result;
@@ -175,7 +170,7 @@
     {
         public void render(final MarkupWriter writer, RenderQueue queue)
         {
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(false);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -188,7 +183,7 @@
 
             invoke(true, callback);
 
-            if (handler.getResult())
+            if (!handler.getResult())
                 queue.push(_beginRender);
 
             handler.queueCommands(queue);
@@ -205,7 +200,7 @@
     {
         public void render(final MarkupWriter writer, RenderQueue queue)
         {
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(false);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -218,7 +213,7 @@
 
             invoke(true, callback);
 
-            if (handler.getResult())
+            if (!handler.getResult())
                 queue.push(_beforeRenderBody);
 
             handler.queueCommands(queue);
@@ -235,7 +230,7 @@
     {
         public void render(final MarkupWriter writer, final RenderQueue queue)
         {
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(false);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -248,7 +243,7 @@
 
             invoke(true, callback);
 
-            if (handler.getResult())
+            if (!handler.getResult())
                 queue.push(_beforeRenderTemplate);
 
             handler.queueCommands(queue);
@@ -265,7 +260,7 @@
     {
         public void render(final MarkupWriter writer, RenderQueue queue)
         {
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(true);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -297,7 +292,7 @@
     {
         public void render(final MarkupWriter writer, final RenderQueue queue)
         {
-            final RenderPhaseEventHandler handler = new RenderPhaseEventHandler(true);
+            final RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -329,7 +324,7 @@
     {
         public void render(final MarkupWriter writer, final RenderQueue queue)
         {
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(true);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -374,7 +369,7 @@
     {
         public void render(final MarkupWriter writer, RenderQueue queue)
         {
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(false);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()
@@ -389,10 +384,6 @@
 
             if (handler.getResult())
             {
-                queue.push(_setupRender);
-            }
-            else
-            {
                 _rendering = false;
 
                 Element current = writer.getElement();
@@ -411,6 +402,10 @@
 
                 _page.decrementDirtyCount();
             }
+            else
+            {
+                queue.push(_setupRender);
+            }
 
             handler.queueCommands(queue);
         }
@@ -466,7 +461,7 @@
 
             _elementAtSetup = writer.getElement();
 
-            RenderPhaseEventHandler handler = new RenderPhaseEventHandler(true);
+            RenderPhaseEventHandler handler = new RenderPhaseEventHandler();
             final Event event = new EventImpl(handler);
 
             ComponentCallback callback = new ComponentCallback()

Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt Mon Feb 19 15:08:46 2007
@@ -58,7 +58,7 @@
             if (newValue <= _end)
             {
                 _value = newValue;
-                return true; 
+                return false; 
             }
         }
         else
@@ -68,11 +68,11 @@
             if (newValue >= _end)
             {
                 _value = newValue;
-                return true; 
+                return false; 
             }
         }
 
-        return false;
+        return true;
     }
 }
 +---+

Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt Mon Feb 19 15:08:46 2007
@@ -40,12 +40,12 @@
   Your methods may be void, or return a boolean value. Returning a value can force
   phases to be skipped, or even be re-visited.  In the diagram, solid lines
   show the normal processing path.  Dashed lines are alternate flows that are triggered
-  when your render phase methods return specific values.
+  when your render phase methods return false instead of true (or void).
   
   Render phase methods may take no parameters, or may take
   a parameter of type {{{dom.html}MarkupWriter}}.  The methods can have any visibility
   you like ... typically, package private is used, as this visibility
-  makes it possible to test your code (from within the same Java package)
+  makes it possible to unit test your code (from within the same Java package)
   without making the methods part of the component's
   <public> API.
   
@@ -100,7 +100,7 @@
             if (newValue <= _end)
             {
                 _value = newValue;
-                return true;
+                return false;
             }
         }
         else
@@ -110,18 +110,18 @@
             if (newValue >= _end)
             {
                 _value = newValue;
-                return true; 
+                return false; 
             }
         }
 
-        return false;
+        return true;
     }
 }
 +---+
   
-  Returning true from next() causes Tapestry to re-run the BeginRender phase,
+  Returning false from next() causes Tapestry to re-run the BeginRender phase,
   and from there, re-render the component's body (this component does not have a template).
-  Returning false transitions to the CleanupRender phase.
+  Returning true transitions to the CleanupRender phase.
   
   Notice how Tapestry adapts to your methods, as marked with the annotations. It also
   adapts in terms of parameters; the two annotated methods here did not perform any
@@ -144,10 +144,10 @@
   can also prevent the template and/or body from being rendered by returning false.
   
   Components may or may not have a template.  If a component has a template,
-  and the template includes a \<render-body\> element, then the BeforeRenderBody phase
+  and the template includes a \<body\> element, then the BeforeRenderBody phase
   will be triggered (giving the component the option of rendering its body or not).
   
-  If a component does not have a \<render-body\> element in its template, then
+  If a component does not have a \<body\> element in its template, then
   the BeforeRenderBody phase is not triggered.
   
   If a component does not have a template, but does have a body, the BeforeRenderBody
@@ -170,7 +170,7 @@
   to skip the body, while still rendering the rest of the component's template (if any).
   
   If no methods are annotated with BeforeRenderBody, then the body will be rendered by
-  default. Again, this occurs when the \<render-body\> element of the component's template
+  default. Again, this occurs when the \<body\> element of the component's template
   is reached, or automatically if the component has no template (but the component does
   have a body).
 
@@ -235,7 +235,7 @@
             if (newValue <= _end)
             {
                 _value = newValue;
-                return true;
+                return false;
             }
         }
         else
@@ -245,11 +245,11 @@
             if (newValue >= _end)
             {
                 _value = newValue;
-                return true; 
+                return false; 
             }
         }
 
-        return false;
+        return true;
     }
 }
 +---+   

Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/index.apt?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/index.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/index.apt Mon Feb 19 15:08:46 2007
@@ -38,6 +38,12 @@
   Progress on Tapestry 5 is really taking off. This space lists some cool new features that have been added
   recently.
   
+  * {{{component-parameters.html}Component Reference Documentation}}, generated via a Maven plugin, is now available.
+  
+  * The return values for the "after" set of {{{guide/rendering.html}render phase methods}} have changed: all render phase 
+    methods return true (or void) to progress down the default path, and return false to either skip stages or return to earlier 
+    stages. This may break some existing code.
+  
   * Component event handlers may now return a {{{apidocs/org/apache/tapestry/StreamResponse.html}StreamResponse}}
     to directly send a stream to the client web browser (this is intended for components that need to render
     images, PDF, or other non-page oriented content).

Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/images/component-render-states.graffle
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/images/component-render-states.graffle?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/images/component-render-states.graffle (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/images/component-render-states.graffle Mon Feb 19 15:08:46 2007
@@ -87,7 +87,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{282.666, 648.779}, {31, 14}}</string>
+			<string>{{280.166, 648.779}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -138,12 +138,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 true}</string>
+\f0\fs24 \cf0 false}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{519.166, 890.223}, {36, 14}}</string>
+			<string>{{521.666, 890.223}, {31, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -194,12 +194,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 false}</string>
+\f0\fs24 \cf0 true}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{418.762, 828.757}, {31, 14}}</string>
+			<string>{{416.262, 828.757}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -250,12 +250,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 true}</string>
+\f0\fs24 \cf0 false}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{486.945, 176.879}, {36, 14}}</string>
+			<string>{{486.944, 176.879}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -311,7 +311,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{347.26, 760.704}, {31, 14}}</string>
+			<string>{{344.76, 760.704}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -362,12 +362,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 true}</string>
+\f0\fs24 \cf0 false}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{467.794, 803.739}, {36, 14}}</string>
+			<string>{{470.294, 803.739}, {31, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -418,12 +418,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 false}</string>
+\f0\fs24 \cf0 true}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{396.771, 695.173}, {36, 14}}</string>
+			<string>{{399.272, 695.173}, {31, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -474,12 +474,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 false}</string>
+\f0\fs24 \cf0 true}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{372.111, 645.651}, {36, 14}}</string>
+			<string>{{374.611, 645.65}, {31, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -530,12 +530,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 false}</string>
+\f0\fs24 \cf0 true}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{406.172, 500.591}, {36, 14}}</string>
+			<string>{{406.172, 500.59}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -591,7 +591,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{357.74, 573.112}, {31, 14}}</string>
+			<string>{{355.24, 573.112}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -642,12 +642,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\fs24 \cf0 true}</string>
+\f0\fs24 \cf0 false}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{243.006, 351.061}, {36, 14}}</string>
+			<string>{{243.006, 351.06}, {36, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -759,7 +759,7 @@
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{354.692, 261.686}, {31, 14}}</string>
+			<string>{{354.693, 261.686}, {31, 14}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FitText</key>
@@ -940,7 +940,7 @@
 				<string>{394.959, 775.836}</string>
 				<string>{176, 695.173}</string>
 				<string>{198, 249}</string>
-				<string>{379.307, 241.526}</string>
+				<string>{379.306, 241.526}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -955,7 +955,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -980,9 +980,9 @@
 			<integer>39</integer>
 			<key>Points</key>
 			<array>
-				<string>{379.084, 598.326}</string>
+				<string>{379.084, 598.325}</string>
 				<string>{365.685, 539.16}</string>
-				<string>{407.965, 488.709}</string>
+				<string>{407.965, 488.708}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -997,7 +997,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -1038,7 +1038,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -1079,7 +1079,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -1104,10 +1104,10 @@
 			<integer>36</integer>
 			<key>Points</key>
 			<array>
-				<string>{294.97, 340.638}</string>
+				<string>{294.969, 340.637}</string>
 				<string>{239.077, 385.325}</string>
 				<string>{239.077, 530.325}</string>
-				<string>{239.979, 672.325}</string>
+				<string>{239.98, 672.325}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -1122,7 +1122,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -1145,10 +1145,10 @@
 			<integer>67</integer>
 			<key>Points</key>
 			<array>
-				<string>{479.796, 253.125}</string>
+				<string>{479.795, 253.125}</string>
 				<string>{604, 329}</string>
 				<string>{625.997, 582}</string>
-				<string>{583.357, 840.009}</string>
+				<string>{583.358, 840.009}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -1163,7 +1163,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -1193,7 +1193,7 @@
 				<string>{483.224, 166.21}</string>
 				<string>{626.438, 299.939}</string>
 				<string>{648, 614}</string>
-				<string>{611.202, 841.292}</string>
+				<string>{611.203, 841.292}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -1208,7 +1208,7 @@
 					<key>LineType</key>
 					<integer>1</integer>
 					<key>Pattern</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
@@ -1220,436 +1220,453 @@
 			</dict>
 		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{488.217, 915.347}, {98, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>14</integer>
+				<key>Color</key>
+				<dict>
+					<key>w</key>
+					<string>1</string>
+				</dict>
+				<key>Font</key>
+				<string>TrebuchetMS-Bold</string>
+				<key>Size</key>
+				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>32</integer>
-			<key>Points</key>
-			<array>
-				<string>{537.141, 879.002}</string>
-				<string>{537.19, 914.847}</string>
-			</array>
+			<integer>14</integer>
+			<key>Shape</key>
+			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.501961</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.0</real>
+				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
+					<key>CornerRadius</key>
+					<real>5</real>
 				</dict>
 			</dict>
-			<key>Tail</key>
+			<key>Text</key>
 			<dict>
-				<key>ID</key>
-				<integer>13</integer>
+				<key>Text</key>
+				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf1 End}</string>
 			</dict>
 		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{447.901, 840.502}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>13</integer>
+				<key>Color</key>
+				<dict>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0</string>
+					<key>r</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>TrebuchetMS-Bold</string>
+				<key>Size</key>
+				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>31</integer>
-			<key>Points</key>
+			<integer>13</integer>
+			<key>Magnets</key>
 			<array>
-				<string>{485.209, 794.836}</string>
-				<string>{486.889, 840.502}</string>
+				<string>{-0.281146, -0.13158}</string>
+				<string>{0.25, -0.5}</string>
+				<string>{-0.00563669, 0.368422}</string>
+				<string>{0.433564, -0.5}</string>
 			</array>
+			<key>Shape</key>
+			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.8</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.501961</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.0</real>
+				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
+					<key>CornerRadius</key>
+					<real>5</real>
 				</dict>
 			</dict>
-			<key>Tail</key>
+			<key>Text</key>
 			<dict>
-				<key>ID</key>
-				<integer>12</integer>
+				<key>Text</key>
+				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 CleanupRender}</string>
 			</dict>
 		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{394.959, 756.836}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>12</integer>
-				<key>Info</key>
-				<integer>3</integer>
+				<key>Color</key>
+				<dict>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0</string>
+					<key>r</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>TrebuchetMS-Bold</string>
+				<key>Size</key>
+				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>30</integer>
-			<key>Points</key>
+			<integer>12</integer>
+			<key>Magnets</key>
 			<array>
-				<string>{388.868, 690.48}</string>
-				<string>{463, 726}</string>
-				<string>{485.209, 756.836}</string>
+				<string>{-0.5, 0}</string>
+				<string>{0, 0.5}</string>
+				<string>{0, -0.5}</string>
 			</array>
+			<key>Shape</key>
+			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.8</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.501961</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.0</real>
+				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
+					<key>CornerRadius</key>
+					<real>5</real>
 				</dict>
 			</dict>
-			<key>Tail</key>
+			<key>Text</key>
 			<dict>
-				<key>ID</key>
-				<integer>11</integer>
-			</dict>
-		</dict>
+				<key>Text</key>
+				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 AfterRender}</string>
+			</dict>
+		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{207.959, 672.325}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>11</integer>
+				<key>Color</key>
+				<dict>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0</string>
+					<key>r</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>TrebuchetMS-Bold</string>
+				<key>Size</key>
+				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>29</integer>
-			<key>Points</key>
+			<integer>11</integer>
+			<key>Magnets</key>
 			<array>
-				<string>{422.134, 636.55}</string>
-				<string>{350.979, 672.325}</string>
+				<string>{-0.322601, -0.5}</string>
+				<string>{-5.96046e-08, -0.5}</string>
+				<string>{-5.96046e-08, 0.5}</string>
+				<string>{0.292358, -0.5}</string>
 			</array>
+			<key>Shape</key>
+			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.8</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.501961</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.0</real>
+				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
+					<key>CornerRadius</key>
+					<real>5</real>
 				</dict>
 			</dict>
-			<key>Tail</key>
+			<key>Text</key>
 			<dict>
-				<key>ID</key>
-				<integer>9</integer>
+				<key>Text</key>
+				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 AfterRenderTemplate}</string>
 			</dict>
 		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{445.497, 529.727}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>9</integer>
+				<key>Color</key>
+				<dict>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0</string>
+					<key>r</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>TrebuchetMS-Bold</string>
+				<key>Size</key>
+				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>28</integer>
-			<key>Points</key>
-			<array>
-				<string>{504.428, 567.989}</string>
-				<string>{461.524, 598.039}</string>
-			</array>
+			<integer>10</integer>
+			<key>Shape</key>
+			<string>Parallelogram</string>
 			<key>Style</key>
 			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0.4</string>
+						<key>g</key>
+						<string>1</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.501961</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.0</real>
+				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
+					<key>CornerRadius</key>
+					<real>5</real>
 				</dict>
 			</dict>
-			<key>Tail</key>
+			<key>Text</key>
 			<dict>
-				<key>ID</key>
-				<integer>10</integer>
+				<key>Text</key>
+				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Render Body}</string>
 			</dict>
 		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{333.959, 598.325}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>10</integer>
+				<key>Color</key>
+				<dict>
+					<key>b</key>
+					<string>0</string>
+					<key>g</key>
+					<string>0</string>
+					<key>r</key>
+					<string>0</string>
+				</dict>
+				<key>Font</key>
+				<string>TrebuchetMS-Bold</string>
+				<key>Size</key>
+				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>27</integer>
-			<key>Points</key>
+			<integer>9</integer>
+			<key>Magnets</key>
 			<array>
-				<string>{499.152, 486.714}</string>
-				<string>{531.959, 494.325}</string>
-				<string>{534.389, 529.229}</string>
+				<string>{-0.00127089, -0.281658}</string>
+				<string>{-0.25, -0.499999}</string>
+				<string>{-0.00127089, 0.481501}</string>
+				<string>{0.170474, -0.386921}</string>
 			</array>
+			<key>Shape</key>
+			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Color</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.8</string>
+						<key>r</key>
+						<string>1</string>
+					</dict>
+					<key>GradientColor</key>
+					<dict>
+						<key>b</key>
+						<string>0</string>
+						<key>g</key>
+						<string>0.501961</string>
+						<key>r</key>
+						<string>0</string>
+					</dict>
+					<key>MiddleFraction</key>
+					<real>0.0</real>
+				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
+					<key>CornerRadius</key>
+					<real>5</real>
 				</dict>
 			</dict>
-			<key>Tail</key>
+			<key>Text</key>
 			<dict>
-				<key>ID</key>
-				<integer>8</integer>
+				<key>Text</key>
+				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
+{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 AfterRenderBody}</string>
 			</dict>
 		</dict>
 		<dict>
+			<key>Bounds</key>
+			<string>{{333.959, 450.325}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
 			<dict>
-				<key>ID</key>
-				<integer>8</integer>
-			</dict>
-			<key>ID</key>
-			<integer>26</integer>
-			<key>Points</key>
-			<array>
-				<string>{424.209, 411.79}</string>
-				<string>{424.209, 449.825}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-			<key>Tail</key>
-			<dict>
-				<key>ID</key>
-				<integer>7</integer>
-			</dict>
-		</dict>
-		<dict>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
-			<dict>
-				<key>ID</key>
-				<integer>7</integer>
-			</dict>
-			<key>ID</key>
-			<integer>25</integer>
-			<key>Points</key>
-			<array>
-				<string>{362.891, 340.648}</string>
-				<string>{401.267, 372.968}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
-					<string>0</string>
-				</dict>
-			</dict>
-			<key>Tail</key>
-			<dict>
-				<key>ID</key>
-				<integer>6</integer>
-			</dict>
-		</dict>
-		<dict>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
-			<dict>
-				<key>ID</key>
-				<integer>6</integer>
-			</dict>
-			<key>ID</key>
-			<integer>71</integer>
-			<key>Points</key>
-			<array>
-				<string>{393.365, 258.464}</string>
-				<string>{357.74, 276}</string>
-				<string>{338.051, 301.927}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
+				<key>Color</key>
 				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
+					<key>b</key>
 					<string>0</string>
-				</dict>
-			</dict>
-			<key>Tail</key>
-			<dict>
-				<key>ID</key>
-				<integer>66</integer>
-			</dict>
-		</dict>
-		<dict>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
-			<dict>
-				<key>ID</key>
-				<integer>66</integer>
-			</dict>
-			<key>ID</key>
-			<integer>69</integer>
-			<key>Points</key>
-			<array>
-				<string>{432.419, 176.439}</string>
-				<string>{432.27, 220.345}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
+					<key>g</key>
 					<string>0</string>
-				</dict>
-			</dict>
-			<key>Tail</key>
-			<dict>
-				<key>ID</key>
-				<integer>4</integer>
-			</dict>
-		</dict>
-		<dict>
-			<key>Class</key>
-			<string>LineGraphic</string>
-			<key>Head</key>
-			<dict>
-				<key>ID</key>
-				<integer>4</integer>
-			</dict>
-			<key>ID</key>
-			<integer>22</integer>
-			<key>Points</key>
-			<array>
-				<string>{431.478, 106.061}</string>
-				<string>{432.205, 137.939}</string>
-			</array>
-			<key>Style</key>
-			<dict>
-				<key>stroke</key>
-				<dict>
-					<key>HeadArrow</key>
-					<string>FilledArrow</string>
-					<key>HopLines</key>
-					<true/>
-					<key>HopType</key>
-					<integer>1</integer>
-					<key>LineType</key>
-					<integer>1</integer>
-					<key>TailArrow</key>
+					<key>r</key>
 					<string>0</string>
 				</dict>
-			</dict>
-			<key>Tail</key>
-			<dict>
-				<key>ID</key>
-				<integer>3</integer>
-			</dict>
-		</dict>
-		<dict>
-			<key>Bounds</key>
-			<string>{{488.217, 915.347}, {98, 38}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Color</key>
-				<dict>
-					<key>w</key>
-					<string>1</string>
-				</dict>
 				<key>Font</key>
 				<string>TrebuchetMS-Bold</string>
 				<key>Size</key>
 				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>14</integer>
+			<integer>8</integer>
 			<key>Shape</key>
 			<string>RoundRect</string>
 			<key>Style</key>
@@ -1661,7 +1678,7 @@
 						<key>b</key>
 						<string>0</string>
 						<key>g</key>
-						<string>0</string>
+						<string>0.8</string>
 						<key>r</key>
 						<string>1</string>
 					</dict>
@@ -1691,12 +1708,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\b\fs24 \cf1 End}</string>
+\f0\b\fs24 \cf0 BeforeRenderBody}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{447.901, 840.502}, {180.5, 38}}</string>
+			<string>{{333.959, 373.29}, {180.5, 38}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1716,16 +1733,9 @@
 				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>13</integer>
-			<key>Magnets</key>
-			<array>
-				<string>{-0.281146, -0.13158}</string>
-				<string>{0.25, -0.5}</string>
-				<string>{-0.00563669, 0.368422}</string>
-				<string>{0.433564, -0.5}</string>
-			</array>
+			<integer>7</integer>
 			<key>Shape</key>
-			<string>RoundRect</string>
+			<string>Parallelogram</string>
 			<key>Style</key>
 			<dict>
 				<key>fill</key>
@@ -1733,9 +1743,9 @@
 					<key>Color</key>
 					<dict>
 						<key>b</key>
-						<string>0</string>
+						<string>0.4</string>
 						<key>g</key>
-						<string>0.8</string>
+						<string>1</string>
 						<key>r</key>
 						<string>1</string>
 					</dict>
@@ -1765,12 +1775,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\b\fs24 \cf0 CleanupRender}</string>
+\f0\b\fs24 \cf0 Render Template}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{394.959, 756.836}, {180.5, 38}}</string>
+			<string>{{235.205, 302.325}, {180.5, 38}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1790,12 +1800,10 @@
 				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>12</integer>
+			<integer>6</integer>
 			<key>Magnets</key>
 			<array>
-				<string>{-0.5, 0}</string>
-				<string>{0, 0.5}</string>
-				<string>{0, -0.5}</string>
+				<string>{0.0241081, -0.224772}</string>
 			</array>
 			<key>Shape</key>
 			<string>RoundRect</string>
@@ -1838,12 +1846,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\b\fs24 \cf0 AfterRender}</string>
+\f0\b\fs24 \cf0 BeforeRenderTemplate}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{207.959, 672.325}, {180.5, 38}}</string>
+			<string>{{379.705, 220.345}, {105, 38}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1863,13 +1871,13 @@
 				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>11</integer>
+			<integer>66</integer>
 			<key>Magnets</key>
 			<array>
-				<string>{-0.322601, -0.5}</string>
-				<string>{-5.96046e-08, -0.5}</string>
-				<string>{-5.96046e-08, 0.5}</string>
-				<string>{0.292358, -0.5}</string>
+				<string>{0, 0}</string>
+				<string>{-0.5, 0}</string>
+				<string>{0.453242, 0.362622}</string>
+				<string>{0.25, 0.25}</string>
 			</array>
 			<key>Shape</key>
 			<string>RoundRect</string>
@@ -1912,12 +1920,12 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\b\fs24 \cf0 AfterRenderTemplate}</string>
+\f0\b\fs24 \cf0 BeginRender}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{445.497, 529.727}, {180.5, 38}}</string>
+			<string>{{379.705, 137.939}, {105, 38}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
@@ -1937,9 +1945,16 @@
 				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>10</integer>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0.411739, 0.0526314}</string>
+				<string>{0.00221539, 0.368421}</string>
+				<string>{0, -0.5}</string>
+				<string>{-0.445207, 0.0526316}</string>
+			</array>
 			<key>Shape</key>
-			<string>Parallelogram</string>
+			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
 				<key>fill</key>
@@ -1947,9 +1962,9 @@
 					<key>Color</key>
 					<dict>
 						<key>b</key>
-						<string>0.4</string>
+						<string>0</string>
 						<key>g</key>
-						<string>1</string>
+						<string>0.8</string>
 						<key>r</key>
 						<string>1</string>
 					</dict>
@@ -1979,24 +1994,20 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\b\fs24 \cf0 Render Body}</string>
+\f0\b\fs24 \cf0 SetupRender}</string>
 			</dict>
 		</dict>
 		<dict>
 			<key>Bounds</key>
-			<string>{{333.959, 598.325}, {180.5, 38}}</string>
+			<string>{{382.2, 67.5615}, {98, 38}}</string>
 			<key>Class</key>
 			<string>ShapedGraphic</string>
 			<key>FontInfo</key>
 			<dict>
 				<key>Color</key>
 				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0</string>
-					<key>r</key>
-					<string>0</string>
+					<key>w</key>
+					<string>1</string>
 				</dict>
 				<key>Font</key>
 				<string>TrebuchetMS-Bold</string>
@@ -2004,14 +2015,7 @@
 				<real>12</real>
 			</dict>
 			<key>ID</key>
-			<integer>9</integer>
-			<key>Magnets</key>
-			<array>
-				<string>{-0.00127089, -0.281658}</string>
-				<string>{-0.25, -0.499999}</string>
-				<string>{-0.00127089, 0.481501}</string>
-				<string>{0.170474, -0.386921}</string>
-			</array>
+			<integer>3</integer>
 			<key>Shape</key>
 			<string>RoundRect</string>
 			<key>Style</key>
@@ -2023,9 +2027,9 @@
 						<key>b</key>
 						<string>0</string>
 						<key>g</key>
-						<string>0.8</string>
+						<string>0.501961</string>
 						<key>r</key>
-						<string>1</string>
+						<string>0</string>
 					</dict>
 					<key>GradientColor</key>
 					<dict>
@@ -2053,423 +2057,443 @@
 {\colortbl;\red255\green255\blue255;}
 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
 
-\f0\b\fs24 \cf0 AfterRenderBody}</string>
+\f0\b\fs24 \cf1 Start}</string>
 			</dict>
 		</dict>
 		<dict>
-			<key>Bounds</key>
-			<string>{{333.959, 450.325}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
 			<dict>
-				<key>Color</key>
+				<key>ID</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{458.994, 843.755}</string>
+				<string>{153, 728}</string>
+				<string>{146, 242}</string>
+				<string>{379.562, 160.984}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
 				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0</string>
-					<key>r</key>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>2</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>Pattern</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
 					<string>0</string>
 				</dict>
-				<key>Font</key>
-				<string>TrebuchetMS-Bold</string>
-				<key>Size</key>
-				<real>12</real>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>13</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>14</integer>
 			</dict>
 			<key>ID</key>
-			<integer>8</integer>
-			<key>Shape</key>
-			<string>RoundRect</string>
+			<integer>32</integer>
+			<key>Points</key>
+			<array>
+				<string>{537.141, 879.002}</string>
+				<string>{537.19, 914.847}</string>
+			</array>
 			<key>Style</key>
 			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.8</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.0</real>
-				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>CornerRadius</key>
-					<real>5</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
-			<key>Text</key>
+			<key>Tail</key>
 			<dict>
-				<key>Text</key>
-				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
-{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs24 \cf0 BeforeRenderBody}</string>
+				<key>ID</key>
+				<integer>13</integer>
 			</dict>
 		</dict>
 		<dict>
-			<key>Bounds</key>
-			<string>{{333.959, 373.29}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
 			<dict>
-				<key>Color</key>
+				<key>ID</key>
+				<integer>13</integer>
+			</dict>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Points</key>
+			<array>
+				<string>{485.209, 794.836}</string>
+				<string>{486.889, 840.502}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
 				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0</string>
-					<key>r</key>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
 					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
-				<key>Font</key>
-				<string>TrebuchetMS-Bold</string>
-				<key>Size</key>
-				<real>12</real>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>12</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>12</integer>
+				<key>Info</key>
+				<integer>3</integer>
 			</dict>
 			<key>ID</key>
-			<integer>7</integer>
-			<key>Shape</key>
-			<string>Parallelogram</string>
+			<integer>30</integer>
+			<key>Points</key>
+			<array>
+				<string>{388.868, 690.479}</string>
+				<string>{463, 726}</string>
+				<string>{485.209, 756.836}</string>
+			</array>
 			<key>Style</key>
 			<dict>
-				<key>fill</key>
+				<key>stroke</key>
 				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0.4</string>
-						<key>g</key>
-						<string>1</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.0</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>11</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>11</integer>
+			</dict>
+			<key>ID</key>
+			<integer>29</integer>
+			<key>Points</key>
+			<array>
+				<string>{422.135, 636.55}</string>
+				<string>{350.98, 672.325}</string>
+			</array>
+			<key>Style</key>
+			<dict>
 				<key>stroke</key>
 				<dict>
-					<key>CornerRadius</key>
-					<real>5</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
-			<key>Text</key>
+			<key>Tail</key>
 			<dict>
-				<key>Text</key>
-				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
-{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs24 \cf0 Render Template}</string>
+				<key>ID</key>
+				<integer>9</integer>
 			</dict>
 		</dict>
 		<dict>
-			<key>Bounds</key>
-			<string>{{235.205, 302.325}, {180.5, 38}}</string>
 			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
 			<dict>
-				<key>Color</key>
+				<key>ID</key>
+				<integer>9</integer>
+			</dict>
+			<key>ID</key>
+			<integer>28</integer>
+			<key>Points</key>
+			<array>
+				<string>{504.428, 567.989}</string>
+				<string>{461.524, 598.038}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
 				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0</string>
-					<key>r</key>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
 					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
-				<key>Font</key>
-				<string>TrebuchetMS-Bold</string>
-				<key>Size</key>
-				<real>12</real>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>10</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>10</integer>
 			</dict>
 			<key>ID</key>
-			<integer>6</integer>
-			<key>Magnets</key>
+			<integer>27</integer>
+			<key>Points</key>
 			<array>
-				<string>{0.0241081, -0.224772}</string>
+				<string>{499.152, 486.713}</string>
+				<string>{531.959, 494.325}</string>
+				<string>{534.389, 529.228}</string>
 			</array>
-			<key>Shape</key>
-			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
-				<key>fill</key>
+				<key>stroke</key>
 				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.8</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.0</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+			</dict>
+			<key>ID</key>
+			<integer>26</integer>
+			<key>Points</key>
+			<array>
+				<string>{424.209, 411.79}</string>
+				<string>{424.209, 449.825}</string>
+			</array>
+			<key>Style</key>
+			<dict>
 				<key>stroke</key>
 				<dict>
-					<key>CornerRadius</key>
-					<real>5</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
-			<key>Text</key>
+			<key>Tail</key>
 			<dict>
-				<key>Text</key>
-				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
-{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs24 \cf0 BeforeRenderTemplate}</string>
+				<key>ID</key>
+				<integer>7</integer>
 			</dict>
 		</dict>
 		<dict>
-			<key>Bounds</key>
-			<string>{{379.705, 220.345}, {105, 38}}</string>
 			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
 			<dict>
-				<key>Color</key>
-				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0</string>
-					<key>r</key>
-					<string>0</string>
-				</dict>
-				<key>Font</key>
-				<string>TrebuchetMS-Bold</string>
-				<key>Size</key>
-				<real>12</real>
+				<key>ID</key>
+				<integer>7</integer>
 			</dict>
 			<key>ID</key>
-			<integer>66</integer>
-			<key>Magnets</key>
+			<integer>25</integer>
+			<key>Points</key>
 			<array>
-				<string>{0, 0}</string>
-				<string>{-0.5, 0}</string>
-				<string>{0.453242, 0.362622}</string>
-				<string>{0.25, 0.25}</string>
+				<string>{362.89, 340.647}</string>
+				<string>{401.267, 372.968}</string>
 			</array>
-			<key>Shape</key>
-			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.8</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.0</real>
-				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>CornerRadius</key>
-					<real>5</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
-			<key>Text</key>
+			<key>Tail</key>
 			<dict>
-				<key>Text</key>
-				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
-{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs24 \cf0 BeginRender}</string>
+				<key>ID</key>
+				<integer>6</integer>
 			</dict>
 		</dict>
 		<dict>
-			<key>Bounds</key>
-			<string>{{379.705, 137.939}, {105, 38}}</string>
 			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
 			<dict>
-				<key>Color</key>
-				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0</string>
-					<key>r</key>
-					<string>0</string>
-				</dict>
-				<key>Font</key>
-				<string>TrebuchetMS-Bold</string>
-				<key>Size</key>
-				<real>12</real>
+				<key>ID</key>
+				<integer>6</integer>
 			</dict>
 			<key>ID</key>
-			<integer>4</integer>
-			<key>Magnets</key>
+			<integer>71</integer>
+			<key>Points</key>
 			<array>
-				<string>{0.411739, 0.0526314}</string>
-				<string>{0.00221539, 0.368421}</string>
-				<string>{0, -0.5}</string>
-				<string>{-0.445207, 0.0526316}</string>
+				<string>{393.365, 258.464}</string>
+				<string>{357.74, 276}</string>
+				<string>{338.051, 301.927}</string>
 			</array>
-			<key>Shape</key>
-			<string>RoundRect</string>
 			<key>Style</key>
 			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.8</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.0</real>
-				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>CornerRadius</key>
-					<real>5</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
-			<key>Text</key>
+			<key>Tail</key>
 			<dict>
-				<key>Text</key>
-				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
-{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs24 \cf0 SetupRender}</string>
+				<key>ID</key>
+				<integer>66</integer>
 			</dict>
 		</dict>
 		<dict>
-			<key>Bounds</key>
-			<string>{{382.2, 67.5615}, {98, 38}}</string>
 			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
 			<dict>
-				<key>Color</key>
-				<dict>
-					<key>w</key>
-					<string>1</string>
-				</dict>
-				<key>Font</key>
-				<string>TrebuchetMS-Bold</string>
-				<key>Size</key>
-				<real>12</real>
+				<key>ID</key>
+				<integer>66</integer>
 			</dict>
 			<key>ID</key>
-			<integer>3</integer>
-			<key>Shape</key>
-			<string>RoundRect</string>
+			<integer>69</integer>
+			<key>Points</key>
+			<array>
+				<string>{432.419, 176.439}</string>
+				<string>{432.27, 220.345}</string>
+			</array>
 			<key>Style</key>
 			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.501961</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.0</real>
-				</dict>
 				<key>stroke</key>
 				<dict>
-					<key>CornerRadius</key>
-					<real>5</real>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>HopLines</key>
+					<true/>
+					<key>HopType</key>
+					<integer>1</integer>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
-			<key>Text</key>
+			<key>Tail</key>
 			<dict>
-				<key>Text</key>
-				<string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
-{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs24 \cf1 Start}</string>
+				<key>ID</key>
+				<integer>4</integer>
 			</dict>
 		</dict>
 		<dict>
@@ -2481,13 +2505,11 @@
 				<integer>4</integer>
 			</dict>
 			<key>ID</key>
-			<integer>41</integer>
+			<integer>22</integer>
 			<key>Points</key>
 			<array>
-				<string>{458.994, 843.755}</string>
-				<string>{153, 728}</string>
-				<string>{146, 242}</string>
-				<string>{379.562, 160.984}</string>
+				<string>{431.478, 106.061}</string>
+				<string>{432.205, 137.939}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -2498,19 +2520,19 @@
 					<key>HopLines</key>
 					<true/>
 					<key>HopType</key>
-					<integer>2</integer>
+					<integer>1</integer>
 					<key>LineType</key>
 					<integer>1</integer>
-					<key>Pattern</key>
-					<integer>2</integer>
 					<key>TailArrow</key>
 					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
 				</dict>
 			</dict>
 			<key>Tail</key>
 			<dict>
 				<key>ID</key>
-				<integer>13</integer>
+				<integer>3</integer>
 			</dict>
 		</dict>
 	</array>
@@ -2613,7 +2635,7 @@
 		</dict>
 	</array>
 	<key>ModificationDate</key>
-	<string>2006-12-20 14:05:51 -0800</string>
+	<string>2007-02-19 13:13:13 -0800</string>
 	<key>Modifier</key>
 	<string>Howard Lewis Ship</string>
 	<key>NotesVisible</key>

Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/resources/images/component-render-states.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/resources/images/component-render-states.png?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
Binary files - no diff available.

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/corelib/components/LoopTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/corelib/components/LoopTest.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/corelib/components/LoopTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/corelib/components/LoopTest.java Mon Feb 19 15:08:46 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 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.
@@ -52,17 +52,17 @@
         assertEquals(loop.getValue(), "alpha");
         assertEquals(loop.getIndex(), 0);
 
-        assertTrue(loop.after());
+        assertFalse(loop.after());
         loop.begin();
         assertEquals(loop.getValue(), "beta");
         assertEquals(loop.getIndex(), 1);
 
-        assertTrue(loop.after());
+        assertFalse(loop.after());
         loop.begin();
         assertEquals(loop.getValue(), "gamma");
         assertEquals(loop.getIndex(), 2);
 
-        assertFalse(loop.after());
+        assertTrue(loop.after());
 
         verify();
     }

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java?view=diff&rev=509372&r1=509371&r2=509372
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java Mon Feb 19 15:08:46 2007
@@ -56,7 +56,7 @@
             if (newValue <= _end)
             {
                 _value = newValue;
-                return true; // re-render body
+                return false; // re-render body
             }
         }
         else
@@ -66,10 +66,10 @@
             if (newValue >= _end)
             {
                 _value = newValue;
-                return true; // re-render body
+                return false; // re-render body
             }
         }
 
-        return false;
+        return true;
     }
 }