Author: dolander
Date: Wed Feb 16 18:58:00 2005
New Revision: 154113

URL: http://svn.apache.org/viewcvs?view=rev&rev=154113
Log:
Jira 313 - Added support for the <netui:parameter> and <netui:parameterMap> 
to set parameters on the selection action for a TreeItem.

Add BVT coreWeb/tree/params


Added:
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/
    
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/Controller.jpf
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/index.jsp
    
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/TreeParams.xml
Modified:
    
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeElement.java
    
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
    
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeRenderer.java
    
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/tree/TreeElement.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeElement.java?view=diff&r1=154112&r2=154113
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeElement.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeElement.java
 Wed Feb 16 18:58:00 2005
@@ -17,14 +17,19 @@
  */
 package org.apache.beehive.netui.tags.tree;
 
+import org.apache.beehive.netui.tags.html.IUrlParams;
+import org.apache.beehive.netui.util.ParamHelper;
+
 import javax.servlet.ServletRequest;
+import javax.servlet.jsp.JspException;
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.HashMap;
 
 /**
  * An individual node of a <code>Tree</code>, and rendered by that Tree 
instance.
  */
-public class TreeElement implements Serializable
+public class TreeElement implements IUrlParams, Serializable
 {
     // These are the bits for the boolean state.  The boolean state is stored
     // in the _boolState variable.  All boolean values should be accessed 
through
@@ -367,6 +372,21 @@
         }
     }
 
+    public void addParameter(String name, Object value, String facet) throws 
JspException
+    {
+        // use this to force the creation of the _info variable.
+        ExtendedInfo info = getInfo(this);
+        if (info._params == null) {
+            info._params = new HashMap();
+        }
+        ParamHelper.addParam(info._params, name, value);
+    }
+
+    public HashMap getParams()
+    {
+        return (_info == null) ? null : _info._params;
+    }
+
     //***************************  READ-ONLY PROPERTIES SET BY INTERNAL 
METHODS **************************
 
     /**
@@ -810,6 +830,7 @@
         public String _tagId;           // The tagId of the node
         public String _target;          // The window target for the hyperlink 
identified
         public String _action;          // The action invoked if this node is 
selected by the user.
+        public HashMap _params;         // params to be applied to the 
selection action
         public InheritableState _state; // The inheritable state from the tree
     }
 }

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java?view=diff&r1=154112&r2=154113
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
 Wed Feb 16 18:58:00 2005
@@ -18,6 +18,7 @@
 package org.apache.beehive.netui.tags.tree;
 
 import org.apache.beehive.netui.tags.AbstractSimpleTag;
+import org.apache.beehive.netui.tags.html.IUrlParams;
 import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
 import org.apache.beehive.netui.util.Bundle;
 
@@ -48,7 +49,7 @@
  * @see Tree
  * @see org.apache.beehive.netui.tags.tree.TreeElement
  */
-public class TreeItem extends AbstractSimpleTag
+public class TreeItem extends AbstractSimpleTag implements IUrlParams
 {
     private String _action;           // The action raised when the TreeItem 
is selected
     private String _clientAction;     // A client action that may run instead 
of the action.
@@ -266,6 +267,13 @@
     {
         _target = target;
     }
+
+
+    public void addParameter(String name, Object value, String facet) throws 
JspException
+    {
+        _treeElement.addParameter(name,value,facet);
+    }
+
 
     //************************************* TAG METHODS 
****************************************************************
 

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeRenderer.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeRenderer.java?view=diff&r1=154112&r2=154113
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeRenderer.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeRenderer.java
 Wed Feb 16 18:58:00 2005
@@ -275,10 +275,16 @@
                     action = state.getSelectionAction();
             }
 
