You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2007/03/24 20:10:02 UTC

svn commit: r522094 - in /struts/struts2/trunk: core/src/site/resources/tags/ajax/ plugins/dojo/src/main/java/org/apache/struts2/dojo/components/ plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/ plugins/dojo/src/main/resources/template/...

Author: musachy
Date: Sat Mar 24 12:10:01 2007
New Revision: 522094

URL: http://svn.apache.org/viewvc?view=rev&rev=522094
Log:
WW-1800  
* Add "compressed" and "baseRelativePath" attributes to the head tag on the Dojo plugin
* Ignore inherited tag attributes on head tag

Modified:
    struts/struts2/trunk/core/src/site/resources/tags/ajax/head.html
    struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java
    struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java
    struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/head.ftl
    struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java
    struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt

Modified: struts/struts2/trunk/core/src/site/resources/tags/ajax/head.html
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/ajax/head.html?view=diff&rev=522094&r1=522093&r2=522094
==============================================================================
--- struts/struts2/trunk/core/src/site/resources/tags/ajax/head.html (original)
+++ struts/struts2/trunk/core/src/site/resources/tags/ajax/head.html Sat Mar 24 12:10:01 2007
@@ -28,28 +28,20 @@
 				<th align="left" valign="top"><h4>Description</h4></th>
 			</tr>
 				<tr>
-					<td align="left" valign="top">accesskey</td>
+					<td align="left" valign="top">baseRelativePath</td>
 					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
+					<td align="left" valign="top">/struts/dojo</td>
 					<td align="left" valign="top">true</td>
 					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
+					<td align="left" valign="top">Context relative path of Dojo distribution folder</td>
 				</tr>
 				<tr>
-					<td align="left" valign="top">cssClass</td>
+					<td align="left" valign="top">compressed</td>
 					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
 					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">The css class to use for element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">cssStyle</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
 					<td align="left" valign="top">true</td>
 					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">The css style definitions for element ro use</td>
+					<td align="left" valign="top">Use compressed version of dojo.js</td>
 				</tr>
 				<tr>
 					<td align="left" valign="top">debug</td>
@@ -58,238 +50,6 @@
 					<td align="left" valign="top">true</td>
 					<td align="left" valign="top">String</td>
 					<td align="left" valign="top">Set to true to enable Dojo debug messages</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">disabled</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">id</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">key</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">label</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">labelposition</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Define label position of form element (top/left)</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">name</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">The name to set for element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onblur</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onchange</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onclick</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">ondblclick</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onfocus</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onkeydown</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onkeypress</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onkeyup</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onmousedown</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onmousemove</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onmouseout</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onmouseover</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onmouseup</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">onselect</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">required</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">Boolean</td>
-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">requiredposition</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Define required position of required form element (left|right)</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">tabindex</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">template</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">templateDir</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">The template directory.</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">title</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">tooltip</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the tooltip of this particular component</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">tooltipConfig</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Set the tooltip configuration</td>
-				</tr>
-				<tr>
-					<td align="left" valign="top">value</td>
-					<td align="left" valign="top">false</td>
-					<td align="left" valign="top"></td>
-					<td align="left" valign="top">true</td>
-					<td align="left" valign="top">String</td>
-					<td align="left" valign="top">Preset the value of input element.</td>
 				</tr>
 		</table>
 		<!-- END SNIPPET: tagattributes -->

Modified: struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java?view=diff&rev=522094&r1=522093&r2=522094
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java Sat Mar 24 12:10:01 2007
@@ -66,11 +66,14 @@
  */
 @StrutsTag(name="head", tldBodyContent="empty", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.HeadTag",
     description="Render a chunk of HEAD for your HTML file")
+@StrutsTagSkipInheritance
 public class Head extends org.apache.struts2.components.Head {
     public static final String TEMPLATE = "head";
 
-    private boolean debug;
-
+    private String debug;
+    private String compressed;
+    private String baseRelativePath;
+    
     public Head(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
     }
@@ -81,8 +84,13 @@
 
     public void evaluateParams() {
         super.evaluateParams();
-
-        addParameter("debug", Boolean.valueOf(debug).toString());
+        
+        if(this.debug != null)
+            addParameter("debug", findValue(this.debug, Boolean.class));
+        if(this.compressed != null)
+            addParameter("compressed", findValue(this.compressed, Boolean.class));
+        if(this.baseRelativePath != null)
+            addParameter("baseRelativePath", findString(this.baseRelativePath));
     }
 
     @Override
@@ -97,11 +105,21 @@
     }
     
     public boolean isDebug() {
-        return debug;
+        return debug != null && Boolean.parseBoolean(debug);
     }
 
     @StrutsTagAttribute(description="Set to true to enable Dojo debug messages", defaultValue="false")
