Author: hlship
Date: Mon Sep  8 12:21:53 2008
New Revision: 693207

URL: http://svn.apache.org/viewvc?rev=693207&view=rev
Log:
TAPESTRY-2277: Removing Label body should be parameterizable

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Label.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/app1/SimpleForm.tml

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Label.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Label.java?rev=693207&r1=693206&r2=693207&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Label.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Label.java
 Mon Sep  8 12:21:53 2008
@@ -15,7 +15,9 @@
 package org.apache.tapestry5.corelib.components;
 
 import org.apache.tapestry5.*;
-import org.apache.tapestry5.annotations.*;
+import org.apache.tapestry5.annotations.Environmental;
+import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.annotations.SupportsInformalParameters;
 import org.apache.tapestry5.dom.Element;
 import org.apache.tapestry5.ioc.annotations.Inject;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
@@ -50,8 +52,16 @@
 
     private Element labelElement;
 
-    @BeginRender
-    void begin(MarkupWriter writer)
+    /**
+     * If true, then the body of the label element (in the template) is 
ignored. This is used when a designer places a
+     * value inside the <label> element for WYSIWYG purposes, but it 
should be replaced with a different
+     * (probably, localized) value at runtime. The default is false, so a body 
will be used if present and the field's
+     * label will only be used if the body is empty or blank.
+     */
+    @Parameter
+    private boolean ignoreBody;
+
+    boolean beginRender(MarkupWriter writer)
     {
         final Field field = this.field;
 
@@ -78,10 +88,11 @@
         };
 
         heartbeat.defer(command);
+
+        return !ignoreBody;
     }
 
-    @AfterRender
-    void after(MarkupWriter writer)
+    void afterRender(MarkupWriter writer)
     {
         // If the Label element has a body that renders some non-blank output, 
that takes precendence
         // over the label string provided by the field.

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/app1/SimpleForm.tml
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/app1/SimpleForm.tml?rev=693207&r1=693206&r2=693207&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/app1/SimpleForm.tml 
(original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/app1/SimpleForm.tml Mon Sep 
 8 12:21:53 2008
@@ -19,7 +19,7 @@
             <t:label for="email">User Email</t:label>
             <input t:type="TextField" t:id="email" value="incident.email" 
size="50" disabled="disabled"/>
             <br/>
-            <t:label for="message"/>
+            <t:label for="message" ignorebody="true">This label body is 
ignored.</t:label>
             <input t:type="TextArea" t:id="message" label="Incident Message" 
value="incident.message"
                    cols="50" rows="10" disabled="disabled">You can put text 
here, but it isn't used.
             </input>


Reply via email to