-            // process the action into a URL
-            //PageContext pageContext = getPageContext();
+            // create the selection link
             if (action != null && selectionLink == null) {
-                HashMap params = new HashMap();
+
+                HashMap params = null;
+                boolean remove = false;
+                params = node.getParams();
+                if (params == null) {
+                    params = new HashMap();
+                    remove = true;
+                }
                 params.put(TreeElement.SELECTED_NODE, nodeName);
                 if (_trs.tagId != null) {
                     params.put(TreeElement.TREE_ID, _trs.tagId);
@@ -300,6 +306,17 @@
                     String s = Bundle.getString("Tags_Tree_Node_URLException",
                             new Object[]{action, e.getMessage()});
                     registerTagError(s, e);
+                }
+
+                if (remove) {
+                    params.remove(TreeElement.SELECTED_NODE);
+                    if (_trs.tagId != null) {
+                        params.remove(TreeElement.TREE_ID);
+                    }
+
+                    if (scope != null) {
+                        params.remove(ScopedServletUtils.SCOPE_ID_PARAM);
+                    }
                 }
 
                 if (uri != null) {

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/Controller.jpf
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/Controller.jpf?view=auto&rev=154113
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/Controller.jpf
 (added)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/Controller.jpf
 Wed Feb 16 18:58:00 2005
@@ -0,0 +1,83 @@
+package tree.params;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.tags.tree.ITreeRootElement;
+import org.apache.beehive.netui.tags.tree.TreeElement;
+import org.apache.beehive.netui.tags.tree.TreeRenderState;
+import org.apache.beehive.netui.pageflow.requeststate.NameService;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpSession;
+import org.apache.beehive.netui.pageflow.Forward;
+
[EMAIL PROTECTED] (
+)
+public class Controller extends PageFlowController
+{
+    private TreeElement _root;
+    private String _action;
+
+    public TreeElement getRoot()
+    {
+        return _root;
+    }
+    public void setRoot(TreeElement tree) 
+    {
+       _root = tree;
+    }
+    public String getAction() {
+       return _action;
+    }
+
+    @Jpf.Action(
+       forwards={
+        @Jpf.Forward(name="index", path="index.jsp")
+       }
+    )
+    protected Forward begin()
+    {
+        NameService ns = NameService.instance(getRequest().getSession());
+       ns.debugSetNameIntValue(791);
+       _action = "begin";
+        return new Forward("index");
+    }
+
+    @Jpf.Action(
+        forwards={
+           @Jpf.Forward(name="index", path="index.jsp")
+        }
+    )
+    protected Forward reset()
+    {
+        _root = null;
+       _action = "reset";
+        return new Forward("index");
+    }
+
+    @Jpf.Action(
+        forwards={
+           @Jpf.Forward(name="index", path="index.jsp")
+        }
+    )
+    protected Forward select()
+    {
+       _action = getRequest().getParameter("treeItemValue");;
+        return new Forward("index");
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is created.
+     */
+    protected void onCreate()
+    {
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is destroyed.
+     */
+    protected void onDestroy(HttpSession session)
+    {
+    }
+}
+

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/index.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/index.jsp?view=auto&rev=154113
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/index.jsp 
(added)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tree/params/index.jsp 
Wed Feb 16 18:58:00 2005
@@ -0,0 +1,65 @@
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<netui:html>
+<head>
+    <title>Setting an Params on a treeItem</title>
+</head>
+<netui:body>
+<h4>Settiing Params on a TreeItem</h4>
+<p style="color:green">This is a test of setting the a parameter on treeItems
+</p>
+<netui:anchor action="reset">Reset</netui:anchor><br>
+Action: ${pageFlow.action}<br>
+<!--Begin scriptContainer-->
+<div style="border: thin solid;height: 300px;">
+<netui:scriptContainer>
+    <netui:scriptHeader/>
+    <netui:tree dataSource="pageFlow.root"
+        selectionAction="select" tagId="tree" runAtClient="true"
+        selectionStyle="background-color: #FFD185; font-color: #FFFFFF; 
text-decoration: none;"
+       unselectStyle="text-decoration: none"
+    >
+            <netui:treeItem expanded="true">
+                <netui:treeLabel>0</netui:treeLabel>
+               <netui:parameter name="treeItemValue" value="From 0"/>
+                <netui:treeItem expanded="false" expandOnServer="true">
+                    <netui:treeLabel>0.0</netui:treeLabel>
+                   <netui:parameter name="treeItemValue" value="From 0.0"/>
+                    <netui:treeItem expanded="false">
+                        <netui:treeLabel>0.0.0</netui:treeLabel>
+                        <netui:parameter name="treeItemValue" value="From 
0.0.0"/>
+                        <netui:treeItem icon="alien.gif">0.0.0.0
+                           <netui:parameter name="treeItemValue" value="From 
0.0.0.0"/>
+                       </netui:treeItem>
+                        <netui:treeItem icon="alien.gif">0.0.0.1
+                           <netui:parameter name="treeItemValue" value="From 
0.0.0.1"/>
+                       </netui:treeItem>
+                    </netui:treeItem>
+                </netui:treeItem>
+                <netui:treeItem expanded="false" expandOnServer="true">
+                    <netui:treeLabel>0.1</netui:treeLabel>
+                        <netui:parameter name="treeItemValue" value="From 
0.1"/>
+                    <netui:treeItem icon="cool.gif">0.1.0
+                        <netui:parameter name="treeItemValue" value="From 
0.1.0"/>
+                   </netui:treeItem>
+                    <netui:treeItem icon="cool.gif">0.1.1
+                        <netui:parameter name="treeItemValue" value="From 
0.1.1"/>
+                   </netui:treeItem>
+                </netui:treeItem>
+                <netui:treeItem expanded="false" expandOnServer="true">
+                    <netui:treeLabel>0.2</netui:treeLabel>
+                        <netui:parameter name="treeItemValue" value="From 
0.2"/>
+                    <netui:treeItem icon="cool.gif">0.2.0
+                        <netui:parameter name="treeItemValue" value="From 
0.2.0"/>
+                   </netui:treeItem>
+                    <netui:treeItem icon="cool.gif">0.2.1
+                        <netui:parameter name="treeItemValue" value="From 
0.2.1"/>
+                   </netui:treeItem>
+               </netui:treeItem>
+            </netui:treeItem>
+    </netui:tree>
+
+</netui:scriptContainer>
+</div>
+<!--End scriptContainer-->
+   </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=154112&r2=154113
==============================================================================
--- 
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
 Wed Feb 16 18:58:00 2005
@@ -6741,6 +6741,21 @@
          </features>
       </test>
       <test>
+         <name>TreeParams</name>
+         <description>Use the Parameter tag with the TreeItem</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>bvt.struts11</category>
+            <category>trees</category>
+         </categories>
+         <features>
+            <feature>Tree</feature>
+            <feature>runAtClient</feature>
+            <feature>Parameter</feature>
+         </features>
+      </test>
+      <test>
          <name>UpdateFormFromNested</name>
          <description>Test of updating a form with values obtained from a 
nested page flow.</description>
          <webapp>coreWeb</webapp>


Reply via email to