Author: smilek
Date: Mon Feb 26 22:24:20 2007
New Revision: 512150
URL: http://svn.apache.org/viewvc?view=rev&rev=512150
Log:
added support for specifying variant desktop layout template name for portlet
print-mode - this includes a change to GetPageAction ajaxapi which allows for
optional parameters (entity and layoutid) to cause the psml response to be
limited to a single layout fragment (and its children) and/or a single layout
fragment with a single portlet fragment (suppressing all other child fragments
in the layout)
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/desktop/impl/JetspeedDesktopImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/psml.vm
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/GetPageAction.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/desktop/JetspeedDesktopContext.java
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/desktop/impl/JetspeedDesktopImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/desktop/impl/JetspeedDesktopImpl.java?view=diff&rev=512150&r1=512149&r2=512150
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/desktop/impl/JetspeedDesktopImpl.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/desktop/impl/JetspeedDesktopImpl.java
Mon Feb 26 22:24:20 2007
@@ -143,7 +143,11 @@
HeaderResource hr = getHeaderResourceFactory().getHeaderResouce(
request );
JetspeedDesktopContext desktopContext = new
JetspeedDesktopContextImpl( request, this.baseUrlAccess, theme, hr,
defaultLayoutTemplateExtension );
- layoutDecorationTemplatePath =
desktopContext.getLayoutTemplatePath();
+ String layoutTemplateIdPropertyName = null;
+ if ( "true".equals( request.getRequest().getParameter(
"jsprintmode" ) ) )
+ layoutTemplateIdPropertyName =
JetspeedDesktopContext.LAYOUT_PRINT_TEMPLATE_ID_PROP;
+
+ layoutDecorationTemplatePath =
desktopContext.getLayoutTemplatePath( layoutTemplateIdPropertyName );
layoutDecorationTemplatePathWasAssigned = true;
RequestDispatcher dispatcher =
request.getRequest().getRequestDispatcher( layoutDecorationTemplatePath );
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/psml.vm
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/psml.vm?view=diff&rev=512150&r1=512149&r2=512150
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/psml.vm
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/ajax-xml/psml.vm
Mon Feb 26 22:24:20 2007
@@ -1,4 +1,4 @@
-#macro (traverseFragments $f)
+#macro (traverseFragments $f $singleLayoutId $singlePortletId)
<fragment id="$f.Id" type="$f.Type" name="$f.Name"
decorator="$!f.Decorator">
#set($hasSizesProperty=false)
#foreach ($prop in $f.getProperties().entrySet())
@@ -17,9 +17,11 @@
#end
</preference>
#end
-#if($f.Type == "layout")
+#if($f.Type == "layout" && (! $singleLayoutId || $f.Id == $singleLayoutId))
#foreach($subf in $f.Fragments)
- #traverseFragments($subf)
+ #if(! $singlePortletId || ($subf.Type == "portlet" &&
$subf.Id == $singlePortletId))
+ #traverseFragments($subf $singleLayoutId $singlePortletId)
+ #end
#end
#end
#if($f.Type == "portlet")
@@ -56,8 +58,12 @@
<action id="${action.ActionName}" type="${action.ActionType}"
name="${action.Name}" url="${action.Action}"/>
#end
-#if ($fragments == "true")
- #traverseFragments($page.RootFragment)
+#if ($fragments == "true")
+ #if ($layoutsingle)
+ #traverseFragments($layoutsingle $layoutsingle.Id $portletsingleId)
+ #else
+ #traverseFragments($page.RootFragment false false)
+ #end
#end
#if ($securityRefs)
#foreach ($sec in $securityRefs)
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/GetPageAction.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/GetPageAction.java?view=diff&rev=512150&r1=512149&r2=512150
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/GetPageAction.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/layout/impl/GetPageAction.java
Mon Feb 26 22:24:20 2007
@@ -16,6 +16,7 @@
package org.apache.jetspeed.layout.impl;
import java.util.HashMap;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -110,12 +111,53 @@
return success;
}
}
+
Map fragSizes = new HashMap();
Map portletIcons = new HashMap();
- retrieveFragmentSpecialProperties( requestContext,
page.getRootFragment(), fragSizes, portletIcons );
+
+ String singleLayoutId = getActionParameter(requestContext,
LAYOUTID);
+ if ( singleLayoutId != null )
+ { // build page representation with single layout
+ Fragment currentLayoutFragment = page.getFragmentById(
singleLayoutId );
+ if ( currentLayoutFragment == null )
+ {
+ throw new Exception("layout id not found: " +
singleLayoutId );
+ }
+ Fragment currentPortletFragment = null;
+
+ String singlePortletId = getActionParameter(requestContext,
PORTLETENTITY);
+ if ( singlePortletId != null )
+ {
+ Iterator layoutChildIter =
currentLayoutFragment.getFragments().iterator();
+ while ( layoutChildIter.hasNext() )
+ {
+ Fragment childFrag = (Fragment)layoutChildIter.next();
+ if ( childFrag != null )
+ {
+ if ( singlePortletId.equals( childFrag.getId() ) )
+ {
+ currentPortletFragment = childFrag;
+ break;
+ }
+ }
+ }
+ if ( currentPortletFragment == null )
+ {
+ throw new Exception("portlet id " + singlePortletId +
" not found in layout " + singleLayoutId );
+ }
+ resultMap.put( "portletsingleId",
currentPortletFragment.getId() );
+ }
+
+ retrieveFragmentSpecialProperties( requestContext,
currentLayoutFragment, fragSizes, portletIcons );
+ resultMap.put( "layoutsingle", currentLayoutFragment );
+ }
+ else
+ {
+ retrieveFragmentSpecialProperties( requestContext,
page.getRootFragment(), fragSizes, portletIcons );
+ }
resultMap.put( SIZES, fragSizes );
resultMap.put( "portletIcons", portletIcons );
- }
+ }
catch (Exception e)
{
// Log the exception
Modified:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/desktop/JetspeedDesktopContext.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/desktop/JetspeedDesktopContext.java?view=diff&rev=512150&r1=512149&r2=512150
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/desktop/JetspeedDesktopContext.java
(original)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/desktop/JetspeedDesktopContext.java
Mon Feb 26 22:24:20 2007
@@ -36,6 +36,8 @@
String LAYOUT_TEMPLATE_EXTENSION_PROP = "template.extension";
String LAYOUT_TEMPLATE_ID_PROP = "template.id";
+ String LAYOUT_PRINT_TEMPLATE_ID_PROP = "template.print.id";
+ String LAYOUT_PORTALUSER_TEMPLATE_ID_PROP = "template.portaluser.id";
String LAYOUT_TEMPLATE_ID_DEFAULT = "desktop";
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]