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>