Author: dolander
Date: Mon Feb  7 21:05:44 2005
New Revision: 152623

URL: http://svn.apache.org/viewcvs?view=rev&rev=152623
Log:
This is a bit of work on Jira bugs 249 and 250.  The change verifies that both
span and label support formatting and that the defaultValue my or may not
be formatted.

There is still one issue with not reporting formatting errors when the 
defaultValue
is null and sent to a formatter.  At the moment, LabelDefaults is failing 
because of
this.


Added:
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/
    
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/Controller.jpf
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/index.jsp
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/
    
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/Controller.jpf
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/index.jsp
    incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J249.xml
    incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J250.xml
Modified:
    
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java
    
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java
    incubator/beehive/trunk/netui/src/util/netui-config-default.xml
    
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java?view=diff&r1=152622&r2=152623
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Label.java
 Mon Feb  7 21:05:44 2005
@@ -79,7 +79,7 @@
      */
     public int doStartTag() throws JspException
     {
-        return SKIP_BODY;
+        return EVAL_BODY_BUFFERED;
     }
 
 
@@ -94,20 +94,21 @@
 
         String scriptId = null;
         ServletRequest req = pageContext.getRequest();
+        Object labelObject = null;
 
         String labelValue = null;
 
         // if this is not client side binding, evalute the value
         if (_value != null)
-            labelValue = _value.toString();
+            labelObject = _value;
         else {
             if (_defaultValue != null) {
-                labelValue = _defaultValue.toString();
-                bypassEscape = HtmlUtils.containsEntity(labelValue);
+                labelObject = _defaultValue;
+                bypassEscape = 
HtmlUtils.containsEntity(_defaultValue.toString());
             }
             else {
                 logger.warn(Bundle.getString("Tags_LabelExpressionNull", 
_value));
-                labelValue = DEFAULT_NULL_TEXT;
+                labelObject = DEFAULT_NULL_TEXT;
             }
             usingDefault = true;
         }
@@ -118,6 +119,10 @@
             scriptId = renderNameAndId((HttpServletRequest) req, _state, null);
         }
 
+        // push the evaluated expression when we are not client side bound...
+        labelValue = (usingDefault && !_formatDefaultValue) ?
+                labelObject.toString() : formatText(labelObject) ;
+
         if (hasErrors())
             return reportAndExit(EVAL_PAGE);
 
@@ -132,8 +137,8 @@
         br.doStartTag(writer, _state);
 
         // push the evaluated expression when we are not client side bound...
-        if (!usingDefault)
-            labelValue = formatText(labelValue);
+        //if (!usingDefault)
+        //    labelValue = formatText(labelValue);
 
         if (!bypassEscape)
             filter(labelValue, writer, _escapeWhiteSpace);

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java?view=diff&r1=152622&r2=152623
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Span.java
 Mon Feb  7 21:05:44 2005
@@ -141,12 +141,12 @@
             if (_defaultValue != null) {
                 labelObject = _defaultValue;
                 bypassEscape = 
HtmlUtils.containsEntity(_defaultValue.toString());
-                usingDefault = true;
             }
             else {
                 logger.warn(Bundle.getString("Tags_LabelExpressionNull", 
_value));
                 labelObject = DEFAULT_NULL_TEXT;
             }
+            usingDefault = true;
         }
 
         // we assume that tagId will over have override id if both
@@ -156,7 +156,7 @@
         }
 
         // push the evaluated expression when we are not client side bound...
-        String labelValue = (usingDefault && _formatDefaultValue) ?
+        String labelValue = (usingDefault && !_formatDefaultValue) ?
                 labelObject.toString() : formatText(labelObject) ;
 
         // if there were errors in the formatters, report them.

Modified: incubator/beehive/trunk/netui/src/util/netui-config-default.xml
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/netui-config-default.xml?view=diff&r1=152622&r2=152623
==============================================================================
--- incubator/beehive/trunk/netui/src/util/netui-config-default.xml (original)
+++ incubator/beehive/trunk/netui/src/util/netui-config-default.xml Mon Feb  7 
21:05:44 2005
@@ -12,4 +12,9 @@
         </expression-language>
     </expression-languages>
 
