com.ibm.wps.portlets.menu
Class XMIMenuTreePortlet
java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
com.ibm.wps.pe.pc.legacy.cache.CacheablePortlet
org.apache.jetspeed.portlet.Portlet
org.apache.jetspeed.portlet.PortletAdapter
com.ibm.wps.portlets.menu.XMIMenuTreePortlet
- All Implemented Interfaces:
- com.ibm.websphere.servlet.cache.CacheableServlet, MenuProvider, java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, org.apache.jetspeed.portlet.PortletSessionListener
Deprecated. since 6.0. Support of the IBM portlet API may be removed in a future
release of WebSphere Portal. Use of the Java Portlet API (javax.portlet)
is recommended instead.
-
public class XMIMenuTreePortlet
- extends org.apache.jetspeed.portlet.PortletAdapter
- implements MenuProvider
XMIMenuTreePortlet is a convenience implementation of a portlet that exposes a
static portlet menu based on the content of an XMI file.
The XMIMenuTreePortlet is a default implementation for the
Portlet interface. If a portlet uses a static XMI tree,
it is recommended that it derives from XMIMenuTreePortlet.
The tree structure is completely defined in an XML file, e.g.,
menu-tree.xml. In the deployment descriptor portlet.xml,
the configuration parameter XMIFilePath for the concrete portlet
specifies the full path of this XML file relative to the directory
<Portlet_HOME>/war. The method getMenu(com.ibm.wps.portlet.menu.MenuContext)
does not have to be implemented any more.
The following example shows a section of portlet.xml including the
configuration parameter for XMIFilePath.
<concrete-portlet href="#Portlet_1">
<portlet-name> ... </portlet-name>
<config-param>
<param-name>XMIFilePath</param-name>
<param-value>menu-tree.xml</param-value>
</config-param>
</concrete-portlet>
The next example shows how menu-tree.xml can be implemented
to create a menu tree with two nodes and two subnodes of the first node.
Title and description are set in two different locales.
Code of menu-tree.xml:
<!DOCTYPE menu-tree PUBLIC "-//IBM//DTD Portlet Menu 1.0//EN" "menu-tree.dtd">
<!-- root node -->
<menu-tree id="id0">
<!-- root node -->
<menu-node id="rootId">
<display-info>
<locale>en</locale>
<title>XMI Test Portlet</title>
<description>XMI Tree Description</description>
</display-info>
<display-info>
<locale>fr</locale>
<title>XMI Test Portlet</title>
<description>XMI Tree Description</description>
</display-info>
<!-- node 1 -->
<menu-node id="id1">
<display-info>
<locale>en</locale>
<title>Node 1</title>
<description>Node 1 Description</description>
</display-info>
<display-info>
<locale>fr</locale>
<title>Noeud 1</title>
<description>Noeud 1 Description</description>
</display-info>
<action-name>Node1Action</action-name>
<param id="n1-pid1">
<param-name>Param1Name</param-name>
<param-value>Node1Param1Value</param-value>
</param>
<param id="n1-pid2">
<param-name>Param2Name</param-name>
<param-value>Node1Param2Value</param-value>
</param>
<!-- node 1.1 -->
<menu-node id="id1_1">
<display-info>
<locale>en</locale>
<title>Node 1.1</title>
<description>Node 1.1 Description</description>
</display-info>
</menu-node>
<!-- node 1.2 -->
<menu-node id="id1_2">
<display-info>
<locale>en</locale>
<title>Node 1.2</title>
<description>Node 1.2 Description</description>
</display-info>
</menu-node>
</menu-node>
<!-- node 2 -->
<menu-node id="id2">
<display-info>
<locale>en</locale>
<title>Node 2</title>
<description>Node 2 Description</description>
</display-info>
<display-info>
<locale>fr</locale>
<title>Noeud 2</title>
<description>Noeud 2 Description</description>
</display-info>
<action-name>Node2Action</action-name>
<param id="n2-pid1">
<param-name>Param1Name</param-name>
<param-value>Node2Param1Value</param-value>
</param>
<param id="n2-pid2">
<param-name>Param2Name</param-name>
<param-value>Node2Param2Value</param-value>
</param>
</menu-node>
</menu-node>
</menu-tree>
Sample portlet source code:
import java.io.*;
import org.apache.jetspeed.portlet.*;
import org.apache.jetspeed.portlet.event.*;
import com.ibm.wps.portlet.menu.*;
import com.ibm.wps.portlets.menu.*;
public class XMITestPortlet extends XMIMenuTreePortlet implements MenuProvider, ActionListener
{ public void doView(PortletRequest request, PortletResponse response)
throws PortletException, IOException
{ // Invoke the JSP to render
getPortletConfig().getContext().include("/jsp/View.jsp", request, response);
}
public void actionPerformed(ActionEvent event) throws PortletException
{ if (event != null)
{ String actionString = event.getActionString();
PortletRequest request = event.getRequest();
if (actionString != null)
{ request.setAttribute("ActionString", actionString);
}
}
}
}
with /jsp/View.jsp:
<%@ page contentType="text/html"%>
<H3>Test of XMIMenuTree</H3>
<UL>
<LI>Expand root node and <CITE>Node 1</CITE>.<BR><BR>
</LI>
<LI>Click <CITE>Node 1</CITE> and <CITE>Node 2</CITE>. Check if action string and request parameters are displayed.
<TABLE BORDER="0">
<TR>
<TD>Action:</TD>
<TD><%=request.getAttribute("ActionString")%></TD>
</TR><TR>
<TD>Param1:</TD>
<TD><%=request.getParameter("Param1Name")%></TD>
</TR><TR>
<TD>Param2:</TD>
<TD><%=request.getParameter("Param2Name")%></TD>
</TR>
</TABLE>
<BR>
</LI>
</UL>
- Since:
- 5.0
- See Also:
- Serialized Form
Nested classes/interfaces inherited from class org.apache.jetspeed.portlet.Portlet
|
org.apache.jetspeed.portlet.Portlet.Mode, org.apache.jetspeed.portlet.Portlet.ModeModifier |
Method Summary
|
MenuTree |
getMenu(MenuContext menuContext)
Deprecated. Return the menu tree containing the complete portlet menus configured in an XML file. |
Methods inherited from class org.apache.jetspeed.portlet.PortletAdapter
|
destroy, destroyConcrete, doConfigure, doEdit, doHelp, doView, getLastModified, getPortletConfig, getPortletLog, getVariable, init, initConcrete, login, logout, removeVariable, service, setVariable |
Methods inherited from class org.apache.jetspeed.portlet.Portlet
|
destroy, doGet, doPost, doPut, getId, getInitParameter, getInitParameterNames, getLastModified, getPortletSettings, getServletContext, getServletInfo, init, service |
Methods inherited from class javax.servlet.http.HttpServlet
|
doDelete, doHead, doOptions, doTrace |
Methods inherited from class javax.servlet.GenericServlet
|
getServletConfig, getServletName, init, log, log |
Methods inherited from class java.lang.Object
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
XMIMenuTreePortlet
protected XMIMenuTreePortlet()
- Deprecated.
- Constructor.
getMenu
public MenuTree getMenu(MenuContext menuContext)
throws org.apache.jetspeed.portlet.PortletException
- Deprecated.
- Returns the menu tree containing the complete portlet menus configured in an XML file.
- Specified by:
- getMenu in interface MenuProvider
- Parameters:
- menuContext - contains the current request and response ID
- Returns:
- the complete menu tree
- Throws:
- org.apache.jetspeed.portlet.PortletException - if XML file or service not found or unavailable or if XMIFilePath not specified
- See Also:
- MenuProvider