[jboss-svn-commits] JBL Code SVN: r9569 - in labs/jbosslabs/trunk/portal-extensions: forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Feb 17 11:28:01 EST 2007
Author: adamw
Date: 2007-02-17 11:28:01 -0500 (Sat, 17 Feb 2007)
New Revision: 9569
Added:
labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java
labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
Log:
http://jira.jboss.com/jira/browse/JBLAB-837
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java 2007-02-17 15:32:32 UTC (rev 9568)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/Constants.java 2007-02-17 16:28:01 UTC (rev 9569)
@@ -31,8 +31,15 @@
*/
public static final String FREEZONE_PATH_PARAM = "path";
public static final String ATTR_URL = "nav-url";
-
- /*
+
+ /**
+ * Name of a declared property for portal objects, which are handled
+ * and created by labs services. Value of this propety tells, which
+ * project does the object belong to.
+ */
+ public static final String PORTAL_OBJECT_LABS_MARKER = "labs";
+
+ /*
* Portal pages names.
*/
public static final String DEFAULT_PROJECT_PAGE = "info";
Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-02-17 15:32:32 UTC (rev 9568)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projectpages/ProjectPagesServiceBean.java 2007-02-17 16:28:01 UTC (rev 9569)
@@ -189,7 +189,7 @@
* @param projectId Project id, to which this object belongs.
*/
private void markAsLabsObject(PortalObject po, String projectId) {
- po.setDeclaredProperty("labs", projectId);
+ po.setDeclaredProperty(Constants.PORTAL_OBJECT_LABS_MARKER, projectId);
}
/**
@@ -213,7 +213,7 @@
*/
private void markAsLabsObject(Instance instance, String projectId)
throws PortletInvokerException {
- setInstancePreference(instance, "labs", projectId);
+ setInstancePreference(instance, Constants.PORTAL_OBJECT_LABS_MARKER, projectId);
}
/**
Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/url/LabsMainUrlFactory.java 2007-02-17 16:28:01 UTC (rev 9569)
@@ -0,0 +1,124 @@
+package org.jboss.labs.mapper.url;
+
+import org.jboss.portal.core.controller.command.mapper.URLFactoryDelegate;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.command.*;
+import org.jboss.portal.core.model.portal.PortalObject;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.server.ServerURL;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.portal.server.AbstractServerURL;
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.impl.PortletRequestEncoder;
+import org.jboss.portal.Mode;
+import org.jboss.portal.WindowState;
+import org.jboss.forge.common.Constants;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsMainUrlFactory extends URLFactoryDelegate {
+ private static final String FREEZONE_WINDOW_COMPONENT = "Freezone";
+
+ private void addTokenToPath(StringBuffer sb, String toAdd) {
+ sb.append('/').append(toAdd);
+ }
+
+ private void addToPath(StringBuffer sb, PortalObject po) {
+ while ((po instanceof Window) || (po instanceof Page)) {
+ addTokenToPath(sb, po.getName());
+ po = po.getParent();
+ }
+ }
+
+ private ServerURL convertToURL(StringBuffer sb) {
+ AbstractServerURL asu = new AbstractServerURL();
+ asu.setPortalRequestPath(sb.toString());
+
+ return asu;
+ }
+
+ public ServerURL doMapping(ServerInvocation serverInvocation,
+ ControllerCommand command) {
+ if (command == null) {
+ throw new IllegalArgumentException("No null command accepted");
+ }
+
+ System.out.println(" LABS URLS");
+
+ if (command instanceof PortalObjectCommand) {
+ StringBuffer sb = new StringBuffer();
+ PortalObjectCommand poc = (PortalObjectCommand) command;
+
+ if (poc.getTarget() == null) {
+ return convertToURL(sb);
+ }
+
+ String projectId = poc.getTarget().getDeclaredProperty(
+ Constants.PORTAL_OBJECT_LABS_MARKER);
+
+ if (projectId != null) {
+ System.out.println(" ADDING PROJECT");
+ addTokenToPath(sb, projectId);
+ }
+
+ if (poc instanceof RenderPageCommand) {
+ System.out.println(" RENDER PAGE");
+ addToPath(sb, poc.getTarget());
+
+ return convertToURL(sb);
+ } else if (poc instanceof InvokePortletWindowActionCommand) {
+ System.out.println(" ACTION");
+ InvokePortletWindowActionCommand actionCmd =
+ (InvokePortletWindowActionCommand) poc;
+
+ if (actionCmd.getWindow().getName().contains(FREEZONE_WINDOW_COMPONENT)) {
+ System.out.println(" FREEZONE");
+ String path =
+ actionCmd.getFormParameters().getValue(Constants.FREEZONE_PATH_PARAM);
+ if (path != null) {
+ addTokenToPath(sb, path);
+ actionCmd.getFormParameters().remove(Constants.FREEZONE_PATH_PARAM);
+ } else {
+ addToPath(sb, poc.getTarget().getParent());
+ }
+ } else {
+ addToPath(sb, poc.getTarget());
+ }
+
+ Mode mode = actionCmd.getMode();
+ WindowState windowState = actionCmd.getWindowState();
+
+ ServerURL url = convertToURL(sb);
+
+ StateString interactionState = actionCmd.getInteractionState();
+ StateString navigationalState = actionCmd.getNavigationalState();
+ PortletRequestEncoder.encodeAction(url, navigationalState, interactionState,
+ mode, windowState);
+ } else if (poc instanceof InvokePortletWindowRenderCommand) {
+ System.out.println(" RENDER");
+ InvokePortletWindowRenderCommand renderCmd =
+ (InvokePortletWindowRenderCommand) poc;
+
+ addToPath(sb, poc.getTarget());
+
+ Mode mode = renderCmd.getMode();
+ WindowState windowState = renderCmd.getWindowState();
+
+ ServerURL url = convertToURL(sb);
+
+ StateString navigationalState = renderCmd.getNavigationalState();
+ PortletRequestEncoder.encodeRender(url, navigationalState, mode, windowState);
+ } else if (poc instanceof ImportPageToDashboardCommand) {
+ System.out.println(" DASHBOARD");
+ ServerURL url = convertToURL(sb);
+ url.setParameterValue("action", "import");
+
+ return url;
+ }
+ }
+
+ return null;
+ }
+}
More information about the jboss-svn-commits
mailing list