+    <request-interceptors>
+       
<interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class>
+       
<interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class>
+    </request-interceptors>
+    
 </netui-config>

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/Controller.jpf
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/Controller.jpf?view=auto&rev=152623
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/Controller.jpf 
(added)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/Controller.jpf 
Mon Feb  7 21:05:44 2005
@@ -0,0 +1,50 @@
+package bugs.j249;
+
+import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import javax.servlet.http.HttpSession;
+import java.util.Calendar;
+
+/**
+ * This is the default controller for a blank web application.
+ */
[EMAIL PROTECTED]
+public class Controller extends PageFlowController
+{
+    private Calendar _date;
+
+    public void setDate(Calendar date) {
+        _date = date;
+    }
+    public Calendar getDate() {
+        return _date;
+    }
+
+    @Jpf.Action(
+            forwards = {
+            @Jpf.Forward(name = "index", path = "index.jsp")
+            }
+            )
+    protected Forward begin()
+    {
+        return new Forward("index");
+    }
+    /**
+     * Callback that is invoked when this controller instance is created.
+     */
+    protected void onCreate()
+    {
+        _date = Calendar.getInstance();
+        _date.set(2002,0,17,13,30,8);
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is destroyed.
+     */
+    protected void onDestroy(HttpSession session)
+    {
+    }
+}

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/index.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/index.jsp?view=auto&rev=152623
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/index.jsp 
(added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j249/index.jsp 
Mon Feb  7 21:05:44 2005
@@ -0,0 +1,15 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+
+<netui:html>
+    <head>
+        <netui:base />
+    </head>
+    <netui:body>
+        <p style="color:green">
+        This test verifies that a data format can be applied to both a Span 
and a Label.
+        </p>
+        Span: <netui:span value="${pageFlow.date}"><netui:formatDate 
pattern="MM/dd/yyyy" /></netui:span><br>
+        Label: <netui:label value="${pageFlow.date}"><netui:formatDate 
pattern="MM/dd/yyyy" /></netui:label>
+    </netui:body>
+</netui:html>

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/Controller.jpf
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/Controller.jpf?view=auto&rev=152623
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/Controller.jpf 
(added)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/Controller.jpf 
Mon Feb  7 21:05:44 2005
@@ -0,0 +1,55 @@
+package bugs.j250;
+
+import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import javax.servlet.http.HttpSession;
+import java.util.Calendar;
+
+/**
+ * This is the default controller for a blank web application.
+ */
[EMAIL PROTECTED]
+public class Controller extends PageFlowController
+{
+    private Calendar _date = null;
+
+    public void setDate(Calendar date) {
+        _date = date;
+    }
+    public Calendar getDate() {
+        return _date;
+    }
+
+    private Calendar _default;
+    public Calendar getDefaultDate() {
+        return _default;
+    }
+
+    @Jpf.Action(
+            forwards = {
+            @Jpf.Forward(name = "index", path = "index.jsp")
+            }
+            )
+    protected Forward begin()
+    {
+        return new Forward("index");
+    }
+    /**
+     * Callback that is invoked when this controller instance is created.
+     */
+    protected void onCreate()
+    {
+        _default = Calendar.getInstance();
+        _default.set(2002,0,17,13,30,8);
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is destroyed.
+     */
+    protected void onDestroy(HttpSession session)
+    {
+    }
+}

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/index.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/index.jsp?view=auto&rev=152623
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/index.jsp 
(added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j250/index.jsp 
Mon Feb  7 21:05:44 2005
@@ -0,0 +1,23 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+
+<netui:html>
+    <head>
+        <netui:base />
+    </head>
+    <netui:body>
+        <p style="color:green">
+        This test verifies that you can choose to apply formatters to the 
default value or not.  The first
+        two elements below bind to a default value that is a Calendar and 
format that.  The second two
+        have the value in the tag and do not apply the formatter.
+        </p>
+        Span: <netui:span value="${pageFlow.date}" formatDefaultValue="true" 
defaultValue="${pageFlow.defaultDate}">
+            <netui:formatDate pattern="MM/dd/yyyy" /></netui:span><br>
+        Label: <netui:label value="${pageFlow.date}" formatDefaultValue="true" 
defaultValue="${pageFlow.defaultDate}">
+            <netui:formatDate pattern="MM/dd/yyyy" /></netui:label><br>
+         Span: <netui:span value="${pageFlow.date}" defaultValue="[No Date 
Specified]">
+             <netui:formatDate pattern="MM/dd/yyyy" /></netui:span><br>
+         Label: <netui:label value="${pageFlow.date}" defaultValue="[No Date 
Specified]">
+             <netui:formatDate pattern="MM/dd/yyyy" /></netui:label>
+    </netui:body>
+</netui:html>

Modified: 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&r1=152622&r2=152623
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
 (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
 Mon Feb  7 21:05:44 2005
@@ -3838,6 +3838,24 @@
          </categories>
       </test>
       <test>
+         <name>J249</name>
+         <description>Verify applying formatters to Label</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>jiriBugs</category>
+         </categories>
+      </test>
+      <test>
+         <name>J250</name>
+         <description>Verify the formatDefaultValue attribute</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>jiriBugs</category>
+         </categories>
+      </test>
+      <test>
          <name>JpfScopedFormsTest49</name>
          <description>JpfScopedFormsTest49</description>
          <webapp>coreWeb</webapp>

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J249.xml
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J249.xml?view=auto&rev=152623
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J249.xml 
(added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J249.xml 
Mon Feb  7 21:05:44 2005
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession 
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session";>
+   <ses:sessionName>J249</ses:sessionName>
+   <ses:tester>Daryl</ses:tester>
+   <ses:startDate>07 Feb 2005, 09:43:54.843 PM MST</ses:startDate>
+   <ses:description>Verify a formatter can be used against a 
Label.</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/bugs/j249/Controller.jpf</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>5CDF29C2D73FDBC8BD42E26F47D1598F</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>------------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  
<ses:value>JSESSIONID=5CDF29C2D73FDBC8BD42E26F47D1598F</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 
4.01 Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+
+    <head>
+        <base href="http://localhost:8080/coreWeb/bugs/j249/index.jsp";>
+    </head>
+    <body>
+        <p style="color:green">
+        This test verifies that a data format can be applied to both a Span 
and a Label.
+        </p>
+        Span: <span>01/17/2002</span><br>
+        Label: <label>01/17/2002</label>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>07 Feb 2005, 09:43:59.765 PM MST</ses:endDate>
+   <ses:testCount>1</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J250.xml
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J250.xml?view=auto&rev=152623
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J250.xml 
(added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J250.xml 
Mon Feb  7 21:05:44 2005
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession 
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session";>
+   <ses:sessionName>J250</ses:sessionName>
+   <ses:tester>Daryl</ses:tester>
+   <ses:startDate>07 Feb 2005, 09:44:30.109 PM MST</ses:startDate>
+   <ses:description>Verify the formatDefaultValue will format the default 
value on a Label and Span</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/bugs/j250/Controller.jpf</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>5CDF29C2D73FDBC8BD42E26F47D1598F</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>---------------</ses:name>
+                  <ses:value>------------</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  
<ses:value>JSESSIONID=5CDF29C2D73FDBC8BD42E26F47D1598F</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 
4.01 Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+
+    <head>
+        <base href="http://localhost:8080/coreWeb/bugs/j250/index.jsp";>
+    </head>
+    <body>
+        <p style="color:green">
+        This test verifies that you can choose to apply formatters to the 
default value or not.  The first
+        two elements below bind to a default value that is a Calendar and 
format that.  The second two
+        have the value in the tag and do not apply the formatter.
+        </p>
+        Span: <span>01/17/2002</span><br>
+        Label: <label>01/17/2002</label><br>
+         Span: <span>[No Date Specified]</span><br>
+         Label: <label>[No Date Specified]</label>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>07 Feb 2005, 09:44:34.140 PM MST</ses:endDate>
+   <ses:testCount>1</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file


Reply via email to