[jboss-svn-commits] JBL Code SVN: r11177 - in labs/jbosslabs/trunk/portal-extensions: forge-blog/src/java/org/jboss/labs/blog/portlet and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 20 18:52:06 EDT 2007
Author: adamw
Date: 2007-04-20 18:52:06 -0400 (Fri, 20 Apr 2007)
New Revision: 11177
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml
labs/jbosslabs/trunk/portal-extensions/forge-blog/src/java/org/jboss/labs/blog/portlet/LabsBlogPortlet.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java
labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
Log:
Blog on main page
Modified: labs/jbosslabs/trunk/portal-extensions/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml 2007-04-20 22:28:42 UTC (rev 11176)
+++ labs/jbosslabs/trunk/portal-extensions/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml 2007-04-20 22:52:06 UTC (rev 11177)
@@ -1,3 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<deployments>
+ <deployment>
+ <if-exists>overwrite</if-exists>
+ <instance>
+ <instance-id>BlogPortletInstanceDefaultPage</instance-id>
+ <portlet-ref>SimpleBlogPortlet</portlet-ref>
+ <preferences>
+ <preference>
+ <name>blogId</name>
+ <value>all</value>
+ </preference>
+ <preference>
+ <name>feedLinks</name>
+ <value>rss2,atom,rdf:http://jboss.org/feeds/all/${type}</value>
+ </preference>
+ <preference>
+ <name>jsp</name>
+ <value>blog_view_main.jsp</value>
+ </preference>
+ </preferences>
+ </instance>
+ </deployment>
</deployments>
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-blog/src/java/org/jboss/labs/blog/portlet/LabsBlogPortlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-blog/src/java/org/jboss/labs/blog/portlet/LabsBlogPortlet.java 2007-04-20 22:28:42 UTC (rev 11176)
+++ labs/jbosslabs/trunk/portal-extensions/forge-blog/src/java/org/jboss/labs/blog/portlet/LabsBlogPortlet.java 2007-04-20 22:52:06 UTC (rev 11177)
@@ -18,7 +18,10 @@
} else {
response.setTitle("");
}
-
+
+ // Setting the jsp for portlet instances with a special jsp, for ex. main blog portlet.
+ request.setAttribute("jsp", request.getPreferences().getValue("jsp", null));
+
super.render(request, response);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java 2007-04-20 22:28:42 UTC (rev 11176)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java 2007-04-20 22:52:06 UTC (rev 11177)
@@ -3,8 +3,17 @@
import org.jboss.labs.mapper.PathParser;
import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.portlet.impl.PortletRequestDecoder;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.ejb3.ProjectPagesService;
+import org.jboss.forge.common.ejb3.LabsServices;
import java.util.Map;
+import java.util.HashMap;
/**
* @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
@@ -15,20 +24,71 @@
}
public void fillParams(ServerInvocation invocation, PathParser parser, Map<String, Object> params) {
- boolean maximized = true;
-
String current = parser.getCurrent();
if (current != null) {
params.put("post", parser.getCurrent());
- //maximized = true;
- } /*else if (invocation.getServerContext().getQueryParameterMap().containsKey("from")) {
- maximized = true;
- }*/
+ }
- if (maximized) {
- params.put("windowstate", "maximized");
- params.put(PortletRequestDecoder.META_PARAMETER, Integer
+ params.put("windowstate", "maximized");
+ params.put(PortletRequestDecoder.META_PARAMETER, Integer
.toHexString((PortletRequestDecoder.RENDER_MASK | PortletRequestDecoder.WINDOW_STATE_MASK)));
+ }
+
+ /**
+ * Portal id of the labs portal.
+ */
+ private PortalObjectId defaultProjectPagePath = PortalObjectId.parse(
+ "/" + Constants.LABS_PORTAL + "/" + "default",
+ PortalObjectId.CANONICAL_FORMAT);
+
+ public ControllerCommand doMapping(ServerInvocation invocation, String host,
+ String contextPath, PathParser parser, Page page) {
+ String projectId = page.getDeclaredProperty(Constants.PORTAL_OBJECT_LABS_MARKER);
+
+ if (projectId == null) {
+ // If the page from which the request came isn't a project page, trying to
+ // display the blog on the default page.
+ page = (Page) getContainer().getObject(defaultProjectPagePath);
}
+
+ ProjectPagesService pps;
+
+ try {
+ pps = LabsServices.getProjectPagesService();
+ } catch (ServiceRetrievalException e) {
+ return null;
+ }
+
+ String pageName = null;
+ if (!page.getName().equals(projectId)) {
+ pageName = page.getName();
+ }
+
+ // First trying a window with a possible unique-id
+ Window portletWindow = page.getWindow(pps.createWindowId(getPortletName(), projectId, pageName,
+ parser.getFirstToken()));
+ if (portletWindow == null) {
+ // Trying if there is no single downloads window.
+ portletWindow = page.getWindow(pps.createWindowId(getPortletName(), projectId, pageName, null));
+ } else {
+ // Forgetting the unique-id.
+ parser.proceed();
+ }
+
+ // Checking if a downloads window was found on the page.
+ if (portletWindow == null) {
+ return null;
+ }
+
+ Map<String, Object> params = new HashMap<String, Object>();
+ fillParams(invocation, parser, params);
+
+ if (!params.containsKey(PortletRequestDecoder.META_PARAMETER)) {
+ params.put(PortletRequestDecoder.META_PARAMETER, Integer
+ .toHexString(PortletRequestDecoder.RENDER_MASK));
+ }
+
+ return getPortalObjectCF().doMapping(invocation, portletWindow,
+ params, false);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java 2007-04-20 22:28:42 UTC (rev 11176)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java 2007-04-20 22:52:06 UTC (rev 11177)
@@ -1,7 +1,17 @@
package org.jboss.labs.mapper.url;
import org.jboss.portal.server.ServerURL;
+import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.command.action.InvokeWindowCommand;
+import org.jboss.portal.core.model.portal.command.action.InvokePortletWindowActionCommand;
+import org.jboss.portal.core.model.portal.command.action.InvokePortletWindowRenderCommand;
+import org.jboss.portal.core.model.portal.command.PortalObjectCommand;
+import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.portal.core.model.portal.PortalObject;
+import org.jboss.forge.common.Constants;
/**
* @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
@@ -16,4 +26,65 @@
public void finishUrl(ServerURL url) {
url.getParameterMap().remove("post");
}
+
+ public ServerURL doMapping(ServerInvocation invocation, ControllerCommand cmd) {
+ if (cmd == null) {
+ throw new IllegalArgumentException("No null command accepted");
+ }
+
+ if (cmd instanceof InvokeWindowCommand) {
+ PortalObjectCommand poc = (PortalObjectCommand) cmd;
+ PortalObjectId targetId = poc.getTargetId();
+
+ if (targetId.getLength() <= 0) {
+ return null;
+ }
+
+ if (targetId.getName(targetId.getLength() - 1).toLowerCase().contains(getPath())) {
+ PortalObject po = getContainer().getObject(targetId);
+ StringBuffer sb = new StringBuffer();
+
+ if (po.getDeclaredProperty(Constants.PORTAL_OBJECT_LABS_MARKER) != null) {
+ addToPath(sb, targetId, false);
+ }
+
+ addTokenToPath(sb, getPath());
+
+ InvokePortletWindowActionCommand actionCmd = null;
+ InvokePortletWindowRenderCommand renderCmd = null;
+
+ StateString navigationalState = null;
+
+ if (poc instanceof InvokePortletWindowActionCommand) {
+ actionCmd = (InvokePortletWindowActionCommand) poc;
+ navigationalState = actionCmd.getNavigationalState();
+ } else if (poc instanceof InvokePortletWindowRenderCommand) {
+ renderCmd = (InvokePortletWindowRenderCommand) poc;
+ navigationalState = renderCmd.getNavigationalState();
+ }
+
+ String uniqueId = po.getDeclaredProperty(
+ Constants.PORTAL_OBJECT_UNIQUE_ID_MARKER);
+ if (uniqueId != null) {
+ addTokenToPath(sb, uniqueId);
+ }
+
+ if (navigationalState instanceof PortletParametersStateString) {
+ PortletParametersStateString ppss =
+ (PortletParametersStateString) navigationalState;
+
+ buildPathFromPortletParameters(sb, ppss);
+ }
+
+ ServerURL url = convertToURL(sb);
+ encodeUrl(actionCmd, renderCmd, url, navigationalState);
+
+ finishUrl(url);
+
+ return url;
+ }
+ }
+
+ return null;
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml 2007-04-20 22:28:42 UTC (rev 11176)
+++ labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml 2007-04-20 22:52:06 UTC (rev 11177)
@@ -80,7 +80,16 @@
<height>0</height>
</window>
- <window>
+ <window>
+ <window-name>BlogDefaultWindow</window-name>
+ <instance-ref>
+ BlogPortletInstanceDefaultPage
+ </instance-ref>
+ <region>right</region>
+ <height>2</height>
+ </window>
+
+ <window>
<window-name>PodcastPortletWindow</window-name>
<instance-ref>
PodcastPortletInstanceSmall
More information about the jboss-svn-commits
mailing list