Author: thomas.heute(a)jboss.com
Date: 2008-06-11 09:36:54 -0400 (Wed, 11 Jun 2008)
New Revision: 10985
Added:
branches/JBoss_Portal_Branch_2_7/api/src/main/org/jboss/portal/api/content/
branches/JBoss_Portal_Branch_2_7/api/src/main/org/jboss/portal/api/content/SelectedContent.java
Modified:
branches/JBoss_Portal_Branch_2_7/api/.classpath
branches/JBoss_Portal_Branch_2_7/api/build.xml
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/common/PageManagerBean.java
branches/JBoss_Portal_Branch_2_7/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSContentEditorPortlet.java
branches/JBoss_Portal_Branch_2_7/core-cms/src/resources/portal-cms-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/core-samples/src/main/org/jboss/portal/core/samples/basic/FSContentDrivenPortlet.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/CoreConstants.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/AbstractContent.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/generic/InternalGenericContentProvider.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/Content.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/spi/handler/ContentState.java
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/content/WindowRendition.java
branches/JBoss_Portal_Branch_2_7/faces/.classpath
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/component/portlet/UIPortlet.java
branches/JBoss_Portal_Branch_2_7/widget/.classpath
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/Widget.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidget.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidgetPortlet.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/info/GGPreferencesInfo.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesPreferencesInfo.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidget.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidgetPortlet.java
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/json/JSONObject.java
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-netvibes-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-war/WEB-INF/portlet.xml
Log:
Fixing Content Framework
Modified: branches/JBoss_Portal_Branch_2_7/api/.classpath
===================================================================
--- branches/JBoss_Portal_Branch_2_7/api/.classpath 2008-06-11 12:37:53 UTC (rev 10984)
+++ branches/JBoss_Portal_Branch_2_7/api/.classpath 2008-06-11 13:36:54 UTC (rev 10985)
@@ -3,5 +3,6 @@
<classpathentry kind="src" path="src/main"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/common/lib/portal-common-portal-lib.jar"/>
+ <classpathentry kind="lib"
path="/thirdparty/sun-jaxb/lib/jaxb-api.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: branches/JBoss_Portal_Branch_2_7/api/build.xml
===================================================================
--- branches/JBoss_Portal_Branch_2_7/api/build.xml 2008-06-11 12:37:53 UTC (rev 10984)
+++ branches/JBoss_Portal_Branch_2_7/api/build.xml 2008-06-11 13:36:54 UTC (rev 10985)
@@ -90,6 +90,7 @@
<path id="library.classpath">
<path refid="jboss.portal/modules/common.classpath"/>
<path refid="junit.junit.classpath"/>
+ <path refid="sun.jaxb.classpath"/>
</path>
<!-- Configure modules -->
Added:
branches/JBoss_Portal_Branch_2_7/api/src/main/org/jboss/portal/api/content/SelectedContent.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/api/src/main/org/jboss/portal/api/content/SelectedContent.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/api/src/main/org/jboss/portal/api/content/SelectedContent.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -0,0 +1,68 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2008, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.api.content;
+
+import java.io.Serializable;
+import java.util.Map;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
+ * @version $Revision$
+ */
+@XmlRootElement
+public class SelectedContent implements Serializable
+{
+ private final String uri;
+
+ private final Map<String, String> parameters;
+
+ public SelectedContent(String uri, Map<String, String> parameters)
+ {
+ this.uri = uri;
+ this.parameters = parameters;
+ }
+
+ public String getUri()
+ {
+ return uri;
+ }
+
+ public Map<String, String> getParameters()
+ {
+ return parameters;
+ }
+
+ public static String encode(String key, String value)
+ {
+ return key + "__EQUALS__" + value;
+ }
+
+ public static String[] decode(String encoded)
+ {
+ String[] foo = encoded.split("__EQUALS__");
+ return foo;
+ }
+}
+
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/CoreConstants.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/CoreConstants.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/CoreConstants.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -59,4 +59,6 @@
public static final QName JBOSS_PORTAL_CONTENT_URI = new
QName(JBOSS_PORTAL_CONTENT_NAMESPACE, "uri");
+ public static final QName JBOSS_PORTAL_CONTENT_PARAMETERS = new
QName(JBOSS_PORTAL_CONTENT_NAMESPACE, "parameters");
+
}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/AbstractContent.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/AbstractContent.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/AbstractContent.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -72,7 +72,7 @@
state.setParameter(name, value);
}
- public Iterator getParameterNames()
+ public Iterator<String> getParameterNames()
{
return state.getParameterNames();
}
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/generic/InternalGenericContentProvider.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/generic/InternalGenericContentProvider.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/content/generic/InternalGenericContentProvider.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -24,6 +24,7 @@
import org.apache.log4j.Logger;
import org.jboss.portal.Mode;
+import org.jboss.portal.api.content.SelectedContent;
import org.jboss.portal.common.i18n.LocalizedString;
import org.jboss.portal.common.util.ParameterMap;
import org.jboss.portal.core.CoreConstants;
@@ -49,7 +50,9 @@
import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.invocation.RenderInvocation;
-import java.util.Collections;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
/**
@@ -197,7 +200,8 @@
if (invocation.getPublicNavigationalState() == null ||
invocation.getPublicNavigationalState().size() == 0)
{
- String id = null;
+ String id_uri = null;
+ String id_parameters = null;
try
{
@@ -212,8 +216,12 @@
{
if
(parameterInfo.getName().equals(CoreConstants.JBOSS_PORTAL_CONTENT_URI))
{
- id = parameterInfo.getId();
+ id_uri = parameterInfo.getId();
}
+ if
(parameterInfo.getName().equals(CoreConstants.JBOSS_PORTAL_CONTENT_PARAMETERS))
+ {
+ id_parameters = parameterInfo.getId();
+ }
}
}
catch (PortletInvokerException e)
@@ -221,12 +229,28 @@
log.error("Cannot read portlet instance public navigational
info", e);
}
+
+ ParameterMap parameterMap = new ParameterMap();
+
//
- if (id != null)
+ if (id_uri != null)
{
- ParameterMap tmp = ParameterMap.wrap(Collections.singletonMap(id, new
String[]{content.getURI()}));
- invocation.setPublicNavigationalState(tmp);
+ parameterMap.put(id_uri, new String[]{content.getURI()});
}
+ if (id_parameters != null)
+ {
+ List<String> encodedParams = new ArrayList<String>();
+ Iterator<String> params = content.getParameterNames();
+ while (params.hasNext())
+ {
+ String name = params.next();
+ String value = content.getParameter(name);
+ encodedParams.add(SelectedContent.encode(name, value));
+ }
+
+ parameterMap.put(id_parameters, encodedParams.toArray(new
String[encodedParams.size()]));
+ }
+ invocation.setPublicNavigationalState(parameterMap);
}
//
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/Content.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/Content.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/Content.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -63,7 +63,7 @@
*/
void setURI(String uri) throws IllegalStateException;
- Iterator getParameterNames();
+ Iterator<String> getParameterNames();
void setParameter(String name, String value) throws IllegalArgumentException;
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/spi/handler/ContentState.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/spi/handler/ContentState.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/content/spi/handler/ContentState.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -46,7 +46,7 @@
*/
void setURI(String uri);
- Iterator getParameterNames();
+ Iterator<String> getParameterNames();
void setParameter(String name, String value) throws IllegalArgumentException;
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/content/WindowRendition.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/content/WindowRendition.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/model/portal/content/WindowRendition.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -39,7 +39,7 @@
{
/** The window properties. */
- private final Map properties;
+ private final Map<String, String> properties;
/** The window state. */
private final WindowState windowState;
@@ -72,7 +72,7 @@
this.controllerResponse = controllerResponse;
}
- public Map getProperties()
+ public Map<String, String> getProperties()
{
return properties;
}
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/common/PageManagerBean.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/common/PageManagerBean.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/common/PageManagerBean.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -23,6 +23,7 @@
package org.jboss.portal.core.admin.ui.common;
import org.jboss.portal.Mode;
+import org.jboss.portal.api.content.SelectedContent;
import org.jboss.portal.core.admin.ui.actions.WindowComparator;
import org.jboss.portal.core.impl.model.content.ContentProviderRegistryService;
import org.jboss.portal.core.model.content.Content;
@@ -306,12 +307,15 @@
{
Window window = page.createWindow(windowName, selectedContentType,
selectedContentURI);
Content content = window.getContent();
- for (Object o : selectedContentParams.entrySet())
+ if (selectedContentParams != null)
{
- Map.Entry<String,String> entry =
(Map.Entry<String,String>)o;
- String paramName = entry.getKey();
- String paramValue = entry.getValue();
- content.setParameter(paramName, paramValue);
+ for (Object o : selectedContentParams.entrySet())
+ {
+ Map.Entry<String,String> entry =
(Map.Entry<String,String>)o;
+ String paramName = entry.getKey();
+ String paramValue = entry.getValue();
+ content.setParameter(paramName, paramValue);
+ }
}
//
@@ -343,7 +347,7 @@
FacesContext faces = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
"No content was selected!", null);
faces.addMessage("layoutForm", message);
- throw new AbortProcessingException();
+// throw new AbortProcessingException();
}
}
else if (direction == MOVE_LEFT)
@@ -413,11 +417,18 @@
// only react to content selection events
if(CONTENT_SELECT.equals(name))
{
- String uri = (String)portletEvent.getPayload();
- this.selectedContentURI = uri;
-
- // TODO: Get params from the payload (for widgets)
- this.selectedContentParameters = new HashMap();
+ if (portletEvent.getPayload() instanceof String)
+ {
+ String uri = (String)portletEvent.getPayload();
+ this.selectedContentURI = uri;
+ this.selectedContentParameters = null;
+ }
+ else if (portletEvent.getPayload() instanceof SelectedContent)
+ {
+ SelectedContent selectedContent =
(SelectedContent)portletEvent.getPayload();
+ this.selectedContentURI = selectedContent.getUri();
+ this.selectedContentParameters = selectedContent.getParameters();
+ }
}
}
else if (event instanceof PortletActionEvent)
Modified:
branches/JBoss_Portal_Branch_2_7/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSContentEditorPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSContentEditorPortlet.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core-cms/src/main/org/jboss/portal/core/cms/ui/admin/CMSContentEditorPortlet.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -35,6 +35,8 @@
import javax.portlet.PortletSecurityException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.xml.namespace.QName;
+
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@@ -53,6 +55,8 @@
/** . */
private static final PortletMode EDIT_CONTENT = new
PortletMode("edit_content");
+
+ public static final QName JBOSS_PORTAL_CONTENT_SELECT = new
QName("urn:jboss:portal:content", "select");
public void init() throws PortletException
{
@@ -81,6 +85,8 @@
//
resp.setRenderParameters(params);
+
+ resp.setEvent(JBOSS_PORTAL_CONTENT_SELECT, contentURI);
}
}
}
@@ -89,6 +95,9 @@
{
if (EDIT_CONTENT.equals(req.getPortletMode()))
{
+ javax.portlet.PortletURL url = resp.createRenderURL();
+ System.out.println(url);
+
doEditContent(req, resp);
}
else
Modified:
branches/JBoss_Portal_Branch_2_7/core-cms/src/resources/portal-cms-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-cms/src/resources/portal-cms-war/WEB-INF/portlet.xml 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core-cms/src/resources/portal-cms-war/WEB-INF/portlet.xml 2008-06-11
13:36:54 UTC (rev 10985)
@@ -54,6 +54,7 @@
</preference>
</portlet-preferences>
<supported-public-render-parameter>uri</supported-public-render-parameter>
+ <supported-publishing-event
xmlns:x="urn:jboss:portal:content">x:select</supported-publishing-event>
</portlet>
<portlet>
@@ -106,6 +107,11 @@
<portlet-name>CMSAdminPortlet</portlet-name>
</filter-mapping>
+ <event-definition>
+ <qname xmlns:x="urn:jboss:portal:content">x:select</qname>
+ <value-type>java.lang.String</value-type>
+ </event-definition>
+
<public-render-parameter>
<identifier>uri</identifier>
<qname xmlns:c="urn:jboss:portal:content">c:uri</qname>
Modified:
branches/JBoss_Portal_Branch_2_7/core-samples/src/main/org/jboss/portal/core/samples/basic/FSContentDrivenPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-samples/src/main/org/jboss/portal/core/samples/basic/FSContentDrivenPortlet.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/core-samples/src/main/org/jboss/portal/core/samples/basic/FSContentDrivenPortlet.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -78,8 +78,6 @@
protected void doEditContent(RenderRequest req, RenderResponse resp) throws
PortletException, PortletSecurityException, IOException
{
- System.out.println("Render: " +
req.getParameter("current_dir"));
-
// Get the uri value optionally provided by the portal
String uri = req.getParameter("content.uri");
@@ -198,9 +196,6 @@
public void processAction(ActionRequest req, ActionResponse resp) throws
PortletException, PortletSecurityException, IOException
{
-
- System.out.println("Action: " +
req.getParameter("content.uri"));
-
if (EDIT_CONTENT_MODE.equals(req.getPortletMode()))
{
String contentURI = req.getParameter("content.uri");
Modified: branches/JBoss_Portal_Branch_2_7/faces/.classpath
===================================================================
--- branches/JBoss_Portal_Branch_2_7/faces/.classpath 2008-06-11 12:37:53 UTC (rev 10984)
+++ branches/JBoss_Portal_Branch_2_7/faces/.classpath 2008-06-11 13:36:54 UTC (rev 10985)
@@ -15,7 +15,7 @@
<classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/common/lib/portal-common-lib.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/common/lib/portal-common-portal-lib.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/portlet/lib/portal-portlet-bridge-lib.jar"/>
- <classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/portlet/lib/portal-portlet-lib.jar"
sourcepath="/module-portlet"/>
+ <classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/portlet/lib/portal-portlet-lib.jar"
sourcepath="/module-portlet-2.0.0.CR2"/>
<classpathentry kind="lib"
path="/thirdparty/portlet/lib/portlet-api.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified:
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/component/portlet/UIPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/component/portlet/UIPortlet.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/faces/src/main/org/jboss/portal/faces/component/portlet/UIPortlet.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -487,36 +487,29 @@
switch (decoder.getType())
{
- case PortletRequestDecoder.RENDER_TYPE:
+ case PortletRequestDecoder.RENDER_TYPE :
- PortletRenderEvent prevent = new PortletRenderEvent(
- this,
-
((ParametersStateString)decoder.getNavigationalState()).getParameters(),
- mode,
- windowState);
- prevent.setPhaseId(PhaseId.INVOKE_APPLICATION);
- queueEvent(prevent);
+ PortletRenderEvent prevent = new PortletRenderEvent(this,
((ParametersStateString) decoder
+ .getNavigationalState()).getParameters(), mode, windowState);
+ prevent.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ queueEvent(prevent);
- break;
- case PortletRequestDecoder.ACTION_TYPE:
+ break;
+ case PortletRequestDecoder.ACTION_TYPE :
-
- if (mode == null)
- {
- mode = getInternalMode();
- }
- if (windowState == null)
- {
- windowState = getInternalWindowState();
- }
- PortletActionEvent paevent = new PortletActionEvent(
- this,
-
((ParametersStateString)decoder.getInteractionState()).getParameters(),
- mode,
- windowState);
- paevent.setPhaseId(PhaseId.INVOKE_APPLICATION);
- queueEvent(paevent);
- break;
+ if (mode == null)
+ {
+ mode = getInternalMode();
+ }
+ if (windowState == null)
+ {
+ windowState = getInternalWindowState();
+ }
+ PortletActionEvent paevent = new PortletActionEvent(this,
((ParametersStateString) decoder
+ .getInteractionState()).getParameters(), mode, windowState);
+ paevent.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ queueEvent(paevent);
+ break;
}
}
}
@@ -654,13 +647,11 @@
@Override
public void encodeChildren(FacesContext facesContext) throws IOException
{
- System.out.println("encodeChildren");
}
@Override
public void encodeEnd(FacesContext facesContext) throws IOException
{
- System.out.println("encodeEnd");
}
@Override
Modified: branches/JBoss_Portal_Branch_2_7/widget/.classpath
===================================================================
--- branches/JBoss_Portal_Branch_2_7/widget/.classpath 2008-06-11 12:37:53 UTC (rev
10984)
+++ branches/JBoss_Portal_Branch_2_7/widget/.classpath 2008-06-11 13:36:54 UTC (rev
10985)
@@ -7,6 +7,7 @@
<classpathentry kind="lib"
path="/thirdparty/jboss-portal/modules/common/lib/portal-common-lib.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jboss/jbossxb/lib/jboss-xml-binding.jar"/>
<classpathentry kind="lib"
path="/thirdparty/jbossas/core-libs/lib/jboss-common.jar"/>
+ <classpathentry combineaccessrules="false" kind="src"
path="/api"/>
<classpathentry kind="lib"
path="/thirdparty/portlet/lib/portlet-api.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/Widget.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/Widget.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/Widget.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -40,8 +40,8 @@
LocalizedString getDescription();
- String render(Map parameters);
+ String render(Map<String, String> parameters);
- String render(Map parameters, Locale locale);
+ String render(Map<String, String> parameters, Locale locale);
}
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidget.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidget.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidget.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -90,12 +90,12 @@
return getInfo().getDescription();
}
- public String render(Map parameters)
+ public String render(Map<String, String> parameters)
{
return render(parameters, null);
}
- public String render(Map parameters, Locale locale)
+ public String render(Map<String, String> parameters, Locale locale)
{
String id = generator.generateKey();
StringBuffer tmp = new
StringBuffer("http://gmodules.com/ig/ifr?url=").append(url);
@@ -124,13 +124,16 @@
//
GGPreferencesInfo prefsInfo = info.getPreferences();
- for (Iterator i = prefsInfo.getPreferences().iterator(); i.hasNext();)
+ for (Iterator<GGPreferenceInfo> i = prefsInfo.getPreferences().iterator();
i.hasNext();)
{
GGPreferenceInfo prefInfo = (GGPreferenceInfo)i.next();
String prefName = prefInfo.getName();
String defaultValue = prefInfo.getDefaultValue() != null ?
prefInfo.getDefaultValue() : "";
- String[] values = (String[])parameters.get(prefName);
- String value = values != null ? values[0] : defaultValue;
+ String value = (String) parameters.get(prefName);
+ if (value == null)
+ {
+ value = defaultValue;
+ }
// if value is present and not a default parameter
if (value != null && !defaultValue.equals(value))
{
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidgetPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidgetPortlet.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/GGWidgetPortlet.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -22,6 +22,7 @@
******************************************************************************/
package org.jboss.portal.widget.google;
+import org.jboss.portal.api.content.SelectedContent;
import org.jboss.portal.widget.AbstractWidgetPortlet;
import org.jboss.portal.widget.Widget;
import org.jboss.portal.widget.WidgetProvider;
@@ -29,12 +30,13 @@
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
-import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.PortletSecurityException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.xml.namespace.QName;
+
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
@@ -48,8 +50,7 @@
*/
public class GGWidgetPortlet extends AbstractWidgetPortlet
{
- /** . */
- private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(GGWidgetPortlet.class);
+ private static final QName CONTENT_SELECT = new
QName("urn:jboss:portal:content", "select");
/** . */
private GGProvider provider = new GGProvider();
@@ -64,26 +65,27 @@
{
if (req.getParameter("content.action.select") != null)
{
- PortletConfig conf = getPortletConfig();
-
String contentURI = req.getParameter("content.uri");
if (contentURI != null)
{
// Will contain the next render params
- Map params = new HashMap();
+ Map<String, String[]> params = new HashMap<String, String[]>();
//
params.put("content.uri", new String[]{contentURI});
+ Map<String, String> widgetParams = new HashMap<String,
String>();
+
//
- for (Iterator i = req.getParameterMap().entrySet().iterator(); i.hasNext();)
+ for (Iterator<Map.Entry<String, String[]>> i =
req.getParameterMap().entrySet().iterator(); i.hasNext();)
{
- Map.Entry entry = (Map.Entry)i.next();
+ Map.Entry<String, String[]> entry = (Map.Entry<String,
String[]>)i.next();
String contentParamName = (String)entry.getKey();
if (contentParamName.startsWith("content.param"))
{
String[] contentParamValue = (String[])entry.getValue();
params.put(contentParamName, contentParamValue);
+ widgetParams.put(contentParamName, contentParamValue[0]);
}
}
@@ -121,10 +123,14 @@
//
resp.setRenderParameters(params);
+
+
+ resp.setEvent(CONTENT_SELECT, new SelectedContent(contentURI,
widgetParams));
+
}
}
}
-
+
protected void doView(RenderRequest req, RenderResponse resp) throws PortletException,
PortletSecurityException, IOException
{
resp.setContentType("text/html");
@@ -137,7 +143,21 @@
{
resp.setTitle(widget.getTitle().getString(req.getLocale(), true));
}
- writer.print(widget.render(req.getParameterMap(), req.getLocale()));
+
+ Map<String, String> parametersMap = new HashMap<String, String>();
+
+ String[] parameters = req.getParameterValues("parameters");
+ if (parameters != null)
+ {
+ for (String encoded: parameters)
+ {
+ String[] decodedValue = SelectedContent.decode(encoded);
+ String value = (decodedValue.length == 2) ? decodedValue[1] :
"";
+ parametersMap.put(decodedValue[0], value);
+ }
+ }
+
+ writer.print(widget.render(parametersMap, req.getLocale()));
}
else
{
@@ -161,7 +181,7 @@
protected void doEditContent(RenderRequest req, RenderResponse resp) throws
PortletException, PortletSecurityException, IOException
{
resp.setContentType("text/html");
- Map map = req.getParameterMap();
+
//
req.setAttribute("provider", provider);
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/info/GGPreferencesInfo.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/info/GGPreferencesInfo.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/google/info/GGPreferencesInfo.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -39,16 +39,16 @@
public static final GGPreferencesInfo EMPTY_PREFS = new GGPreferencesInfo();
/** . */
- private final Map content;
+ private final Map<String, GGPreferenceInfo> content;
- public GGPreferencesInfo(Collection prefInfos)
+ public GGPreferencesInfo(Collection<GGPreferenceInfo> prefInfos)
{
if (prefInfos == null)
{
throw new IllegalArgumentException();
}
- content = new HashMap(prefInfos.size());
- for (Iterator i = prefInfos.iterator(); i.hasNext();)
+ content = new HashMap<String, GGPreferenceInfo>(prefInfos.size());
+ for (Iterator<GGPreferenceInfo> i = prefInfos.iterator(); i.hasNext();)
{
GGPreferenceInfo prefInfo = (GGPreferenceInfo)i.next();
content.put(prefInfo.getName(), prefInfo);
@@ -60,9 +60,9 @@
content = null;
}
- public Collection getPreferences()
+ public Collection<GGPreferenceInfo> getPreferences()
{
- return content == null ? Collections.EMPTY_SET : content.values();
+ return content == null ? Collections.<GGPreferenceInfo>emptySet() :
content.values();
}
public GGPreferenceInfo getPreference(String name)
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesPreferencesInfo.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesPreferencesInfo.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesPreferencesInfo.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -53,7 +53,7 @@
public Collection<String> getPreferences()
{
- return this.preferences == null ? Collections.EMPTY_SET :
this.preferences.keySet();
+ return this.preferences == null ? Collections.<String>emptySet() :
this.preferences.keySet();
}
public NetvibesPreferenceInfo getPreference(String key)
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidget.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidget.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidget.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -88,12 +88,12 @@
return widgetInfo;
}
- public String render(Map parameters)
+ public String render(Map<String, String> parameters)
{
return render(parameters, null);
}
- public String render(Map parameters, Locale locale)
+ public String render(Map<String, String> parameters, Locale locale)
{
NetvibesWidgetInfo widgetInfo = getWidgetInfo();
if (widgetInfo != null)
@@ -109,12 +109,15 @@
if ( parameters.size() > 0 )
{
NetvibesPreferencesInfo preferences = widgetInfo.getPreferencesInfo();
- for(Iterator i = preferences.getPreferences().iterator(); i.hasNext();)
+ for(Iterator<String> i = preferences.getPreferences().iterator();
i.hasNext();)
{
NetvibesPreferenceInfo info = preferences.getPreference((String)
i.next());
String name = info.getName();
- String[] values = (String[]) parameters.get(name);
- String value = values != null ? values[0] : info.getDefaultValue();
+ String value = (String) parameters.get(name);
+ if (value == null)
+ {
+ value = info.getDefaultValue();
+ }
if (value != null)
{
int index = name.toLowerCase().indexOf("height");
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidgetPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidgetPortlet.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/NetvibesWidgetPortlet.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -36,7 +36,9 @@
import javax.portlet.PortletSecurityException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.xml.namespace.QName;
+import org.jboss.portal.api.content.SelectedContent;
import org.jboss.portal.widget.AbstractWidgetPortlet;
import org.jboss.portal.widget.Widget;
import org.jboss.portal.widget.WidgetProvider;
@@ -48,6 +50,9 @@
*/
public class NetvibesWidgetPortlet extends AbstractWidgetPortlet
{
+
+ private static final QName CONTENT_SELECT = new
QName("urn:jboss:portal:content", "select");
+
/** . */
private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(NetvibesWidgetPortlet.class);
@@ -95,20 +100,23 @@
if (contentURI != null)
{
// Will contain the next render params
- Map params = new HashMap();
+ Map<String, String[]> params = new HashMap<String, String[]>();
//
params.put("content.uri", new String[]{contentURI});
+
+ Map<String, String> widgetParams = new HashMap<String,
String>();
//
- for (Iterator i = req.getParameterMap().entrySet().iterator(); i.hasNext();)
+ for (Iterator<Map.Entry<String, String[]>> i =
req.getParameterMap().entrySet().iterator(); i.hasNext();)
{
- Map.Entry entry = (Map.Entry)i.next();
+ Map.Entry<String, String[]> entry = (Map.Entry<String,
String[]>)i.next();
String contentParamName = (String)entry.getKey();
if (contentParamName.startsWith("content.param"))
{
String[] contentParamValue = (String[])entry.getValue();
params.put(contentParamName, contentParamValue);
+
widgetParams.put(contentParamName.substring("content.param.".length()),
contentParamValue[0]);
}
}
@@ -153,6 +161,10 @@
//
resp.setRenderParameters(params);
+ resp.setRenderParameter("foo", "bar");
+
+ resp.setEvent(CONTENT_SELECT, new SelectedContent(contentURI,
widgetParams));
+
}
}
}
@@ -173,7 +185,21 @@
{
resp.setTitle(widget.getTitle().getString(req.getLocale(), true));
}
- writer.print(widget.render(req.getParameterMap(), req.getLocale()));
+
+ Map<String, String> parametersMap = new HashMap<String, String>();
+
+ String[] parameters = req.getParameterValues("parameters");
+ if (parameters != null)
+ {
+ for (String encoded: parameters)
+ {
+ String[] decodedValue = SelectedContent.decode(encoded);
+ String value = (decodedValue.length == 2) ? decodedValue[1] :
"";
+ parametersMap.put(decodedValue[0], value);
+ }
+ }
+
+ writer.print(widget.render(parametersMap, req.getLocale()));
}
else
{
@@ -182,7 +208,6 @@
writer.close();
}
-
protected void doDispatch(RenderRequest req, RenderResponse resp) throws
PortletException, PortletSecurityException, IOException
{
if (EDIT_CONTENT.equals(req.getPortletMode()))
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/json/JSONObject.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/json/JSONObject.java 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/main/org/jboss/portal/widget/netvibes/json/JSONObject.java 2008-06-11
13:36:54 UTC (rev 10985)
@@ -258,7 +258,7 @@
*/
public JSONObject(Object bean) {
this();
- Class klass = bean.getClass();
+ Class<? extends Object> klass = bean.getClass();
Method[] methods = klass.getMethods();
for (int i = 0; i < methods.length; i += 1) {
try {
@@ -279,7 +279,7 @@
key = key.substring(0, 1).toLowerCase() +
key.substring(1);
}
- this.put(key, method.invoke(bean, null));
+ this.put(key, method.invoke(bean, (Object[])null));
}
} catch (Exception e) {
/* forget about it */
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-netvibes-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-netvibes-war/WEB-INF/portlet.xml 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-netvibes-war/WEB-INF/portlet.xml 2008-06-11
13:36:54 UTC (rev 10985)
@@ -23,10 +23,10 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<portlet-app
-
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1...
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
- version="1.0">
+
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ version="2.0">
<portlet>
<description>Netvibes Widget Portlet</description>
<portlet-name>NetvibesWidgetPortlet</portlet-name>
@@ -66,5 +66,23 @@
<title>Netvibes Widget</title>
<keywords>widget,netvibes</keywords>
</portlet-info>
+ <supported-publishing-event
xmlns:x="urn:jboss:portal:content">x:select</supported-publishing-event>
+
<supported-public-render-parameter>uri</supported-public-render-parameter>
+
<supported-public-render-parameter>parameters</supported-public-render-parameter>
</portlet>
+
+ <event-definition>
+ <qname xmlns:x="urn:jboss:portal:content">x:select</qname>
+ <value-type>org.jboss.portal.api.content.SelectedContent</value-type>
+ </event-definition>
+
+ <public-render-parameter>
+ <identifier>uri</identifier>
+ <qname xmlns:c="urn:jboss:portal:content">c:uri</qname>
+ </public-render-parameter>
+
+ <public-render-parameter>
+ <identifier>parameters</identifier>
+ <qname
xmlns:c="urn:jboss:portal:content">c:parameters</qname>
+ </public-render-parameter>
</portlet-app>
Modified:
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-war/WEB-INF/portlet.xml 2008-06-11
12:37:53 UTC (rev 10984)
+++
branches/JBoss_Portal_Branch_2_7/widget/src/resources/portal-widget-war/WEB-INF/portlet.xml 2008-06-11
13:36:54 UTC (rev 10985)
@@ -23,10 +23,10 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<portlet-app
-
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1...
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
- version="1.0">
+
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ version="2.0">
<portlet>
<description>Google Widget Portlet</description>
<portlet-name>GoogleWidgetPortlet</portlet-name>
@@ -61,5 +61,18 @@
<title>Google Widget</title>
<keywords>widget,google</keywords>
</portlet-info>
+ <supported-publishing-event
xmlns:x="urn:jboss:portal:content">x:select</supported-publishing-event>
+
<supported-public-render-parameter>uri</supported-public-render-parameter>
</portlet>
+
+ <event-definition>
+ <qname xmlns:x="urn:jboss:portal:content">x:select</qname>
+ <value-type>org.jboss.portal.api.content.SelectedContent</value-type>
+ </event-definition>
+
+ <public-render-parameter>
+ <identifier>uri</identifier>
+ <qname xmlns:c="urn:jboss:portal:content">c:uri</qname>
+ </public-render-parameter>
+
</portlet-app>