Author: julien(a)jboss.com
Date: 2007-06-25 17:15:19 -0400 (Mon, 25 Jun 2007)
New Revision: 7539
Modified:
trunk/widget/src/main/org/jboss/portal/widget/WidgetPortlet.java
trunk/widget/src/resources/widget-war/WEB-INF/jsp/edit.jsp
Log:
update the workflow for gadget selection
Modified: trunk/widget/src/main/org/jboss/portal/widget/WidgetPortlet.java
===================================================================
--- trunk/widget/src/main/org/jboss/portal/widget/WidgetPortlet.java 2007-06-25 20:54:14
UTC (rev 7538)
+++ trunk/widget/src/main/org/jboss/portal/widget/WidgetPortlet.java 2007-06-25 21:15:19
UTC (rev 7539)
@@ -37,6 +37,10 @@
import javax.portlet.PortletMode;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -61,6 +65,34 @@
public void processAction(ActionRequest req, ActionResponse resp) throws
PortletException, PortletSecurityException, IOException
{
+ if (req.getParameter("content.action.select") != null)
+ {
+ String contentURI = req.getParameter("content.uri");
+ if (contentURI != null)
+ {
+ // Will contain the next render params
+ Map params = new HashMap();
+
+ //
+ params.put("content.uri", new String[]{contentURI});
+
+ //
+ for (Iterator i = req.getParameterMap().entrySet().iterator();i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String name = (String)entry.getKey();
+ if (name.startsWith("content.param"))
+ {
+ String contentParamName =
name.substring("content.param".length());
+ String[] contentParamValue = (String[])entry.getValue();
+ params.put(contentParamName, contentParamValue);
+ }
+ }
+
+ //
+ resp.setRenderParameters(params);
+ }
+ }
}
protected void doView(RenderRequest req, RenderResponse resp) throws PortletException,
PortletSecurityException, IOException
@@ -101,18 +133,6 @@
req.setAttribute("provider", provider);
//
- String op = req.getParameter("op");
- if ("select".equals(op))
- {
- String uri = req.getParameter("uri");
- GGWidget widget = provider.getWidget(uri);
- if (widget != null)
- {
- req.setAttribute("selectedWidget", widget);
- }
- }
-
- //
PortletRequestDispatcher dispatcher =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/edit.jsp");
dispatcher.include(req, resp);
}
Modified: trunk/widget/src/resources/widget-war/WEB-INF/jsp/edit.jsp
===================================================================
--- trunk/widget/src/resources/widget-war/WEB-INF/jsp/edit.jsp 2007-06-25 20:54:14 UTC
(rev 7538)
+++ trunk/widget/src/resources/widget-war/WEB-INF/jsp/edit.jsp 2007-06-25 21:15:19 UTC
(rev 7539)
@@ -7,18 +7,26 @@
<%@ page import="org.jboss.portal.widget.google.GGWidgetCategoryInfo" %>
<%@ page import="org.jboss.portal.widget.google.provider.GGQuery" %>
<%@ page import="org.jboss.portal.widget.google.type.EnumType" %>
+<%@ page import="javax.portlet.PortletURL" %>
<%@ page language="java"%>
<%@ taglib
uri="http://java.sun.com/portlet" prefix="p" %>
<%@ page isELIgnored="false" %>
-<portlet:defineObjects/>
+<p:defineObjects/>
<div>
<%
// Get useful request attributes
- GGWidget selWidget = (GGWidget)request.getAttribute("selectedWidget");
GGProvider provider = (GGProvider)request.getAttribute("provider");
+ // Get the selected widget if any
+ GGWidget selWidget = null;
+ String uri = request.getParameter("content.uri");
+ if (uri != null)
+ {
+ selWidget = provider.getWidget(uri);
+ }
+
// Get query term
String queryTerm = request.getParameter("query");
if (queryTerm == null)
@@ -60,10 +68,19 @@
<%
if (selWidget != null)
{
+ PortletURL selectURL = renderResponse.createActionURL();
+
+ // Set parameters for selection
+ selectURL.setParameter("content.action.select",
"content.action.select");
+ selectURL.setParameter("content.uri", selWidget.getId());
+
+ // Propagage search nav state
+ selectURL.setParameter("cat", catTerm);
+ selectURL.setParameter("query", queryTerm);
%>
<p>You have selected the widget <%= selWidget.getTitle().getDefaultString()
%></p>
<p>
- <form action="<p:actionURL><p:param
name="content.action.select" value="select"/><p:param
name="content.uri" value="<%= selWidget.getId()
%>"/></p:actionURL>" method="post">
+ <form action="<%= selectURL %>" method="post">
<%
for (Iterator i =
selWidget.getPreferencesInfo().getPreferencesInfo().iterator(); i.hasNext();)
{
@@ -120,7 +137,7 @@
}
%>
<tr>
- <td colspan="2"><input type="submit"
value="Select" class="portlet-form-button"/></td>
+ <td colspan="2"><input type="submit"
value="Update" class="portlet-form-button"/></td>
</tr>
</tbody>
</table>
@@ -132,13 +149,31 @@
<ul>
<%
- for (Iterator i = result.getWidgetIterator();i.hasNext();)
- {
- GGWidget widget = (GGWidget)i.next();
+ for (Iterator i = result.getWidgetIterator(); i.hasNext();)
+ {
+ GGWidget widget = (GGWidget)i.next();
+ PortletURL selectURL = renderResponse.createActionURL();
+
+ // Set parameters for selection
+ selectURL.setParameter("content.action.select",
"content.action.select");
+ selectURL.setParameter("content.uri", widget.getId());
+
+ // Set default parametrization state
+ for (Iterator j =
widget.getPreferencesInfo().getPreferencesInfo().iterator();j.hasNext();)
+ {
+ GGPreferenceInfo prefInfo = (GGPreferenceInfo)j.next();
+ String paramName = "content.param." + prefInfo.getName();
+ String defaultValue = prefInfo.getDefaultValue() != null ?
prefInfo.getDefaultValue() : "";
+ selectURL.setParameter(paramName, defaultValue);
+ }
+
+ // Propagage search nav state
+ selectURL.setParameter("cat", catTerm);
+ selectURL.setParameter("query", queryTerm);
%>
- <li><a href="<p:renderURL><p:param name="op"
value="select"/><p:param name="uri" value="<%=
widget.getId() %>"/><p:param name="cat" value="<%= catTerm
%>"/></p:renderURL>"><%= widget.getTitle().getDefaultString()
%></a></li>
+ <li><a href="<%= selectURL %>"><%=
widget.getTitle().getDefaultString() %></a></li>
<%
- }
+ }
%>
</ul>