-    public void setDebug(boolean debug) {
+    public void setDebug(String debug) {
         this.debug = debug;
+    }
+
+    @StrutsTagAttribute(description="Use compressed version of dojo.js", defaultValue="true")
+    public void setCompressed(String compressed) {
+        this.compressed = compressed;
+    }
+
+    @StrutsTagAttribute(description="Context relative path of Dojo distribution folder", defaultValue="/struts/dojo")
+    public void setBaseRelativePath(String baseRelativePath) {
+        this.baseRelativePath = baseRelativePath;
     }
 }

Modified: struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java?view=diff&rev=522094&r1=522093&r2=522094
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java Sat Mar 24 12:10:01 2007
@@ -37,6 +37,8 @@
     private static final long serialVersionUID = 6876765769175246030L;
 
     private String debug;
+    private String compressed;
+    private String baseRelativePath;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Head(stack, req, res);
@@ -44,12 +46,22 @@
 
     protected void populateParams() {
         super.populateParams();
-        if (debug != null) {
-            ((Head) component).setDebug(Boolean.valueOf(debug).booleanValue());
-        }
+        
+        Head head = (Head) component;
+        head.setDebug(debug);
+        head.setCompressed(compressed);
+        head.setBaseRelativePath(baseRelativePath);
     }
 
     public void setDebug(String debug) {
         this.debug = debug;
+    }
+
+    public void setBaseRelativePath(String baseRelativePath) {
+        this.baseRelativePath = baseRelativePath;
+    }
+
+    public void setCompressed(String compressed) {
+        this.compressed = compressed;
     }
 }

Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/head.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/head.ftl?view=diff&rev=522094&r1=522093&r2=522094
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/head.ftl (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/resources/template/ajax/head.ftl Sat Mar 24 12:10:01 2007
@@ -1,14 +1,26 @@
 <script language="JavaScript" type="text/javascript">
     // Dojo configuration
     djConfig = {
-        baseRelativePath: "<@s.url includeParams='none' value='/struts/dojo' includeParams="none" encode='false'/>",
         isDebug: ${parameters.debug?default(false)?string},
         bindEncoding: "${parameters.encoding}",
         debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
     };
 </script>
-<script language="JavaScript" type="text/javascript"
-        src="<@s.url value='/struts/dojo/dojo.js' includeParams='none' encode='false'  />"></script>
+
+<#if parameters.compressed?default(true)>
+  <#assign dojoFile="dojo.js">
+<#else>
+  <#assign dojoFile="dojo.js.uncompressed.js">
+</#if>        
+
+<#if parameters.baseRelativePath?if_exists != "">
+  <script language="JavaScript" type="text/javascript"
+        src="<@s.url value='${parameters.baseRelativePath}/${dojoFile}' includeParams='none' encode='false'  />"></script>
+<#else>
+  <script language="JavaScript" type="text/javascript"
+        src="<@s.url value='/struts/dojo/${dojoFile}' includeParams='none' encode='false'  />"></script>
+</#if>  
+
 <script language="JavaScript" type="text/javascript"
         src="<@s.url value='/struts/ajax/dojoRequire.js' includeParams='none' encode='false'  />"></script>
 <script language="JavaScript" type="text/javascript"

Modified: struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java?view=diff&rev=522094&r1=522093&r2=522094
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java (original)
+++ struts/struts2/trunk/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java Sat Mar 24 12:10:01 2007
@@ -34,6 +34,9 @@
         HeadTag tag = new HeadTag();
         tag.setPageContext(pageContext);
         
+        tag.setDebug("true");
+        tag.setCompressed("false");
+        tag.setBaseRelativePath("/path");
         tag.doStartTag();
         tag.doEndTag();
 

Modified: struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt?view=diff&rev=522094&r1=522093&r2=522094
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt (original)
+++ struts/struts2/trunk/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt Sat Mar 24 12:10:01 2007
@@ -1,14 +1,13 @@
 <script language="JavaScript" type="text/javascript">
 	// Dojo configuration
 	djConfig={
-		baseRelativePath: "/struts/dojo",
-		isDebug: false,
+		isDebug: true,
 		bindEncoding: "ISO-8859-1",
 		debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
 		};
 </script>
 
-<script language="JavaScript" type="text/javascript" src="/struts/dojo/dojo.js">
+<script language="JavaScript" type="text/javascript" src="/path/dojo.js.uncompressed.js">
 </script>
 
 <script language="JavaScript" type="text/javascript" src="/struts/ajax/dojoRequire.js">