morciuch 2003/05/28 13:03:31
Modified: docs/site changes.html
webapp/WEB-INF/templates/jsp/portlets/html
JSP1_1andJetspeedTagLib.jsp
JSP1_2andJetspeedTagLib.jsp
parameter-demo-portlet.jsp
webapp/WEB-INF/templates/jsp/tld template.tld
xdocs changes.xml
Added: src/java/org/apache/jetspeed/services/jsp/tags
JetspeedParameterStyleTag.java
Log:
Added parameter style jsp tag (see Bugzilla issue# 20313):
Revision Changes Path
1.147 +3 -0 jakarta-jetspeed/docs/site/changes.html
Index: changes.html
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/docs/site/changes.html,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -r1.146 -r1.147
--- changes.html 27 May 2003 23:58:41 -0000 1.146
+++ changes.html 28 May 2003 20:03:30 -0000 1.147
@@ -135,6 +135,9 @@
</li>
-->
<li>
+ Add - Bug # 20313 - 2003/05/28 - Added parameter style jsp tag (MO)
+</li>
+<li>
Fix - Bug # 7667 - 2003/05/27 - Fixing various inconsistencies in the portlet
set customizer (MO)
</li>
<li>
1.1
jakarta-jetspeed/src/java/org/apache/jetspeed/services/jsp/tags/JetspeedParameterStyleTag.java
Index: JetspeedParameterStyleTag.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache Jetspeed" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache" or
* "Apache Jetspeed", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.jetspeed.services.jsp.tags;
// java classes
import java.util.Hashtable;
import java.util.StringTokenizer;
// jsp api
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
// Turbine Classes
import org.apache.turbine.util.RunData;
import org.apache.turbine.util.Log;
import org.apache.turbine.services.jsp.JspService;
// jetspeed
import org.apache.jetspeed.modules.ParameterLoader;
import org.apache.jetspeed.services.security.PortalResource;
import org.apache.jetspeed.om.registry.Parameter;
import org.apache.jetspeed.om.registry.PortletEntry;
import org.apache.jetspeed.services.JetspeedSecurity;
import org.apache.jetspeed.om.security.JetspeedUser;
import org.apache.jetspeed.services.Registry;
/**
* Supporting class for the parameter style tag.
* Sends a parameter rendered using specific style to the output stream.
*
* The following tag attributes are supported:
*
* <UL>
* <LI><code>name</code>: parameter name (required).</li>
* <LI><code>style</code>: parameter style name (required)</LI>
* <LI><code>value</code>: parameter current value</LI>
* <LI><code>portlet</code>: portlet name to check security against</LI>
* </UL>
* <p>Note: tag body may also contain parameter style options in format:
option1=value1;optionN=valueN. Check
* documentation for individual parameter style to see what options are supported</p>
* <p>Note: Use care when specifying style options in the tag body - the body is not
cleansed to remove
* embedded carriage returns and tabs.</p>
* Examples:
* <UL>
* <LI><code><jetspeed:parameterStyle name="portlet-list"
style="RegistryEntryListBox"/></CODE>
* <LI><code><jetspeed:parameterStyle name="skin-list"
style="RegistryEntryListBox">registry=Skin</jetspeed:parameterStyle/></CODE>
* <LI><code><jetspeed:parameterStyle name="control-list"
style="RegistryEntryListBox"
value="TabControl">registry=PortletControl</jetspeed:parameterStyle/></CODE>
* </UL>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Mark Orciuch</a>
* @version $Id: JetspeedParameterStyleTag.java,v 1.1 2003/05/28 20:03:30 morciuch
Exp $
*/
public class JetspeedParameterStyleTag extends BodyTagSupport
{
/**
* name parameter defines parameter name
*/
private String name = null;
/**
* name parameter defines parameter style
*/
private String style = null;
/**
* name parameter defines current parameter style value
*/
private String value = null;
/**
* name parameter defines portlet name to check security against
*/
private String portlet = null;
/**
* The setter for name parameter
*
* @param value
*/
public void setName(String value)
{
this.name = value;
}
/**
* The setter for value parameter
*
* @param value
*/
public void setValue(String value)
{
this.value = value;
}
/**
* The setter for syle parameter
*
* @param value
*/
public void setStyle(String value)
{
this.style = value;
}
/**
* The setter for value parameter
*
* @param value
*/
public void setPortlet(String value)
{
this.portlet = value;
}
/**
*
* @return code
* @exception JspException
*/
public int doStartTag() throws JspException
{
return EVAL_BODY_TAG;
}
/**
*
* @return code
* @exception JspException
*/
public int doEndTag() throws JspException
{
RunData data = (RunData) pageContext.getAttribute(JspService.RUNDATA,
PageContext.REQUEST_SCOPE);
String result = null;
try
{
// See if body contains any parameter options
String body = this.getBodyContent().getString();
Hashtable options = new Hashtable();
if (body != null && !body.trim().equalsIgnoreCase(""))
{
StringTokenizer st = new StringTokenizer(body, ";");
String prefix = this.name + ".style.";
while (st.hasMoreTokens())
{
StringTokenizer pair = new StringTokenizer(st.nextToken(), "=");
if (pair.countTokens() == 2)
{
options.put(prefix + pair.nextToken().trim(),
pair.nextToken().trim());
}
}
}
boolean canAccess = true;
// If portlet name is specified, it will be used to check security for
the parameter
if (this.portlet != null)
{
// Retrieve registry entry and its parameter
PortletEntry entry = (PortletEntry)
Registry.getEntry(Registry.PORTLET, this.portlet);
Parameter param = entry.getParameter(this.name);
// Verify security for the parameter
canAccess = JetspeedSecurity.checkPermission((JetspeedUser)
data.getUser(),
new
PortalResource(entry, param),
JetspeedSecurity.PERMISSION_CUSTOMIZE);
}
if (canAccess)
{
result = ParameterLoader.getInstance().eval(data,
this.style,
this.name,
this.value,
options);
}
pageContext.getOut().print(result);
}
catch (Exception e)
{
result = "<input type=\"text\" name=\"" + this.name + "\" value=\"" +
this.value + "\"";
String message = "Error processing portlet (PortletTag): [" + name + "]";
Log.error(message, e);
try
{
pageContext.getOut().print(result);
}
catch (java.io.IOException ioe)
{
}
}
return EVAL_PAGE;
}
}
1.6 +32 -0
jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JSP1_1andJetspeedTagLib.jsp
Index: JSP1_1andJetspeedTagLib.jsp
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JSP1_1andJetspeedTagLib.jsp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- JSP1_1andJetspeedTagLib.jsp 29 Nov 2002 19:26:10 -0000 1.5
+++ JSP1_1andJetspeedTagLib.jsp 28 May 2003 20:03:30 -0000 1.6
@@ -177,6 +177,38 @@
</tr>
</table>
+ <center><h2>jetspeed:parameterStyle</h2></center>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>style</th>
+ <th>value</th>
+ <th>options</th>
+ <th>Returned Value</th>
+ </tr>
+ <tr>
+ <td>portlet-list</td>
+ <td>RegistryEntryListBox</td>
+ <td> </td>
+ <td> </td>
+ <td><jetspeed:parameterStyle name="porlet-list"
style="RegistryEntryListBox"/></td>
+ </tr>
+ <tr>
+ <td>skin-list</td>
+ <td>RegistryEntryListBox</td>
+ <td> </td>
+ <td>registry=Skin;set-label=true</td>
+ <td><jetspeed:parameterStyle name="skin-list"
style="RegistryEntryListBox">registry=Skin</jetspeed:parameterStyle></td>
+ </tr>
+ <tr>
+ <td>control-list</td>
+ <td>RegistryEntryListBox</td>
+ <td>TabControl</td>
+ <td>registry=PortletControl;set-label=true</td>
+ <td><jetspeed:parameterStyle name="control-list"
style="RegistryEntryListBox"
value="TabControl">registry=PortletControl;set-label=true</jetspeed:parameterStyle></td>
+ </tr>
+ </table>
+
<hr/>
<center><h1>HTTP Request Header</h1></center>
<table>
1.5 +32 -0
jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JSP1_2andJetspeedTagLib.jsp
Index: JSP1_2andJetspeedTagLib.jsp
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/JSP1_2andJetspeedTagLib.jsp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- JSP1_2andJetspeedTagLib.jsp 30 Nov 2002 19:03:24 -0000 1.4
+++ JSP1_2andJetspeedTagLib.jsp 28 May 2003 20:03:30 -0000 1.5
@@ -177,6 +177,38 @@
</tr>
</table>
+ <center><h2>jetspeed:parameterStyle</h2></center>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>style</th>
+ <th>value</th>
+ <th>options</th>
+ <th>Returned Value</th>
+ </tr>
+ <tr>
+ <td>portlet-list</td>
+ <td>RegistryEntryListBox</td>
+ <td> </td>
+ <td> </td>
+ <td><jetspeed:parameterStyle name="porlet-list"
style="RegistryEntryListBox"/></td>
+ </tr>
+ <tr>
+ <td>skin-list</td>
+ <td>RegistryEntryListBox</td>
+ <td> </td>
+ <td>registry=Skin;set-label=true</td>
+ <td><jetspeed:parameterStyle name="skin-list"
style="RegistryEntryListBox">registry=Skin</jetspeed:parameterStyle></td>
+ </tr>
+ <tr>
+ <td>control-list</td>
+ <td>RegistryEntryListBox</td>
+ <td>TabControl</td>
+ <td>registry=PortletControl;set-label=true</td>
+ <td><jetspeed:parameterStyle name="control-list"
style="RegistryEntryListBox"
value="TabControl">registry=PortletControl;set-label=true</jetspeed:parameterStyle></td>
+ </tr>
+ </table>
+
<hr/>
<center><h1>HTTP Request Header</h1></center>
<table>
1.3 +3 -7
jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/parameter-demo-portlet.jsp
Index: parameter-demo-portlet.jsp
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/jsp/portlets/html/parameter-demo-portlet.jsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- parameter-demo-portlet.jsp 25 Apr 2003 19:02:25 -0000 1.2
+++ parameter-demo-portlet.jsp 28 May 2003 20:03:30 -0000 1.3
@@ -14,7 +14,6 @@
<%@ page import = "org.apache.turbine.util.RunData" %>
<%@ page import = "org.apache.jetspeed.portal.Portlet" %>
-<%@ page import = "org.apache.jetspeed.modules.ParameterLoader" %>
<%@ page import = "java.util.Hashtable" %>
<%@ page import = "java.util.Enumeration" %>
@@ -49,11 +48,8 @@
</TABLE>
<P>
-Here's an example of using parameter style within the body of a portlet:
+Here's an example of using parameter styles within the body of a portlet:
<P>
-<%
-Hashtable map = new Hashtable();
-map.put("skin-list.style.registry", "Skin");
-%>
-Available skins: <%=ParameterLoader.getInstance().eval(data,
"RegistryEntryListBox","skin-list", null, map)%>
+Available skins: <jetspeed:parameterStyle name="skin-list"
style="RegistryEntryListBox">registry=Skin;</jetspeed:parameterStyle>
+Available controls: <jetspeed:parameterStyle name="control-list" value="TabControl"
style="RegistryEntryListBox">registry=PortletControl;</jetspeed:parameterStyle>
1.15 +25 -0 jakarta-jetspeed/webapp/WEB-INF/templates/jsp/tld/template.tld
Index: template.tld
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/jsp/tld/template.tld,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- template.tld 25 Apr 2003 20:43:23 -0000 1.14
+++ template.tld 28 May 2003 20:03:30 -0000 1.15
@@ -166,4 +166,29 @@
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
+ <tag>
+ <name>parameterStyle</name>
+
<tagclass>org.apache.jetspeed.services.jsp.tags.JetspeedParameterStyleTag</tagclass>
+ <bodycontent>JSP</bodycontent>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>portlet</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
</taglib>
1.166 +4 -1 jakarta-jetspeed/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/xdocs/changes.xml,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -r1.165 -r1.166
--- changes.xml 27 May 2003 23:58:42 -0000 1.165
+++ changes.xml 28 May 2003 20:03:30 -0000 1.166
@@ -24,6 +24,9 @@
</li>
-->
<li>
+ Add - Bug # 20313 - 2003/05/28 - Added parameter style jsp tag (MO)
+</li>
+<li>
Fix - Bug # 7667 - 2003/05/27 - Fixing various inconsistencies in the portlet
set customizer (MO)
</li>
<li>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]