weaver      2004/03/13 16:04:46

  Modified:    portal/src/java/org/apache/jetspeed/aggregator
                        PageAggregator.java
  Log:
  PageAggreagtor now sets up decorator/content filter look up order based

  on the layout-decorator of the root fragment
  
  Revision  Changes    Path
  1.9       +33 -1     
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/PageAggregator.java
  
  Index: PageAggregator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/PageAggregator.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- PageAggregator.java       8 Mar 2004 00:22:31 -0000       1.8
  +++ PageAggregator.java       14 Mar 2004 00:04:46 -0000      1.9
  @@ -15,12 +15,15 @@
    */
   package org.apache.jetspeed.aggregator;
   
  +import java.util.ArrayList;
   import java.util.Iterator;
  +import java.util.List;
   import java.util.Stack;
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.jetspeed.Jetspeed;
  +import org.apache.jetspeed.contentserver.ContentFilter;
   import org.apache.jetspeed.cps.BaseCommonService;
   import org.apache.jetspeed.cps.CommonPortletServices;
   import org.apache.jetspeed.cps.CPSInitializationException;
  @@ -129,6 +132,35 @@
           {
               throw new JetspeedException("No root Fragment found in Page");
           }
  +        
  +        String layoutDecorator = currentFragment.getDecorator();
  +        if(layoutDecorator == null)
  +        {
  +            layoutDecorator = page.getDefaultDecorator(currentFragment.getType());
  +        }
  +        
  +        //TODO: Remove hard coding of locations and use CM + TL
  +        List contentPathes = (List) 
context.getSessionAttribute(ContentFilter.SESSION_CONTENT_PATH_ATTR);
  +        
  +        if(contentPathes == null)
  +        {
  +            contentPathes = new ArrayList(2);
  +            context.setSessionAttribute(ContentFilter.SESSION_CONTENT_PATH_ATTR, 
contentPathes);
  +        }
  +        
  +        if(contentPathes.size() < 1)
  +        {
  +            // define the lookup order
  +            contentPathes.add(currentFragment.getType()+"/html/"+layoutDecorator);
  +            contentPathes.add("portlet/html");
  +            contentPathes.add("generic/html");
  +            contentPathes.add("/html");
  +        }
  +        else
  +        {
  +            contentPathes.set(0, 
currentFragment.getType()+"/html/"+layoutDecorator);
  +        }
  +        
   
           if 
(checkAccess(context,(currentFragment.getAcl()!=null)?currentFragment.getAcl():acl, 
"render"))
           {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to