You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by mo...@apache.org on 2005/05/10 21:28:18 UTC

cvs commit: jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html customizer-portletset-addref.vm

morciuch    2005/05/10 12:28:18

  Modified:    src/java/org/apache/jetspeed/modules/actions/portlets
                        CustomizeSetAction.java
               webapp/WEB-INF/templates/vm/portlets/html
                        customizer-portletset-addref.vm
  Log:
  Filtering for portlet set customizer reference selection (see issue http://issues.apache.org/jira/browse/JS1-544)
  
  Revision  Changes    Path
  1.53      +743 -518  jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/CustomizeSetAction.java
  
  Index: CustomizeSetAction.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/CustomizeSetAction.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- CustomizeSetAction.java	21 Mar 2005 18:21:36 -0000	1.52
  +++ CustomizeSetAction.java	10 May 2005 19:28:17 -0000	1.53
  @@ -13,79 +13,76 @@
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
  - 
  +
   package org.apache.jetspeed.modules.actions.portlets;
   
   // Jetspeed imports
  -import org.apache.jetspeed.portal.PortletSet;
  -import org.apache.jetspeed.portal.PortletSkin;
  -import org.apache.jetspeed.portal.PortletController;
  -import org.apache.jetspeed.portal.PortletSetController;
  -import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  -import org.apache.jetspeed.services.Profiler;
  -import org.apache.jetspeed.services.Registry;
  -import org.apache.jetspeed.services.PortalToolkit;
  -import org.apache.jetspeed.services.TemplateLocator;
  -import org.apache.jetspeed.services.rundata.JetspeedRunData;
  +import java.text.MessageFormat;
  +import java.util.ArrayList;
  +import java.util.Collections;
  +import java.util.Comparator;
  +import java.util.HashMap;
  +import java.util.Iterator;
  +import java.util.LinkedList;
  +import java.util.List;
  +import java.util.Map;
  +import java.util.TreeMap;
  +
  +import org.apache.commons.lang.StringUtils;
   import org.apache.jetspeed.om.BaseSecurityReference;
   import org.apache.jetspeed.om.SecurityReference;
  +import org.apache.jetspeed.om.profile.Control;
  +import org.apache.jetspeed.om.profile.Controller;
  +import org.apache.jetspeed.om.profile.Entry;
  +import org.apache.jetspeed.om.profile.MetaInfo;
  +import org.apache.jetspeed.om.profile.PSMLDocument;
  +import org.apache.jetspeed.om.profile.Portlets;
   import org.apache.jetspeed.om.profile.Profile;
  -import org.apache.jetspeed.om.profile.ProfileLocator;
   import org.apache.jetspeed.om.profile.ProfileException;
  +import org.apache.jetspeed.om.profile.ProfileLocator;
   import org.apache.jetspeed.om.profile.QueryLocator;
  -import org.apache.jetspeed.om.registry.RegistryEntry;
  -import org.apache.jetspeed.om.registry.PortletEntry;
  -import org.apache.jetspeed.om.registry.PortletInfoEntry;
  -import org.apache.jetspeed.om.registry.base.BaseCategory;
  -import org.apache.jetspeed.om.profile.Portlets;
  -import org.apache.jetspeed.om.profile.psml.PsmlPortlets;
  -import org.apache.jetspeed.om.profile.Entry;
  -import org.apache.jetspeed.om.profile.psml.PsmlEntry;
   import org.apache.jetspeed.om.profile.Reference;
  -import org.apache.jetspeed.om.profile.psml.PsmlReference;
   import org.apache.jetspeed.om.profile.Skin;
  -import org.apache.jetspeed.om.profile.psml.PsmlSkin;
  -import org.apache.jetspeed.om.profile.MetaInfo;
  -import org.apache.jetspeed.om.profile.psml.PsmlMetaInfo;
  -import org.apache.jetspeed.om.profile.Controller;
  -import org.apache.jetspeed.om.profile.psml.PsmlController;
  -import org.apache.jetspeed.om.profile.Control;
   import org.apache.jetspeed.om.profile.psml.PsmlControl;
  -import org.apache.jetspeed.om.profile.PSMLDocument;
  +import org.apache.jetspeed.om.profile.psml.PsmlController;
  +import org.apache.jetspeed.om.profile.psml.PsmlEntry;
  +import org.apache.jetspeed.om.profile.psml.PsmlMetaInfo;
  +import org.apache.jetspeed.om.profile.psml.PsmlPortlets;
  +import org.apache.jetspeed.om.profile.psml.PsmlReference;
  +import org.apache.jetspeed.om.profile.psml.PsmlSkin;
  +import org.apache.jetspeed.om.registry.PortletEntry;
  +import org.apache.jetspeed.om.registry.PortletInfoEntry;
  +import org.apache.jetspeed.om.registry.RegistryEntry;
  +import org.apache.jetspeed.om.registry.base.BaseCategory;
  +import org.apache.jetspeed.om.security.Group;
   import org.apache.jetspeed.om.security.JetspeedUser;
  +import org.apache.jetspeed.om.security.Role;
  +import org.apache.jetspeed.portal.PortletController;
  +import org.apache.jetspeed.portal.PortletSet;
  +import org.apache.jetspeed.portal.PortletSetController;
  +import org.apache.jetspeed.portal.PortletSkin;
  +import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.services.JetspeedSecurity;
  +import org.apache.jetspeed.services.PortalToolkit;
  +import org.apache.jetspeed.services.Profiler;
  +import org.apache.jetspeed.services.Registry;
  +import org.apache.jetspeed.services.TemplateLocator;
   import org.apache.jetspeed.services.customlocalization.CustomLocalization;
   import org.apache.jetspeed.services.idgenerator.JetspeedIdGenerator;
  -import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
  +import org.apache.jetspeed.services.resources.JetspeedResources;
  +import org.apache.jetspeed.services.rundata.JetspeedRunData;
   import org.apache.jetspeed.services.security.PortalResource;
  +import org.apache.jetspeed.services.statemanager.SessionState;
   import org.apache.jetspeed.util.AutoProfile;
   import org.apache.jetspeed.util.PortletSessionState;
   import org.apache.jetspeed.util.template.JetspeedLink;
   import org.apache.jetspeed.util.template.JetspeedLinkFactory;
  -import org.apache.jetspeed.services.statemanager.SessionState;
  -import org.apache.jetspeed.services.resources.JetspeedResources;
  -
  -// Turbine stuff
   import org.apache.turbine.util.DynamicURI;
   import org.apache.turbine.util.RunData;
  -
  -
  -// Velocity Stuff
   import org.apache.velocity.context.Context;
   
  -// Java imports
  -import java.util.ArrayList;
  -import java.util.Map;
  -import java.util.HashMap;
  -import java.util.TreeMap;
  -import java.util.LinkedList;
  -import java.util.List;
  -import java.util.Iterator;
  -import java.util.Collections;
  -import java.util.Comparator;
  -import java.text.MessageFormat;
  -
   /**
    * This action implements the default portletset behavior customizer 
    * 
  @@ -98,40 +95,49 @@
   public class CustomizeSetAction extends VelocityPortletAction
   {
   
  -    private static final String USER_SELECTIONS = "session.portlets.user.selections";
  +    private static final String USER_SELECTIONS =
  +        "session.portlets.user.selections";
       private static final String UI_PORTLETS_SELECTED = "portletsSelected";
       private static final String PORTLET_LIST = "session.portlets.list";
       private static final String ALL_PORTLET_LIST = "session.all.portlets.list";
  -    private static final String PORTLET_LIST_PAGE_SIZE = "session.portlets.page.size";
  -    private static final String HIDE_EMPTY_CATEGORIES = "customizer.hide.empty.categories";
  -    
  +    private static final String PORTLET_LIST_PAGE_SIZE =
  +        "session.portlets.page.size";
  +    private static final String HIDE_EMPTY_CATEGORIES =
  +        "customizer.hide.empty.categories";
  +
       public static final String FILTER_FIELDS = "filter_fields";
       public static final String FILTER_VALUES = "filter_values";
   
  +	public static final String FILTER_TYPE = "filter_type";
  +	public static final String FILTER_VALUE = "filter_value";
  +
       /**
        * Static initialization of the logger for this class
  -     */    
  -    private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(CustomizeSetAction.class.getName());    
  -    
  +     */
  +    private static final JetspeedLogger logger =
  +        JetspeedLogFactoryService.getLogger(CustomizeSetAction.class.getName());
  +
       /** 
        * Subclasses must override this method to provide default behavior 
        * for the portlet action
        */
  -    protected void buildNormalContext(VelocityPortlet portlet, 
  -                                      Context context,
  -                                      RunData rundata) throws Exception
  +    protected void buildNormalContext(
  +        VelocityPortlet portlet,
  +        Context context,
  +        RunData rundata)
  +        throws Exception
       {
           JetspeedRunData jdata = (JetspeedRunData) rundata;
           SessionState customizationState = jdata.getPageSessionState();
           Profile profile = jdata.getCustomizedProfile();
  -        String mediaType = profile.getMediaType ();
  +        String mediaType = profile.getMediaType();
   
           // set velocity variable of mediatype (displayed in the customizer menu)
           context.put("mtype", profile.getMediaType());
   
           // make the list of already used panes/portlets available through the 'runs' reference
           context.put("runs", AutoProfile.getPortletList(rundata));
  -        
  +
           // we should first retrieve the portlet to customize
           PortletSet set = (PortletSet) (jdata).getCustomized();
   
  @@ -139,21 +145,24 @@
           String mode = rundata.getParameters().getString("mode");
           if (mode == null)
           {
  -          mode = (String) customizationState.getAttribute("customize-mode");
  -          if ((mode == null) || (mode.equalsIgnoreCase("addset")) || (mode.equalsIgnoreCase("general")))
  -          {
  -            mode = "layout";
  -          }
  -          
  +            mode = (String) customizationState.getAttribute("customize-mode");
  +            if ((mode == null)
  +                || (mode.equalsIgnoreCase("addset"))
  +                || (mode.equalsIgnoreCase("general")))
  +            {
  +                mode = "layout";
  +            }
  +
           }
           else
           {
  -          if ((mediaType.equalsIgnoreCase("wml")) && (!mode.equalsIgnoreCase("add")))
  -          {
  -            mode = "layout";
  -          }
  +            if ((mediaType.equalsIgnoreCase("wml"))
  +                && (!mode.equalsIgnoreCase("add")))
  +            {
  +                mode = "layout";
  +            }
   
  -          customizationState.setAttribute("customize-mode", mode);
  +            customizationState.setAttribute("customize-mode", mode);
           }
   
           String template = (String) context.get("template");
  @@ -161,28 +170,32 @@
           if (template != null)
           {
               int idx = template.lastIndexOf(".");
  -            
  +
               if (idx > 0)
               {
                   template = template.substring(0, idx);
               }
  -            
  +
               StringBuffer buffer = new StringBuffer(template);
               buffer.append("-").append(mode).append(".vm");
  -            
  -            template = TemplateLocator.locatePortletTemplate(rundata, buffer.toString());
  +
  +            template =
  +                TemplateLocator.locatePortletTemplate(
  +                    rundata,
  +                    buffer.toString());
               context.put("feature", template);
   
           }
  -    
  +
           if (set == null)
           {
               return;
           }
   
           // get the customization state for this page
  -        String customizedPaneName = (String) customizationState.getAttribute("customize-paneName");
  -        if (customizedPaneName == null) 
  +        String customizedPaneName =
  +            (String) customizationState.getAttribute("customize-paneName");
  +        if (customizedPaneName == null)
           {
               customizedPaneName = "*";
           }
  @@ -191,58 +204,62 @@
           context.put("panename", customizedPaneName);
           context.put("skin", set.getPortletConfig().getPortletSkin());
           context.put("set", set);
  -        context.put("action", "portlets.CustomizeSetAction");        
  -        context.put("controllers", buildInfoList(rundata, Registry.PORTLET_CONTROLLER, mediaType));
  +        context.put("action", "portlets.CustomizeSetAction");
  +        context.put(
  +            "controllers",
  +            buildInfoList(rundata, Registry.PORTLET_CONTROLLER, mediaType));
           //context.put("skins", buildList(rundata, Registry.SKIN));
           //context.put("securitys", buildList(rundata, Registry.SECURITY));
           context.put("customizer", portlet);
  -    
  +
           String controllerName = set.getController().getConfig().getName();
           context.put("currentController", controllerName);
   
  -        context.put("currentSecurityRef", set.getPortletConfig().getSecurityRef());
  +        context.put(
  +            "currentSecurityRef",
  +            set.getPortletConfig().getSecurityRef());
   
  -       /** 
  -        * Special handling for wml profiles
  -        * no skins, no properties menuentry, no panes 
  -        * --------------------------------------------------------------------------
  -        * last modified: 12/10/01
  -        * Andreas Kempf, Siemens ICM S CP OP, Munich
  -        * mailto: A.Kempf@web.de
  -        */
  +        /** 
  +         * Special handling for wml profiles
  +         * no skins, no properties menuentry, no panes 
  +         * --------------------------------------------------------------------------
  +         * last modified: 12/10/01
  +         * Andreas Kempf, Siemens ICM S CP OP, Munich
  +         * mailto: A.Kempf@web.de
  +         */
   
           if (mediaType.equalsIgnoreCase("wml"))
           {
  -          context.put("currentSkin", "Not for wml!");
  -          context.put("allowproperties", "false");
  +            context.put("currentSkin", "Not for wml!");
  +            context.put("allowproperties", "false");
           }
           else
           {
  -          if (set.getPortletConfig().getSkin() != null)
  -          {
  -            context.put("currentSkin", set.getPortletConfig().getPortletSkin().getName());
  -          }
  -          context.put("allowproperties", "true");
  +            if (set.getPortletConfig().getSkin() != null)
  +            {
  +                context.put(
  +                    "currentSkin",
  +                    set.getPortletConfig().getPortletSkin().getName());
  +            }
  +            context.put("allowproperties", "true");
           }
   
  -
           context.put("allowpane", "false");
  -        
  +
           // do not allow panes for wml profiles
  -        if ((!mediaType.equalsIgnoreCase("wml")) && (set.getController() instanceof PortletSetController))
  +        if ((!mediaType.equalsIgnoreCase("wml"))
  +            && (set.getController() instanceof PortletSetController))
           {
  -          if (customizedPaneName != null)
  -          {
  -            context.put("allowpane", "true");
  -          }
  +            if (customizedPaneName != null)
  +            {
  +                context.put("allowpane", "true");
  +            }
           }
           else
           {
               context.put("allowportlet", "true");
           }
           // --------------------------------------------------------------------------
  -            
  -
   
           if ("add".equals(mode)) // build context for add mode
           {
  @@ -254,45 +271,121 @@
                   PortletSessionState.clearAttribute(rundata, USER_SELECTIONS);
                   PortletSessionState.clearAttribute(rundata, PORTLET_LIST);
               }
  -            
  +
               ArrayList allPortlets = new ArrayList();
  -            List portlets  = buildPortletList(rundata, set, mediaType, allPortlets);
  -            Map userSelections = getUserSelections(rundata); 
  +            List portlets =
  +                buildPortletList(rundata, set, mediaType, allPortlets);
  +            Map userSelections = getUserSelections(rundata);
               // Build a list of categories from the available portlets
  -            List categories = buildCategoryList(rundata, mediaType, allPortlets);
  +            List categories =
  +                buildCategoryList(rundata, mediaType, allPortlets);
               context.put("categories", categories);
  -            
  +
               context.put("parents", PortletFilter.buildParentList(allPortlets));
               addFiltersToContext(rundata, context);
  -            
  -            int size = getSize(portlet);               
  +
  +            int size = getSize(portlet);
               int end = Math.min(start + size, portlets.size());
  -                
  +
               if (start > 0)
               {
                   context.put("prev", String.valueOf(Math.max(start - size, 0)));
               }
  -                
  +
               if (start + size < portlets.size())
               {
                   context.put("next", String.valueOf(start + size));
               }
  -                
  +
               context.put("browser", portlets.subList(start, end));
               context.put("size", new Integer(size));
               context.put(UI_PORTLETS_SELECTED, userSelections);
  -            
  -			context.put("portlets", portlets);
  +
  +            context.put("portlets", portlets);
           }
           else if ("addref".equals(mode))
           {
  +            //String filterType = rundata.getParameters().getString("filter_type");
  +            //String filterValue = rundata.getParameters().getString("filter_value");
  +            String filterType =
  +                (String) PortletSessionState.getAttributeWithFallback(
  +                    portlet,
  +                    rundata,
  +                    FILTER_TYPE);
  +            String filterValue =
  +                (String) PortletSessionState.getAttributeWithFallback(
  +                    portlet,
  +                    rundata,
  +                    FILTER_VALUE);
  +
               Iterator psmlIterator = null;
  -            psmlIterator = Profiler.query(new QueryLocator(QueryLocator.QUERY_ALL));
  -            
  +            if (StringUtils.isEmpty(filterType)
  +                || StringUtils.isEmpty(filterValue))
  +            {
  +                psmlIterator =
  +                    Profiler.query(new QueryLocator(QueryLocator.QUERY_ALL));
  +            }
  +            else
  +            {
  +                PortletSessionState.setAttribute(
  +                    portlet,
  +                    rundata,
  +                    FILTER_TYPE,
  +                    filterType);
  +				PortletSessionState.setAttribute(
  +					portlet,
  +					rundata,
  +					FILTER_VALUE,
  +					filterValue);
  +				context.put(FILTER_TYPE, filterType);
  +				context.put(FILTER_VALUE, filterValue);
  +				
  +                QueryLocator ql = null;
  +                if (filterType.equalsIgnoreCase("filter_type_user"))
  +                {
  +                    try
  +                    {
  +                        JetspeedUser user =
  +                            JetspeedSecurity.getUser(filterValue);
  +                        ql = new QueryLocator(QueryLocator.QUERY_USER);
  +                        ql.setUser(user);
  +                        psmlIterator = Profiler.query(ql);
  +                    }
  +                    catch (Exception e)
  +                    {
  +                    }
  +                }
  +                else if (filterType.equalsIgnoreCase("filter_type_role"))
  +                {
  +                    try
  +                    {
  +                        Role role = JetspeedSecurity.getRole(filterValue);
  +                        ql = new QueryLocator(QueryLocator.QUERY_ROLE);
  +                        ql.setRole(role);
  +                        psmlIterator = Profiler.query(ql);
  +                    }
  +                    catch (Exception e)
  +                    {
  +                    }
  +                }
  +                else if (filterType.equalsIgnoreCase("filter_type_group"))
  +                {
  +                    try
  +                    {
  +                        Group group = JetspeedSecurity.getGroup(filterValue);
  +                        ql = new QueryLocator(QueryLocator.QUERY_GROUP);
  +                        ql.setGroup(group);
  +                        psmlIterator = Profiler.query(ql);
  +                    }
  +                    catch (Exception e)
  +                    {
  +                    }
  +                }
  +            }
  +
               // Set Start and End
  -            int start = rundata.getParameters().getInt("start", 0);                
  +            int start = rundata.getParameters().getInt("start", 0);
               int size = getSize(portlet);
  - 
   
               // Only include entries in compatibale with the Media-type/Country/Language
               List psmlList = new LinkedList();
  @@ -301,26 +394,35 @@
               while (psmlIterator.hasNext())
               {
                   refProfile = (Profile) psmlIterator.next();
  -                
  +
                   if (refProfile.getMediaType() != null)
                   {
  -                    if (profile.getMediaType().equals(refProfile.getMediaType()) == false)
  +                    if (profile
  +                        .getMediaType()
  +                        .equals(refProfile.getMediaType())
  +                        == false)
                       {
                           continue;
                       }
                   }
  -                
  +
                   if (profile.getLanguage() != null)
                   {
                       if (refProfile.getLanguage() != null)
                       {
  -                        if (profile.getLanguage().equals(refProfile.getLanguage()) == true)
  +                        if (profile
  +                            .getLanguage()
  +                            .equals(refProfile.getLanguage())
  +                            == true)
                           {
                               if (profile.getCountry() != null)
                               {
                                   if (refProfile.getCountry() != null)
                                   {
  -                                    if (profile.getCountry().equals(refProfile.getCountry()) == false)
  +                                    if (profile
  +                                        .getCountry()
  +                                        .equals(refProfile.getCountry())
  +                                        == false)
                                       {
                                           // Profile and Ref are different countries
                                           continue;
  @@ -351,13 +453,13 @@
                           continue;
                       }
                   }
  -                
  +
                   if (profile.getPath().equals(refProfile.getPath()) == true)
                   {
                       // Do not allow Profile to reference it self
                       continue;
                   }
  -                
  +
                   // Only add profiles to list that will be displayed
                   if (profileCounter >= (start + size))
                   {
  @@ -369,23 +471,23 @@
                   }
                   profileCounter++;
               }
  -               
  +
               // Add Start to context
               if (start > 0)
               {
                   context.put("prev", String.valueOf(Math.max(start - size, 0)));
               }
  -                
  +
               // Set end to context
               if ((size == psmlList.size()) && (psmlIterator.hasNext()))
               {
                   context.put("next", String.valueOf(start + size));
               }
  -            
  +
               context.put("psml", psmlList.iterator());
           }
           else // build context for layout mode
  -        {
  +            {
               // nothing specific to do
           }
   
  @@ -396,8 +498,9 @@
           int size = 15;
           try
           {
  -            size = Integer.parseInt(portlet.getPortletConfig()
  -                                           .getInitParameter("size"));
  +            size =
  +                Integer.parseInt(
  +                    portlet.getPortletConfig().getInitParameter("size"));
           }
           catch (Exception e)
           {
  @@ -411,7 +514,8 @@
       {
           //((JetspeedRunData)rundata).setCustomized(null);
           //rundata.setScreenTemplate("Home");
  -        SessionState customizationState = ((JetspeedRunData) rundata).getPageSessionState();
  +        SessionState customizationState =
  +            ((JetspeedRunData) rundata).getPageSessionState();
           customizationState.setAttribute("customize-mode", "layout");
       }
   
  @@ -422,7 +526,7 @@
           doSkin(rundata, context);
           doLayout(rundata, context);
           doSecurity(rundata, context);
  -        
  +
           Profile profile = ((JetspeedRunData) rundata).getCustomizedProfile();
           try
           {
  @@ -440,38 +544,45 @@
           }
   
       }
  -    
  +
       /** Save customizations and get out of customization state */
       public void doApply(RunData rundata, Context context)
       {
           doSave(rundata, context);
       }
  -    
  +
       /** Add a new portlets element in the customized set */
       public void doAddset(RunData rundata, Context context)
       {
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
           String title = rundata.getParameters().getString("title", "My Pane");
  -        
  +
           if (set != null)
           {
  -            Portlets portlets = ((JetspeedRunData) rundata).getCustomizedProfile()
  -                                                           .getDocument()
  -                                                           .getPortletsById(set.getID());
  -            
  +            Portlets portlets =
  +                ((JetspeedRunData) rundata)
  +                    .getCustomizedProfile()
  +                    .getDocument()
  +                    .getPortletsById(set.getID());
  +
               if (portlets != null)
               {
                   Portlets p = new PsmlPortlets();
                   p.setMetaInfo(new PsmlMetaInfo());
                   p.getMetaInfo().setTitle(title);
                   p.setId(JetspeedIdGenerator.getNextPeid());
  -                SecurityReference defaultRef = PortalToolkit.getDefaultSecurityRef(
  -                    ((JetspeedRunData) rundata).getCustomizedProfile());
  +                SecurityReference defaultRef =
  +                    PortalToolkit.getDefaultSecurityRef(
  +                        ((JetspeedRunData) rundata).getCustomizedProfile());
                   if (defaultRef != null)
                   {
                       if (logger.isDebugEnabled())
                       {
  -                        logger.debug("CustomizeSetAction: setting default portlet set security to [" + defaultRef.getParent() + "]");
  +                        logger.debug(
  +                            "CustomizeSetAction: setting default portlet set security to ["
  +                                + defaultRef.getParent()
  +                                + "]");
                       }
                       p.setSecurityRef(defaultRef);
                   }
  @@ -479,107 +590,125 @@
               }
           }
   
  -        SessionState customizationState = ((JetspeedRunData) rundata).getPageSessionState();
  +        SessionState customizationState =
  +            ((JetspeedRunData) rundata).getPageSessionState();
           customizationState.setAttribute("customize-mode", "layout");
       }
  -    
  -   public void doPrevious(RunData rundata, Context context) throws Exception
  -   {
  -       int queryStart = rundata.getParameters().getInt("previous", 0);
  -       String mtype = rundata.getParameters().getString("mtype", null);
  -       maintainUserSelections(rundata);
  -       JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
  -       DynamicURI duri = null;
  -       if (mtype == null)
  -       {
  -           duri = link.setTemplate("Customize").addQueryData("start", String.valueOf(queryStart));
  -       }
  -       else
  -       {
  -           duri = link.setTemplate("Customize").
  -               addQueryData("start", String.valueOf(queryStart)).
  -               addQueryData("mtype", mtype);
  -       }
  -       JetspeedLinkFactory.putInstance(link);
  -       rundata.setRedirectURI(duri.toString());
  -       return;
  -   }
  -
  -   public void doNext(RunData rundata, Context context) throws Exception
  -   {
  -       int queryStart = rundata.getParameters().getInt("next", 0);
  -       String mtype = rundata.getParameters().getString("mtype", null);
  -       maintainUserSelections(rundata);
  -       JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
  -       DynamicURI duri = null;
  -       if (mtype == null)
  -       {
  -           duri = link.setTemplate("Customize").addQueryData("start", String.valueOf(queryStart));
  -       }
  -       else
  -       {
  -           duri = link.setTemplate("Customize").
  -               addQueryData("start", String.valueOf(queryStart)).
  -               addQueryData("mtype", mtype);
  -       }
  -       JetspeedLinkFactory.putInstance(link);
  -       rundata.setRedirectURI(duri.toString());
  -       return;
  -   }
  -
  -   protected void maintainUserSelections(RunData rundata) throws Exception
  -   {
  -       int size = rundata.getParameters().getInt("size", 0);
  -       int previous = rundata.getParameters().getInt("previous", -1);
  -       int start = 0;
  -       if (previous >= 0)
  -       {
  -           start = previous + size;
  -       }
  -
  -       String[] pnames = rundata.getParameters().getStrings("pname");
  -       //System.out.println("start = "+start+" size = "+size);
  -       //System.out.println("pnames = "+rundata.getParameters());
  -       Map userSelections = getUserSelections(rundata);
  -       List portlets = (List) PortletSessionState.getAttribute(rundata, PORTLET_LIST, null);
  -       if (portlets != null)
  -       {
  -           int end = Math.min(start + size, portlets.size());
  -           int pnamesIndex = 0;
  -           //Go through all the portlets on this page and figure out which ones have been 
  -           //checked and which ones unchecked and accordingly update the userSelectionMap
  -           for (int portletIndex = start; portletIndex < end; portletIndex++)
  -           {
  -               PortletEntry entry = (PortletEntry) portlets.get(portletIndex);
  -               if (pnames != null 
  -                   && pnamesIndex < pnames.length 
  -                   && pnames[pnamesIndex].equals(entry.getName()))
  -               {
  +
  +    public void doPrevious(RunData rundata, Context context) throws Exception
  +    {
  +        int queryStart = rundata.getParameters().getInt("previous", 0);
  +        String mtype = rundata.getParameters().getString("mtype", null);
  +        maintainUserSelections(rundata);
  +        JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
  +        DynamicURI duri = null;
  +        if (mtype == null)
  +        {
  +            duri =
  +                link.setTemplate("Customize").addQueryData(
  +                    "start",
  +                    String.valueOf(queryStart));
  +        }
  +        else
  +        {
  +            duri =
  +                link
  +                    .setTemplate("Customize")
  +                    .addQueryData("start", String.valueOf(queryStart))
  +                    .addQueryData("mtype", mtype);
  +        }
  +        JetspeedLinkFactory.putInstance(link);
  +        rundata.setRedirectURI(duri.toString());
  +        return;
  +    }
  +
  +    public void doNext(RunData rundata, Context context) throws Exception
  +    {
  +        int queryStart = rundata.getParameters().getInt("next", 0);
  +        String mtype = rundata.getParameters().getString("mtype", null);
  +        maintainUserSelections(rundata);
  +        JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
  +        DynamicURI duri = null;
  +        if (mtype == null)
  +        {
  +            duri =
  +                link.setTemplate("Customize").addQueryData(
  +                    "start",
  +                    String.valueOf(queryStart));
  +        }
  +        else
  +        {
  +            duri =
  +                link
  +                    .setTemplate("Customize")
  +                    .addQueryData("start", String.valueOf(queryStart))
  +                    .addQueryData("mtype", mtype);
  +        }
  +        JetspeedLinkFactory.putInstance(link);
  +        rundata.setRedirectURI(duri.toString());
  +        return;
  +    }
  +
  +    protected void maintainUserSelections(RunData rundata) throws Exception
  +    {
  +        int size = rundata.getParameters().getInt("size", 0);
  +        int previous = rundata.getParameters().getInt("previous", -1);
  +        int start = 0;
  +        if (previous >= 0)
  +        {
  +            start = previous + size;
  +        }
  +
  +        String[] pnames = rundata.getParameters().getStrings("pname");
  +        //System.out.println("start = "+start+" size = "+size);
  +        //System.out.println("pnames = "+rundata.getParameters());
  +        Map userSelections = getUserSelections(rundata);
  +        List portlets =
  +            (List) PortletSessionState.getAttribute(
  +                rundata,
  +                PORTLET_LIST,
  +                null);
  +        if (portlets != null)
  +        {
  +            int end = Math.min(start + size, portlets.size());
  +            int pnamesIndex = 0;
  +            //Go through all the portlets on this page and figure out which ones have been 
  +            //checked and which ones unchecked and accordingly update the userSelectionMap
  +            for (int portletIndex = start; portletIndex < end; portletIndex++)
  +            {
  +                PortletEntry entry = (PortletEntry) portlets.get(portletIndex);
  +                if (pnames != null
  +                    && pnamesIndex < pnames.length
  +                    && pnames[pnamesIndex].equals(entry.getName()))
  +                {
                       userSelections.put(entry.getName(), entry);
                       pnamesIndex++;
  -               }
  -               else
  -               {
  +                }
  +                else
  +                {
                       userSelections.remove(entry.getName());
  -               }
  -           }
  -           PortletSessionState.setAttribute(rundata, USER_SELECTIONS, userSelections);
  -           /*
  -           Iterator it = userSelections.keySet().iterator();           
  -           System.out.print("User Selections: ");
  -           while (it.hasNext())
  -           {
  -               System.out.print(", "+it.next());
  -           }
  -           System.out.println("\n");
  -           */
  -       }
  -       else
  -       {
  -           throw new Exception("Master Portlet List is null!");
  -       }
  +                }
  +            }
  +            PortletSessionState.setAttribute(
  +                rundata,
  +                USER_SELECTIONS,
  +                userSelections);
  +            /*
  +            Iterator it = userSelections.keySet().iterator();           
  +            System.out.print("User Selections: ");
  +            while (it.hasNext())
  +            {
  +                System.out.print(", "+it.next());
  +            }
  +            System.out.println("\n");
  +            */
  +        }
  +        else
  +        {
  +            throw new Exception("Master Portlet List is null!");
  +        }
   
  -   }
  +    }
   
       /** Add new portlets in the customized set */
       public void doAdd(RunData rundata, Context context) throws Exception
  @@ -593,8 +722,9 @@
            * mailto: A.Kempf@web.de
            */
           //boolean isWML = AutoProfile.doIt (rundata, true).getMediaType().equalsIgnoreCase("wml");
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  -        
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +
           maintainUserSelections(rundata);
           Map userSelections = getUserSelections(rundata);
           String[] pnames = new String[userSelections.size()];
  @@ -603,68 +733,73 @@
   
           // Create a ClearPortletControl
           Control ctrl = new PsmlControl();
  -        ctrl.setName ("ClearPortletControl");
  +        ctrl.setName("ClearPortletControl");
   
  -        
           if ((pnames != null) && (set != null))
           {
  -            Portlets portlets = ((JetspeedRunData) rundata).getCustomizedProfile()
  -                                                           .getDocument()
  -                                                           .getPortletsById(set.getID());
  +            Portlets portlets =
  +                ((JetspeedRunData) rundata)
  +                    .getCustomizedProfile()
  +                    .getDocument()
  +                    .getPortletsById(set.getID());
   
               List usedPortlets = AutoProfile.getPortletList(rundata);
               boolean addIt;
               int cc;
               Entry usedEntry;
  -                                          
  +
               for (int i = 0; i < pnames.length; i++)
               {
  -                PortletEntry entry = (PortletEntry) Registry.getEntry(Registry.PORTLET, pnames[i]);
  +                PortletEntry entry =
  +                    (PortletEntry) Registry.getEntry(
  +                        Registry.PORTLET,
  +                        pnames[i]);
   
                   // add only new portlets!
                   if ((entry != null) && (portlets != null))
                   {
  -                
  +
                       addIt = true;
  - /*
  -                    for (cc=0; cc<usedPortlets.size(); cc++)
  -                    {
  -                      usedEntry = (Entry) usedPortlets.get(cc);
  -                      if (entry.getName().equals(usedEntry.getParent()))
  -                      {
  -                        addIt = false;
  -                        break;
  -                      }
  -                      
  -                    }
  -*/
  +                    /*
  +                                       for (cc=0; cc<usedPortlets.size(); cc++)
  +                                       {
  +                                         usedEntry = (Entry) usedPortlets.get(cc);
  +                                         if (entry.getName().equals(usedEntry.getParent()))
  +                                         {
  +                                           addIt = false;
  +                                           break;
  +                                         }
  +                                         
  +                                       }
  +                    */
                       if (addIt)
                       {
  -                      Entry p = new PsmlEntry();
  -                      // add the ClearPortletControl to wml entries      
  -                      //if (isWML)
  -                      //  p.setControl (ctrl);
  -                    
  -                      p.setParent(pnames[i]);
  -                      p.setId(JetspeedIdGenerator.getNextPeid());
  -//                      SecurityReference defaultRef = PortalToolkit.getDefaultSecurityRef(
  -//                          ((JetspeedRunData) rundata).getCustomizedProfile());
  -//                      if (defaultRef != null)
  -//                      {
  -//                          if (Log.getLogger().isDebugEnabled())
  -//                          {
  -//                              Log.debug("CustomizeSetAction: setting default portlet security to [" + defaultRef.getParent() + "]");
  -//                          }
  -//                          p.setSecurityRef(defaultRef);
  -//                      }
  -                      portlets.addEntry(p);
  +                        Entry p = new PsmlEntry();
  +                        // add the ClearPortletControl to wml entries      
  +                        //if (isWML)
  +                        //  p.setControl (ctrl);
  +
  +                        p.setParent(pnames[i]);
  +                        p.setId(JetspeedIdGenerator.getNextPeid());
  +                        //                      SecurityReference defaultRef = PortalToolkit.getDefaultSecurityRef(
  +                        //                          ((JetspeedRunData) rundata).getCustomizedProfile());
  +                        //                      if (defaultRef != null)
  +                        //                      {
  +                        //                          if (Log.getLogger().isDebugEnabled())
  +                        //                          {
  +                        //                              Log.debug("CustomizeSetAction: setting default portlet security to [" + defaultRef.getParent() + "]");
  +                        //                          }
  +                        //                          p.setSecurityRef(defaultRef);
  +                        //                      }
  +                        portlets.addEntry(p);
                       }
                   }
               }
           }
           // --------------------------------------------------------------------------
   
  -        SessionState customizationState = ((JetspeedRunData) rundata).getPageSessionState();
  +        SessionState customizationState =
  +            ((JetspeedRunData) rundata).getPageSessionState();
           customizationState.setAttribute("customize-mode", "layout");
   
           /** 
  @@ -679,43 +814,48 @@
             //rundata.save();
           }
            */
  -        
  +
       }
   
       /** Add new Reference in the customized set */
       public void doAddref(RunData rundata, Context context) throws Exception
       {
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
           String[] refNames = rundata.getParameters().getStrings("refname");
  -        
  +
           // Create a ClearPortletControl
           Control ctrl = new PsmlControl();
  -        ctrl.setName ("ClearPortletControl");
  +        ctrl.setName("ClearPortletControl");
   
  -        
           if ((refNames != null) && (set != null))
           {
  -            Portlets portlets = ((JetspeedRunData) rundata).getCustomizedProfile()
  -                                                           .getDocument()
  -                                                           .getPortletsById(set.getID());
  +            Portlets portlets =
  +                ((JetspeedRunData) rundata)
  +                    .getCustomizedProfile()
  +                    .getDocument()
  +                    .getPortletsById(set.getID());
   
               for (int i = 0; i < refNames.length; i++)
               {
  -                SecurityReference sref = getSecurityReference(rundata, refNames[i]);
  +                SecurityReference sref =
  +                    getSecurityReference(rundata, refNames[i]);
                   if (sref != null)
                   {
                       Reference ref = new PsmlReference();
  -                    ref.setPath(refNames[i]);              
  +                    ref.setPath(refNames[i]);
                       ref.setSecurityRef(sref);
                       portlets.addReference(ref);
                   }
                   else
                   {
  -                    String tmpl = CustomLocalization.getString("CUSTOMIZER_ADD_REF_ERROR", rundata);
  -                    Object[] args = {
  -                        refNames[i]
  -                    };
  -                    String message = MessageFormat.format(tmpl, args).toString();
  +                    String tmpl =
  +                        CustomLocalization.getString(
  +                            "CUSTOMIZER_ADD_REF_ERROR",
  +                            rundata);
  +                    Object[] args = { refNames[i] };
  +                    String message =
  +                        MessageFormat.format(tmpl, args).toString();
   
                       rundata.addMessage(message.concat("<br>"));
                       if (logger.isWarnEnabled())
  @@ -725,7 +865,8 @@
                   }
               }
           }
  -        SessionState customizationState = ((JetspeedRunData) rundata).getPageSessionState();
  +        SessionState customizationState =
  +            ((JetspeedRunData) rundata).getPageSessionState();
           customizationState.setAttribute("customize-mode", "layout");
       }
   
  @@ -735,7 +876,9 @@
        * @param path the psml locator path
        * @return the security reference of the referenced resource     
        */
  -    protected SecurityReference getSecurityReference(RunData rundata, String path)
  +    protected SecurityReference getSecurityReference(
  +        RunData rundata,
  +        String path)
       {
           try
           {
  @@ -758,8 +901,8 @@
                                                            JetspeedSecurity.PERMISSION_VIEW))
                       {
                       */
  -                        return rootSet.getSecurityRef();    
  -        //            }
  +                    return rootSet.getSecurityRef();
  +                    //            }
                   }
               }
           }
  @@ -769,20 +912,23 @@
           }
           return null;
       }
  -    
  +
       /** Sets the metainfo for this entry */
       public void doMetainfo(RunData rundata, Context context)
       {
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
           String title = rundata.getParameters().getString("title");
           String description = rundata.getParameters().getString("description");
   
           if (set != null)
           {
  -            Portlets portlets = ((JetspeedRunData) rundata).getCustomizedProfile()
  -                                                           .getDocument()
  -                                                           .getPortletsById(set.getID());
  -            
  +            Portlets portlets =
  +                ((JetspeedRunData) rundata)
  +                    .getCustomizedProfile()
  +                    .getDocument()
  +                    .getPortletsById(set.getID());
  +
               if (portlets != null)
               {
                   MetaInfo meta = portlets.getMetaInfo();
  @@ -791,14 +937,14 @@
                       meta = new PsmlMetaInfo();
                       portlets.setMetaInfo(meta);
                   }
  -            
  +
                   if (title != null)
                   {
                       meta.setTitle(title);
                       set.setTitle(title);
                   }
   
  -                if(description != null)
  +                if (description != null)
                   {
                       meta.setDescription(description);
                       set.setDescription(description);
  @@ -812,22 +958,25 @@
       {
           // we should first retrieve the portlet to customize and its parameters
           // definition
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  -        
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +
           try
  -        {            
  +        {
               String controller = rundata.getParameters().getString("controller");
  -            
  +
               if (controller != null)
               {
  -                Profile profile = ((JetspeedRunData) rundata).getCustomizedProfile();
  +                Profile profile =
  +                    ((JetspeedRunData) rundata).getCustomizedProfile();
                   PortletController pc = PortalToolkit.getController(controller);
   
                   if (pc != null)
                   {
                       set.setController(pc);
   
  -                    Portlets portlets = profile.getDocument().getPortletsById(set.getID());
  +                    Portlets portlets =
  +                        profile.getDocument().getPortletsById(set.getID());
   
                       Controller c = portlets.getController();
                       if (c == null)
  @@ -836,8 +985,9 @@
                           portlets.setController(c);
                       }
                       c.setName(controller);
  -                    
  -                    String linkedControl = pc.getConfig().getInitParameter("control");
  +
  +                    String linkedControl =
  +                        pc.getConfig().getInitParameter("control");
   
                       if (linkedControl != null)
                       {
  @@ -856,7 +1006,7 @@
           {
               logger.error("Exception", e);
           }
  -        
  +
       }
   
       /**
  @@ -876,14 +1026,17 @@
       {
           // we should first retrieve the portlet to customize and its parameters
           // definition
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  -        
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +
           try
  -        {            
  +        {
               String skin = rundata.getParameters().getString("skin");
  -            Profile profile = ((JetspeedRunData) rundata).getCustomizedProfile();
  -            Portlets portlets = profile.getDocument().getPortletsById(set.getID());
  -            
  +            Profile profile =
  +                ((JetspeedRunData) rundata).getCustomizedProfile();
  +            Portlets portlets =
  +                profile.getDocument().getPortletsById(set.getID());
  +
               // skin is neither null nor zero-length
               if ((skin != null) && (skin.trim().length() > 0))
               {
  @@ -902,58 +1055,69 @@
                   }
                   else
                   {
  -                    logger.warn("Unable to update skin for portlet set " 
  -                             + set.getID() + " because skin " + skin 
  -                             + " does not exist.");
  +                    logger.warn(
  +                        "Unable to update skin for portlet set "
  +                            + set.getID()
  +                            + " because skin "
  +                            + skin
  +                            + " does not exist.");
                       return;
                   }
               }
               else
               {
  -              // skin is either null or zero-length
  -              String custPortletSetID = portlets.getId();
  -              String rootPortletSetID = profile.getRootSet().getID();
  -              
  -              // set system default skin for root PSML element
  -              if (custPortletSetID != null && rootPortletSetID != null &&
  -                  custPortletSetID.equals(rootPortletSetID))
  -              {
  -                // get system default skin
  -                String defaultSkinName = JetspeedResources.getString("services.PortalToolkit.default.skin");
  -                PortletSkin defaultSkin = PortalToolkit.getSkin(defaultSkinName);
  -                
  -                if (defaultSkin != null)
  -                {
  -                  set.getPortletConfig().setPortletSkin((PortletSkin) defaultSkin);
  -                  Skin psmlSkin = portlets.getSkin();
  -                  
  -                  if (psmlSkin == null)
  -                  {
  -                    portlets.setSkin(new PsmlSkin());
  -                  }
  -                
  -                  portlets.getSkin().setName(defaultSkin.getName());
  +                // skin is either null or zero-length
  +                String custPortletSetID = portlets.getId();
  +                String rootPortletSetID = profile.getRootSet().getID();
  +
  +                // set system default skin for root PSML element
  +                if (custPortletSetID != null
  +                    && rootPortletSetID != null
  +                    && custPortletSetID.equals(rootPortletSetID))
  +                {
  +                    // get system default skin
  +                    String defaultSkinName =
  +                        JetspeedResources.getString(
  +                            "services.PortalToolkit.default.skin");
  +                    PortletSkin defaultSkin =
  +                        PortalToolkit.getSkin(defaultSkinName);
  +
  +                    if (defaultSkin != null)
  +                    {
  +                        set.getPortletConfig().setPortletSkin(
  +                            (PortletSkin) defaultSkin);
  +                        Skin psmlSkin = portlets.getSkin();
  +
  +                        if (psmlSkin == null)
  +                        {
  +                            portlets.setSkin(new PsmlSkin());
  +                        }
  +
  +                        portlets.getSkin().setName(defaultSkin.getName());
  +                    }
  +                    else
  +                    {
  +                        logger.warn(
  +                            "Unable to set default skin for root portlet set "
  +                                + set.getID()
  +                                + " because skin "
  +                                + skin
  +                                + " does not exist.");
  +                        return;
  +                    }
                   }
                   else
                   {
  -                    logger.warn("Unable to set default skin for root portlet set " 
  -                             + set.getID() + " because skin " + skin 
  -                             + " does not exist.");
  -                    return;
  +                    // By setting the skin to null, the parent's skin will be used.
  +                    set.getPortletConfig().setPortletSkin((PortletSkin) null);
  +                    portlets.setSkin(null);
                   }
  -              }
  -              else
  -              {
  -                // By setting the skin to null, the parent's skin will be used.
  -                set.getPortletConfig().setPortletSkin((PortletSkin) null);
  -                portlets.setSkin(null);
  -              }
               }
           }
           catch (Exception e)
           {
               logger.error(e);
  -        }        
  +        }
       }
   
       /**
  @@ -966,16 +1130,21 @@
       {
           // we should first retrieve the portlet to customize and its parameters
           // definition
  -        PortletSet set = (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  -        
  +        PortletSet set =
  +            (PortletSet) ((JetspeedRunData) rundata).getCustomized();
  +
           try
  -        {            
  -            String securityRefName = rundata.getParameters().getString("securityRef");
  +        {
  +            String securityRefName =
  +                rundata.getParameters().getString("securityRef");
               SecurityReference securityRef = null;
  -            Profile profile = ((JetspeedRunData) rundata).getCustomizedProfile();
  -            Portlets portlets = profile.getDocument().getPortletsById(set.getID());
  +            Profile profile =
  +                ((JetspeedRunData) rundata).getCustomizedProfile();
  +            Portlets portlets =
  +                profile.getDocument().getPortletsById(set.getID());
   
  -            if ((securityRefName != null) && (securityRefName.trim().length() > 0))
  +            if ((securityRefName != null)
  +                && (securityRefName.trim().length() > 0))
               {
                   securityRef = new BaseSecurityReference();
                   securityRef.setParent(securityRefName);
  @@ -986,54 +1155,65 @@
           catch (Exception e)
           {
               logger.error("Exception", e);
  -        }        
  +        }
       }
  -    
   
       // Create a list of all available portlets
  -    public static List buildPortletList(RunData data, PortletSet set, String mediaType, List allPortlets)
  +    public static List buildPortletList(
  +        RunData data,
  +        PortletSet set,
  +        String mediaType,
  +        List allPortlets)
       {
  -        List list = new ArrayList();                                                                 
  +        List list = new ArrayList();
           Iterator i = Registry.get(Registry.PORTLET).listEntryNames();
  -        
  +
           while (i.hasNext())
           {
  -            PortletEntry entry = (PortletEntry) Registry.getEntry(Registry.PORTLET,
  -                                                                 (String) i.next());
  -            
  +            PortletEntry entry =
  +                (PortletEntry) Registry.getEntry(
  +                    Registry.PORTLET,
  +                    (String) i.next());
  +
               Iterator medias;
               //Make a master portlet list, we will eventually us this to build a category list
               allPortlets.add(entry);
               // MODIFIED: Selection now takes care of the specified mediatype!
  -            if (JetspeedSecurity.checkPermission((JetspeedUser) data.getUser(), 
  -                                                 new PortalResource(entry), 
  -                                                 JetspeedSecurity.PERMISSION_VIEW)
  -              && ((!entry.isHidden()) 
  -                && (!entry.getType().equals(PortletEntry.TYPE_ABSTRACT))
  -                && entry.hasMediaType(mediaType)))
  +            if (JetspeedSecurity
  +                .checkPermission(
  +                    (JetspeedUser) data.getUser(),
  +                    new PortalResource(entry),
  +                    JetspeedSecurity.PERMISSION_VIEW)
  +                && ((!entry.isHidden())
  +                    && (!entry.getType().equals(PortletEntry.TYPE_ABSTRACT))
  +                    && entry.hasMediaType(mediaType)))
               {
                   list.add(entry);
               }
           }
  -        
  -        String[] filterFields = (String[]) PortletSessionState.getAttribute(data, FILTER_FIELDS);
  -        String[] filterValues = (String[]) PortletSessionState.getAttribute(data, FILTER_VALUES);
  +
  +        String[] filterFields =
  +            (String[]) PortletSessionState.getAttribute(data, FILTER_FIELDS);
  +        String[] filterValues =
  +            (String[]) PortletSessionState.getAttribute(data, FILTER_VALUES);
           list = PortletFilter.filterPortlets(list, filterFields, filterValues);
  -        
  -        Collections.sort(list,
  -                new Comparator() {
  -                    public int compare(Object o1, Object o2)
  -                    {
  -                        String t1 = (((PortletEntry) o1).getTitle() != null)
  -                            ? ((PortletEntry) o1).getTitle().toLowerCase()
  -                            : ((PortletEntry) o1).getName().toLowerCase();
  -                        String t2 = (((PortletEntry) o2).getTitle() != null)
  -                            ? ((PortletEntry) o2).getTitle().toLowerCase()
  -                            : ((PortletEntry) o2).getName().toLowerCase();
  -                                                   
  -                        return t1.compareTo(t2);
  -                    }
  -                });
  +
  +        Collections.sort(list, new Comparator()
  +        {
  +            public int compare(Object o1, Object o2)
  +            {
  +                String t1 =
  +                    (((PortletEntry) o1).getTitle() != null)
  +                        ? ((PortletEntry) o1).getTitle().toLowerCase()
  +                        : ((PortletEntry) o1).getName().toLowerCase();
  +                String t2 =
  +                    (((PortletEntry) o2).getTitle() != null)
  +                        ? ((PortletEntry) o2).getTitle().toLowerCase()
  +                        : ((PortletEntry) o2).getName().toLowerCase();
  +
  +                return t1.compareTo(t2);
  +            }
  +        });
           //this is used only by maintainUserSelection - which does not need the 
           //portlet list to be regenrated       
           PortletSessionState.setAttribute(data, PORTLET_LIST, list);
  @@ -1042,141 +1222,165 @@
   
       public static Map getUserSelections(RunData data)
       {
  -        Map userSelections = (Map) PortletSessionState.getAttribute(data, USER_SELECTIONS, null);
  +        Map userSelections =
  +            (Map) PortletSessionState.getAttribute(data, USER_SELECTIONS, null);
           if (userSelections == null)
           {
               userSelections = new HashMap();
  -            PortletSessionState.setAttribute(data, USER_SELECTIONS, userSelections);
  +            PortletSessionState.setAttribute(
  +                data,
  +                USER_SELECTIONS,
  +                userSelections);
           }
           return userSelections;
       }
  -    
  -    public static List buildInfoList(RunData data, String regName, String mediaType)
  +
  +    public static List buildInfoList(
  +        RunData data,
  +        String regName,
  +        String mediaType)
       {
           List list = new ArrayList();
  -        
  -        String mime = ((JetspeedRunData) data).getCapability()
  -                                              .getPreferredType()
  -                                              .toString();
  -                                             
  +
  +        String mime =
  +            ((JetspeedRunData) data)
  +                .getCapability()
  +                .getPreferredType()
  +                .toString();
  +
           Iterator m = Registry.get(Registry.MEDIA_TYPE).listEntryNames();
  -//        String mediaName = "html";
  -//        
  -//        while(m.hasNext())
  -//        {
  -//            MediaTypeEntry me = (MediaTypeEntry)
  -//                Registry.getEntry(Registry.MEDIA_TYPE,(String)m.next());
  -//            
  -//            if (me!=null)
  -//            {
  -//                if (mime.equals(me.getMimeType()))
  -//                {
  -//                    mediaName = me.getName();
  -//                    break;
  -//                }
  -//            }
  -//        }
  -                    
  +        //        String mediaName = "html";
  +        //        
  +        //        while(m.hasNext())
  +        //        {
  +        //            MediaTypeEntry me = (MediaTypeEntry)
  +        //                Registry.getEntry(Registry.MEDIA_TYPE,(String)m.next());
  +        //            
  +        //            if (me!=null)
  +        //            {
  +        //                if (mime.equals(me.getMimeType()))
  +        //                {
  +        //                    mediaName = me.getName();
  +        //                    break;
  +        //                }
  +        //            }
  +        //        }
  +
           Iterator i = Registry.get(regName).listEntryNames();
  -        
  +
           while (i.hasNext())
           {
  -            PortletInfoEntry entry = (PortletInfoEntry) Registry.getEntry(regName,
  -                                                                 (String) i.next());
  -            
  +            PortletInfoEntry entry =
  +                (PortletInfoEntry) Registry.getEntry(
  +                    regName,
  +                    (String) i.next());
  +
               // MODIFIED: Selection now takes care of the specified mediatype!
  -            if (JetspeedSecurity.checkPermission((JetspeedUser) data.getUser(), 
  -                                                  new PortalResource(entry), 
  -                                                  JetspeedSecurity.PERMISSION_CUSTOMIZE)
  -               && ((!entry.isHidden())
  -                 && entry.hasMediaType(mediaType)))
  +            if (JetspeedSecurity
  +                .checkPermission(
  +                    (JetspeedUser) data.getUser(),
  +                    new PortalResource(entry),
  +                    JetspeedSecurity.PERMISSION_CUSTOMIZE)
  +                && ((!entry.isHidden()) && entry.hasMediaType(mediaType)))
               {
                   list.add(entry);
               }
           }
  -        
  -        Collections.sort(list,
  -                new Comparator() {
  -                    public int compare(Object o1, Object o2)
  -                    {
  -                        String t1 = (((RegistryEntry) o1).getTitle() != null)
  -                            ? ((RegistryEntry) o1).getTitle()
  -                            : ((RegistryEntry) o1).getName();
  -                        String t2 = (((RegistryEntry) o2).getTitle() != null)
  -                            ? ((RegistryEntry) o2).getTitle()
  -                            : ((RegistryEntry) o2).getName();
  -                        
  -                        return t1.compareTo(t2);
  -                    }
  -                });
  -        
  +
  +        Collections.sort(list, new Comparator()
  +        {
  +            public int compare(Object o1, Object o2)
  +            {
  +                String t1 =
  +                    (((RegistryEntry) o1).getTitle() != null)
  +                        ? ((RegistryEntry) o1).getTitle()
  +                        : ((RegistryEntry) o1).getName();
  +                String t2 =
  +                    (((RegistryEntry) o2).getTitle() != null)
  +                        ? ((RegistryEntry) o2).getTitle()
  +                        : ((RegistryEntry) o2).getName();
  +
  +                return t1.compareTo(t2);
  +            }
  +        });
  +
           return list;
       }
  -    
  +
       public static List buildList(RunData data, String regName)
       {
           List list = new ArrayList();
  -        
  -        Iterator i = Registry.get(regName).listEntryNames();        
  +
  +        Iterator i = Registry.get(regName).listEntryNames();
           while (i.hasNext())
           {
               RegistryEntry entry = Registry.getEntry(regName, (String) i.next());
  -            
  -            if (JetspeedSecurity.checkPermission((JetspeedUser) data.getUser(),
  -                                                 new PortalResource(entry),
  -                                                 JetspeedSecurity.PERMISSION_CUSTOMIZE)
  -               && (!entry.isHidden()))
  +
  +            if (JetspeedSecurity
  +                .checkPermission(
  +                    (JetspeedUser) data.getUser(),
  +                    new PortalResource(entry),
  +                    JetspeedSecurity.PERMISSION_CUSTOMIZE)
  +                && (!entry.isHidden()))
               {
                   list.add(entry);
               }
           }
  -        
  -        Collections.sort(list,
  -                new Comparator() {
  -                    public int compare(Object o1, Object o2)
  -                    {
  -                        String t1 = (((RegistryEntry) o1).getTitle() != null)
  -                            ? ((RegistryEntry) o1).getTitle()
  -                            : ((RegistryEntry) o1).getName();
  -                        String t2 = (((RegistryEntry) o2).getTitle() != null)
  -                            ? ((RegistryEntry) o2).getTitle()
  -                            : ((RegistryEntry) o2).getName();
  -                        
  -                        return t1.compareTo(t2);
  -                    }
  -                });
  -        
  +
  +        Collections.sort(list, new Comparator()
  +        {
  +            public int compare(Object o1, Object o2)
  +            {
  +                String t1 =
  +                    (((RegistryEntry) o1).getTitle() != null)
  +                        ? ((RegistryEntry) o1).getTitle()
  +                        : ((RegistryEntry) o1).getName();
  +                String t2 =
  +                    (((RegistryEntry) o2).getTitle() != null)
  +                        ? ((RegistryEntry) o2).getTitle()
  +                        : ((RegistryEntry) o2).getName();
  +
  +                return t1.compareTo(t2);
  +            }
  +        });
  +
           return list;
       }
  -    
  +
       /**
        * Builds a list of all portlet categories
        * @param RunData current requests RunData object
        * @param List portlets All available portlets
  -     */    
  -    public static List buildCategoryList(RunData data, String mediaType, List portlets)
  +     */
  +    public static List buildCategoryList(
  +        RunData data,
  +        String mediaType,
  +        List portlets)
       {
  -        boolean hideEmpties = JetspeedResources.getBoolean(HIDE_EMPTY_CATEGORIES, true);
  +        boolean hideEmpties =
  +            JetspeedResources.getBoolean(HIDE_EMPTY_CATEGORIES, true);
           TreeMap catMap = new TreeMap();
           Iterator pItr = portlets.iterator();
           while (pItr.hasNext())
           {
  -            PortletEntry entry =  (PortletEntry) pItr.next();
  +            PortletEntry entry = (PortletEntry) pItr.next();
               if (hideEmpties)
               {
  -                if (JetspeedSecurity.checkPermission((JetspeedUser) data.getUser(), 
  -                                         new PortalResource(entry), 
  -                                         JetspeedSecurity.PERMISSION_VIEW)
  -                    && ((!entry.isHidden()) 
  -                    && (!entry.getType().equals(PortletEntry.TYPE_ABSTRACT))
  -                    && entry.hasMediaType(mediaType)))
  +                if (JetspeedSecurity
  +                    .checkPermission(
  +                        (JetspeedUser) data.getUser(),
  +                        new PortalResource(entry),
  +                        JetspeedSecurity.PERMISSION_VIEW)
  +                    && ((!entry.isHidden())
  +                        && (!entry.getType().equals(PortletEntry.TYPE_ABSTRACT))
  +                        && entry.hasMediaType(mediaType)))
                   {
                       Iterator cItr = entry.listCategories();
                       while (cItr.hasNext())
                       {
                           BaseCategory cat = (BaseCategory) cItr.next();
                           catMap.put(cat.getName(), cat);
  -                    }            
  +                    }
                   }
               }
               else
  @@ -1186,26 +1390,30 @@
                   {
                       BaseCategory cat = (BaseCategory) cItr.next();
                       catMap.put(cat.getName(), cat);
  -                }            
  +                }
               }
           }
  -        
  +
           //BaseCategory allCat = new BaseCategory();
  -          //      allCat.setName("All Portlets");
  -            //    catMap.put(allCat.getName(), allCat);
  +        //      allCat.setName("All Portlets");
  +        //    catMap.put(allCat.getName(), allCat);
           return new ArrayList(catMap.values());
  -        
  +
       }
  -    
  +
       /**
        * Adds a filter over the available portlets list based on category
        */
  -    public void doFiltercategory(RunData rundata, Context context) throws Exception
  +    public void doFiltercategory(RunData rundata, Context context)
  +        throws Exception
       {
  -        String filterCat = rundata.getParameters().getString("filter_category", "All Portlets");
  +        String filterCat =
  +            rundata.getParameters().getString(
  +                "filter_category",
  +                "All Portlets");
           PortletSessionState.setAttribute(rundata, "filter_category", filterCat);
           maintainUserSelections(rundata);
  -        
  +
           String mtype = rundata.getParameters().getString("mtype", null);
           JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
           DynamicURI duri = null;
  @@ -1215,35 +1423,43 @@
           }
           else
           {
  -            duri = link.setTemplate("Customize").addQueryData("start", "0").addQueryData("mtype", mtype);
  +            duri =
  +                link.setTemplate("Customize").addQueryData(
  +                    "start",
  +                    "0").addQueryData(
  +                    "mtype",
  +                    mtype);
           }
           JetspeedLinkFactory.putInstance(link);
           rundata.setRedirectURI(duri.toString());
           return;
       }
  -    
  +
       /**
        * Adds a filter over the available portlets list based on category
        */
       public void doFilter(RunData rundata, Context context) throws Exception
       {
  -        String[] filterFields = rundata.getParameters().getStrings("filter_field");
  +        String[] filterFields =
  +            rundata.getParameters().getStrings("filter_field");
           String[] filterValues = new String[filterFields.length];
  -        for(int i=0; i<filterFields.length; i++)
  +        for (int i = 0; i < filterFields.length; i++)
           {
               String filterField = filterFields[i];
  -            if(filterField != null)
  +            if (filterField != null)
               {
  -                String filterValue = rundata.getParameters().getString(filterField + ":filter_value");
  +                String filterValue =
  +                    rundata.getParameters().getString(
  +                        filterField + ":filter_value");
                   filterValues[i] = filterValue;
               }
  -         }
  -        
  +        }
  +
           PortletSessionState.setAttribute(rundata, FILTER_FIELDS, filterFields);
           PortletSessionState.setAttribute(rundata, FILTER_VALUES, filterValues);
  -         
  +
           maintainUserSelections(rundata);
  -    
  +
           String mtype = rundata.getParameters().getString("mtype", null);
           JetspeedLink link = JetspeedLinkFactory.getInstance(rundata);
           DynamicURI duri = null;
  @@ -1253,27 +1469,36 @@
           }
           else
           {
  -            duri = link.setTemplate("Customize").addQueryData("start", "0").addQueryData("mtype", mtype);
  +            duri =
  +                link.setTemplate("Customize").addQueryData(
  +                    "start",
  +                    "0").addQueryData(
  +                    "mtype",
  +                    mtype);
           }
           JetspeedLinkFactory.putInstance(link);
           rundata.setRedirectURI(duri.toString());
           return;
       }
  -    
  +
       private void addFiltersToContext(RunData data, Context context)
       {
  -        String[] filterFields = (String[]) PortletSessionState.getAttribute(data, FILTER_FIELDS);
  -        String[] filterValues = (String[]) PortletSessionState.getAttribute(data, FILTER_VALUES);
  -        if(filterFields != null && filterValues != null && filterFields.length == filterValues.length)
  +        String[] filterFields =
  +            (String[]) PortletSessionState.getAttribute(data, FILTER_FIELDS);
  +        String[] filterValues =
  +            (String[]) PortletSessionState.getAttribute(data, FILTER_VALUES);
  +        if (filterFields != null
  +            && filterValues != null
  +            && filterFields.length == filterValues.length)
           {
  -            for(int i=0; i<filterFields.length; i++)
  +            for (int i = 0; i < filterFields.length; i++)
               {
                   String field = filterFields[i];
                   String value = filterValues[i];
  -        
  +
                   context.put(field + "_filter_value", value);
               }
           }
       }
  -        
  +
   }
  
  
  
  1.4       +10 -0     jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/customizer-portletset-addref.vm
  
  Index: customizer-portletset-addref.vm
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/customizer-portletset-addref.vm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- customizer-portletset-addref.vm	29 Aug 2004 22:27:27 -0000	1.3
  +++ customizer-portletset-addref.vm	10 May 2005 19:28:18 -0000	1.4
  @@ -14,6 +14,16 @@
   limitations under the License.
   *#
   
  +<form method="post">
  +<b>${l10n.BROWSER_PSML_FILTER_STRING_VM}</b> <input type="Text" name="filter_value" value="$!filter_value"/>
  +<select name="filter_type">
  +  <option value="filter_type_user" #if ($filter_type == "filter_type_user") selected #end>${l10n.BROWSER_PSML_USER_VM}</option>
  +  <option value="filter_type_role" #if ($filter_type == "filter_type_role") selected #end>${l10n.BROWSER_PSML_ROLE_VM}</option>  
  +  <option value="filter_type_group" #if ($filter_type == "filter_type_group") selected #end>${l10n.BROWSER_PSML_GROUP_VM}</option>    
  +</select>
  +<input type="submit" name="eventSubmit_doFilterref" value="${l10n.BROWSER_PSML_FILTER_VM}"/>
  +</form>
  +
   #set ($mtype = $!data.Parameters.getString("mtype"))
   #if ($!mtype) 
       <form action="$jslink.Template.addQueryData('mtype', $mtype)" method="post">
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org