[cvs] expresso commit by ppilgrim: Simplification Expresso HTML Tag Library

JCorporate Ltd jcorp at jcorporate.com
Fri Jan 14 23:34:59 UTC 2005


Log Message:
-----------
Simplification Expresso HTML Tag Library with Struts 1.2 rendering base class methods. Hard work, but v. cool!

Modified Files:
--------------
    expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html:
        ExBaseFieldTag.java
        ExButtonTag.java
        ExCheckboxTag.java
        ExComboBoxTag.java
        ExImageTag.java
        ExLinkTag.java
        ExRadioTag.java
        ExSelectTag.java
        ExSubmitTag.java
        ExTextareaTag.java

Revision Data
-------------
Index: ExSubmitTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java -u -r1.10 -r1.11
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSubmitTag.java
@@ -71,7 +71,6 @@
 import org.apache.struts.taglib.TagUtils;
 import org.apache.struts.taglib.html.Constants;
 import org.apache.struts.taglib.html.SubmitTag;
-import org.apache.struts.util.ResponseUtils;
 
 import com.jcorporate.expresso.core.controller.ControllerElement;
 import com.jcorporate.expresso.core.controller.Transition;
@@ -138,7 +137,7 @@
         if (params != null) {
 
             // Render this element to our writer
-            ResponseUtils.write(pageContext,
+            TagUtils.getInstance().write(pageContext,
                     myTransition.getHTMLParamString() + "\n");
         }
 
@@ -204,23 +203,18 @@
         // Generate an HTML element
         StringBuffer results = new StringBuffer();
         results.append("<input type=\"submit\" name=\"");
-        results.append("button_" + myTransition.getName());
-        results.append("\"");
+        prepareAttribute( results, "name", "button_" + myTransition.getName() );
+        // prepareAttribute( results, "", "");
 
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey);
         }
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex);
         }
 
-        results.append(" value=\"");
-        results.append(MessageUtil.getString(pageContext, label));
-        results.append("\"");
+        prepareAttribute( results, "value", MessageUtil.getString(pageContext, label));
+
         results.append(prepareEventHandlers());
         results.append(prepareStyles());
         results.append(">");
Index: ExLinkTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExLinkTag.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExLinkTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExLinkTag.java -u -r1.10 -r1.11
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExLinkTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExLinkTag.java
@@ -112,7 +112,7 @@
             results.append(linkName);
             results.append("\">");
             TagUtils.getInstance().write(pageContext, results.toString());
-            return (EVAL_BODY_TAG);
+            return (EVAL_BODY_INCLUDE);
         }
 
         // Generate the hyperlink URL
@@ -139,16 +139,12 @@
         }
         results.append("\"");
         if (target != null) {
-            results.append(" target=\"");
-            results.append(target);
-            results.append("\"");
+            prepareAttribute( results, "target",target );
         }
         if (border != null) {
-            results.append(" border=\"");
-            results.append(border);
-            results.append("\"");
+            prepareAttribute( results, "border", border );
         } else {
-            results.append(" border=\"0\"");
+            prepareAttribute( results, "border", "0");
         }
         results.append(prepareStyles());
         results.append(prepareEventHandlers());
@@ -163,7 +159,7 @@
         } catch (IOException e) {
             throw new JspException(messages.getMessage("common.io", e.toString()));
         }
-        return EVAL_BODY_TAG;
+        return EVAL_BODY_INCLUDE;
     }
 
     protected String hyperlink() throws JspException {
@@ -212,6 +208,5 @@
 
         return urlForLink;
     }
-
 
 }
Index: ExSelectTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSelectTag.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSelectTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSelectTag.java -u -r1.12 -r1.13
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSelectTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExSelectTag.java
@@ -72,7 +72,6 @@
 import org.apache.struts.taglib.TagUtils;
 import org.apache.struts.taglib.html.Constants;
 import org.apache.struts.taglib.html.SelectTag;
-import org.apache.struts.util.ResponseUtils;
 
 import com.jcorporate.expresso.core.controller.ControllerElement;
 import com.jcorporate.expresso.core.controller.Input;
@@ -128,7 +127,7 @@
         results.append("</select>");
 
         // Print this value to our output writer
-        ResponseUtils.write(pageContext, results.toString());
+        TagUtils.getInstance().write(pageContext, results.toString());
 
         // Continue processing this page
         return (EVAL_PAGE);
@@ -174,30 +173,25 @@
 
         // Create an appropriate "form" element based on our parameters
         StringBuffer results = new StringBuffer("<select");
+        prepareAttribute( results, "name", myInput.getName() );
         results.append(" name=\"");
         results.append(myInput.getName());
         results.append("\"");
 
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey );
         }
 
         if (multiple != null) {
-            results.append(" multiple=\"multiple\"");
+            prepareAttribute( results, "multiple", "multiple");
         }
 
         if (size != null) {
-            results.append(" size=\"");
-            results.append(size);
-            results.append("\"");
+            prepareAttribute( results, "size", size );
         }
 
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex );
         }
 
         results.append(prepareEventHandlers());
