[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