Index: ExRadioTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExRadioTag.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExRadioTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExRadioTag.java -u -r1.8 -r1.9
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExRadioTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExRadioTag.java
@@ -123,25 +123,18 @@
 
         // Create an appropriate "input" element based on our parameters
         StringBuffer results = new StringBuffer("<input type=\"radio\"");
-        results.append(" name=\"");
-        results.append(myInput.getName());
-        results.append("\"");
+        prepareAttribute( results, "name", myInput.getName() );
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey );
         }
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex );
         }
 
-        results.append(" value=\"");
         if (value == null) {
-            results.append("Y");
+            prepareAttribute( results, "value", "Y" );
         } else {
-            results.append(value);
+            prepareAttribute( results, "value", value);
         }
         results.append("\"");
         String valueStr = ((value == null) ? "" : value);
Index: ExComboBoxTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExComboBoxTag.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExComboBoxTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExComboBoxTag.java -u -r1.13 -r1.14
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExComboBoxTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExComboBoxTag.java
@@ -71,7 +71,6 @@
 import javax.servlet.jsp.tagext.BodyTagSupport;
 
 import org.apache.struts.taglib.TagUtils;
-import org.apache.struts.util.ResponseUtils;
 
 import com.jcorporate.expresso.core.controller.ControllerElement;
 import com.jcorporate.expresso.core.controller.Input;
@@ -182,7 +181,7 @@
         results.append("&nbsp;\n");
 
         // Print this value to our output writer
-        ResponseUtils.write(pageContext, results.toString());
+        TagUtils.getInstance().write(pageContext, results.toString());
 
         // Continue processing this page
         return (EVAL_PAGE);
Index: ExBaseFieldTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExBaseFieldTag.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExBaseFieldTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExBaseFieldTag.java -u -r1.11 -r1.12
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExBaseFieldTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExBaseFieldTag.java
@@ -131,21 +131,16 @@
             }
 
             // Create an appropriate "input" element based on our parameters
-            StringBuffer results = new StringBuffer("<input type=\"");
-            results.append(type);
-            results.append("\" name=\"");
-            results.append(myInput.getName());
-            results.append("\"");
+            StringBuffer results = new StringBuffer("<input ");
 
+            prepareAttribute( results, "type", type );
+            prepareAttribute( results, "name", myInput.getName() );
+            
             if (accesskey != null) {
-                results.append(" accesskey=\"");
-                results.append(accesskey);
-                results.append("\"");
+                prepareAttribute( results, "accessKey", accesskey );
             }
             if (accept != null) {
-                results.append(" accept=\"");
-                results.append(accept);
-                results.append("\"");
+                prepareAttribute( results, "accept", accept );
             }
 
             String maxToUse = maxlength;
@@ -154,9 +149,7 @@
                 maxToUse = "" + myInput.getMaxLength();
             }
             if (maxToUse != null) {
-                results.append(" maxlength=\"");
-                results.append(maxToUse);
-                results.append("\"");
+                prepareAttribute( results, "maxlength", maxToUse );
             }
 
             String colsToUse = cols;
@@ -165,20 +158,15 @@
                 colsToUse = "" + myInput.getDisplayLength();
             }
             if (colsToUse != null) {
-                results.append(" size=\"");
-                results.append(colsToUse);
-                results.append("\"");
+                prepareAttribute( results, "size", colsToUse );
             }
             if (tabindex != null) {
-                results.append(" tabindex=\"");
-                results.append(tabindex);
-                results.append("\"");
+                prepareAttribute( results, "tabindex", tabindex );
             }
 
-            results.append(" value=\"");
-
             if (value != null) {
                 results.append(value);
+                prepareAttribute( results, "value", value );
             } else if (redisplay || !"password".equals(type)) {
                 Object value = myInput.getDefaultValue();
 
@@ -187,6 +175,7 @@
                 }
 
                 results.append(value.toString());
+                prepareAttribute( results, "value", value );
             }
 
             value = null;
Index: ExButtonTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java -u -r1.8 -r1.9
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExButtonTag.java
@@ -71,7 +71,6 @@
 import org.apache.struts.taglib.TagUtils;
 import org.apache.struts.taglib.html.ButtonTag;
 import org.apache.struts.taglib.html.Constants;
-import org.apache.struts.util.ResponseUtils;
 
 import com.jcorporate.expresso.core.controller.ControllerElement;
 import com.jcorporate.expresso.core.controller.Transition;
@@ -133,7 +132,7 @@
         if (params != null) {
 
             // Render this element to our writer
-            ResponseUtils.write(pageContext,
+            TagUtils.getInstance().write(pageContext,
                     myTransition.getHTMLParamString() + "\n");
         }
 
@@ -151,27 +150,22 @@
 
         // Generate an HTML element
         StringBuffer results = new StringBuffer();
-        results.append("<button type=\"submit\"");
+        results.append("<button ");
+
+        prepareAttribute( results, "type", "submit" );
 
         if (property != null) {
-            results.append(" name=\"button_");
-            results.append(myTransition.getName());
-            results.append("\"");
+            prepareAttribute( results, "name", "button_"+myTransition.getName() );
         }
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey );
         }
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex);
         }
 
-        results.append(" value=\"");
-        results.append(label);
-        results.append("\"");
+        prepareAttribute( results, "value", label);
+        // prepareAttribute( results, "", "");
         results.append(prepareEventHandlers());
         results.append(prepareStyles());
         results.append(">");
Index: ExCheckboxTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExCheckboxTag.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExCheckboxTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExCheckboxTag.java -u -r1.12 -r1.13
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExCheckboxTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExCheckboxTag.java
@@ -125,27 +125,22 @@
         }
 
         // Create an appropriate "input" element based on our parameters
-        StringBuffer results = new StringBuffer("<input type=\"checkbox\"");
-        results.append(" name=\"");
-        results.append(myInput.getName());
-        results.append("\"");
+        StringBuffer results = new StringBuffer("<input ");
+        prepareAttribute( results, "type", "checkbox");
+        prepareAttribute( results, "name", myInput.getName());
 
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey);
         }
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex);
         }
 
-        results.append(" value=\"");
-
         if (value == null) {
+            prepareAttribute( results, "value", "Y" );
             results.append("Y");
         } else {
+            prepareAttribute( results, "value", value );
             results.append(value);
         }
 
@@ -157,6 +152,7 @@
                 checked.equalsIgnoreCase("yes") ||
                 checked.equalsIgnoreCase("on") || checked.equalsIgnoreCase("y") ||
                 checked.equalsIgnoreCase(value)) {
+            // prepareAttribute( results, "checked", "checked");
             results.append(" checked=\"checked\"");
         }
 
@@ -170,6 +166,6 @@
         // Continue processing this page
         this.text = null;
 
-        return (EVAL_BODY_TAG);
+        return (EVAL_BODY_INCLUDE);
     }
 }
Index: ExImageTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java -u -r1.11 -r1.12
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExImageTag.java
@@ -72,7 +72,6 @@
 import org.apache.struts.taglib.TagUtils;
 import org.apache.struts.taglib.html.Constants;
 import org.apache.struts.taglib.html.ImageTag;
-import org.apache.struts.util.ResponseUtils;
 
 import com.jcorporate.expresso.core.controller.ControllerElement;
 import com.jcorporate.expresso.core.controller.Transition;
@@ -136,7 +135,7 @@
         if (params != null) {
 
             // Render this element to our writer
-            ResponseUtils.write(pageContext,
+            TagUtils.getInstance().write(pageContext,
                     myTransition.getHTMLParamString() + "\n");
         }
 
@@ -186,38 +185,26 @@
         tmp = src();
 
         if (tmp != null) {
-            results.append(" src=\"");
-            results.append(response.encodeURL(tmp));
-            results.append("\"");
+            prepareAttribute( results, "src", response.encodeURL(tmp));
         }
 
         // tmp = alt();  Removed since Struts 1.1
         tmp = null;
 
         if (tmp != null) {
-            results.append(" alt=\"");
-            results.append(tmp);
-            results.append("\"");
+            prepareAttribute( results, "alt", tmp );
         }
         if (border != null) {
-            results.append(" border=\"");
-            results.append(border);
-            results.append("\"");
+            prepareAttribute( results, "border", border);
         }
         if (value != null) {
-            results.append(" value=\"");
-            results.append(value);
-            results.append("\"");
+            prepareAttribute( results, "value", value);
         }
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey);
         }
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex);
         }
 
         results.append(prepareEventHandlers());
Index: ExTextareaTag.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExTextareaTag.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExTextareaTag.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExTextareaTag.java -u -r1.11 -r1.12
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExTextareaTag.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/ext/struts/taglib/html/ExTextareaTag.java
@@ -124,19 +124,13 @@
 
         // Create an appropriate "input" element based on our parameters
         StringBuffer results = new StringBuffer("<textarea");
-        results.append(" name=\"");
-        results.append(myInput.getName());
-        results.append("\"");
+        prepareAttribute( results, "name", myInput.getName() );
 
         if (accesskey != null) {
-            results.append(" accesskey=\"");
-            results.append(accesskey);
-            results.append("\"");
+            prepareAttribute( results, "accesskey", accesskey );
         }
         if (tabindex != null) {
-            results.append(" tabindex=\"");
-            results.append(tabindex);
-            results.append("\"");
+            prepareAttribute( results, "tabindex", tabindex );
         }
 
         String colsToUse = cols;
@@ -145,9 +139,7 @@
             colsToUse = "" + myInput.getDisplayLength();
         }
         if (colsToUse != null) {
-            results.append(" cols=\"");
-            results.append(colsToUse);
-            results.append("\"");
+            prepareAttribute( results, "cols", colsToUse );
         }
 
         String rowsToUse = rows;
@@ -156,9 +148,7 @@
             rowsToUse = "" + myInput.getLines();
         }
         if (rowsToUse != null) {
-            results.append(" rows=\"");
-            results.append(rowsToUse);
-            results.append("\"");
+            prepareAttribute( results, "rows", rowsToUse );
         }
 
         results.append(prepareEventHandlers());


More information about the cvs mailing list