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 ta...@apache.org on 2004/11/12 07:34:26 UTC

cvs commit: jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/pam PortletApplicationResources.java

taylor      2004/11/11 22:34:26

  Modified:    applications/pam/src/java/org/apache/jetspeed/portlets/site
                        SiteBrowserPortlet.java
               applications/pam/src/webapp/WEB-INF web.xml portlet.xml
               applications/pam project.xml
               applications/pam/src/java/org/apache/jetspeed/portlets/site/resources
                        SiteResources.properties
               applications/pam/src/java/org/apache/jetspeed/portlets/pam
                        PortletApplicationResources.java
  Added:       applications/pam/src/webapp/WEB-INF/velocity
                        velocity.properties velocity-macros.vm toolbox.xml
               applications/pam/src/java/org/apache/jetspeed/portlets/site
                        SiteDetailsPortlet.java FolderProxyBean.java
               applications/pam/src/webapp/WEB-INF/model
                        spring-portlet-configuration.xml
                        validator-configuration.xml
               applications/pam .classpath .project
               applications/pam/src/java/org/apache/jetspeed/portlets/site/resources
                        SiteResources_fr.properties
               applications/pam/src/webapp/WEB-INF/view/site
                        folder-details.vm
  Log:
  toying around with the stupid fw, code masterbation, start of site portlet
  
  Revision  Changes    Path
  1.1                  jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/velocity/velocity.properties
  
  Index: velocity.properties
  ===================================================================
  # Copyright 2004 The Apache Software Foundation
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  # 
  #     http://www.apache.org/licenses/LICENSE-2.0
  # 
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  #----------------------------------------------------------------------------
  # These are the default properties for the
  # Velocity Runtime. These values are used when
  # Runtime.init() is called, and when Runtime.init(properties)
  # fails to find the specificed properties file.
  #----------------------------------------------------------------------------
  
  #----------------------------------------------------------------------------
  # R U N T I M E  L O G  
  #----------------------------------------------------------------------------
  # This is the location of the Velocity Runtime log.
  #----------------------------------------------------------------------------
  
  runtime.log = velocity.log
  
  #----------------------------------------------------------------------------
  # T E M P L A T E  E N C O D I N G
  #----------------------------------------------------------------------------
  
  template.encoding=8859_1
  
  #----------------------------------------------------------------------------
  # C O N T E N T  T Y P E  
  #----------------------------------------------------------------------------
  # This is the default content type for the VelocityServlet.
  #----------------------------------------------------------------------------
  
  default.contentType=text/html
  
  #----------------------------------------------------------------------------
  # F O R E A C H  P R O P E R T I E S
  #----------------------------------------------------------------------------
  # These properties control how the counter is accessed in the #foreach
  # directive. By default the reference $velocityCount will be available
  # in the body of the #foreach directive. The default starting value
  # for this reference is 1.
  #----------------------------------------------------------------------------
  
  counter.name = velocityCount
  counter.initial.value = 1
  
  #----------------------------------------------------------------------------
  # I N C L U D E  P R O P E R T I E S
  #----------------------------------------------------------------------------
  # These are the properties that governed the way #include'd content
  # is governed.
  #----------------------------------------------------------------------------
  
  include.path=.
  include.cache = false
  include.output.errormsg.start = <!-- include error : 
  include.output.errormsg.end   =  see error log -->
  
  #----------------------------------------------------------------------------
  # P A R S E  P R O P E R T I E S
  #----------------------------------------------------------------------------
  
  parse_directive.maxdepth = 10
  
  #----------------------------------------------------------------------------
  # T E M P L A T E  L O A D E R S
  #----------------------------------------------------------------------------
  # 
  # 
  #----------------------------------------------------------------------------
  
  template.loader.1.public.name = File
  template.loader.1.description = Velocity File Template Loader
  template.loader.1.class = org.apache.velocity.runtime.loader.FileTemplateLoader
  template.loader.1.template.path = .
  template.loader.1.cache = false
  template.loader.1.modificationCheckInterval = 2
  
  velocimacro.library.autoreload = true
  velocimacro.permissions.allow.inline.to.replace.global = true
  velocimacro.library = /WEB-INF/VM_global_library.vm, /WEB-INF/velocity/velocity-macros.vm
  
  #template.loader.2.public.name = URL
  #template.loader.2.description = Velocity URL Template Loader
  #template.loader.2.class = org.apache.velocity.runtime.loader.URLTemplateLoader
  #template.loader.2.template.path = http://localhost/templates/
  #template.loader.2.cache = false
  
  #----------------------------------------------------------------------------
  # E X T E R N A L  S E R V I C E  I N I T I A L I Z A T I O N
  #----------------------------------------------------------------------------
  # If this property is set to true then an external service will
  # set certain system properties and initialize the Velocity
  # Runtime. This method is used by Turbine to initialize the
  # Velocity Runtime for the TurbineVelocityService.
  #----------------------------------------------------------------------------
  
  external.init = false
  
  
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/velocity/velocity-macros.vm
  
  Index: velocity-macros.vm
  ===================================================================
  #macro (headerCell $body)
    <th class="portlet-section-header">
      <b>     
          $body
      </b>
    </th>
  #end
  
  #macro (entryCell $body)
    <td class='portlet-section-body'>    
        $body &nbsp;    
    </td>
  #end
  
  #macro (entryCell2 $body $count)
  #if (($count % 2) == 0)
    <td class='portlet-section-body'>    
  #else
    <td class='portlet-section-alternate'>    
  #end
        $body &nbsp;    
    </td>
  #end
  
  
  #macro (formField $label $value $size $id $MESSAGES $ERRORS)
  #if ($ERRORS)
  #set ($eflag = "$!ERRORS.get($id)")
  #else
  #set ($eflag = "")
  #end
    <tr colspan="4" align="right">
    #if ($!eflag == "")
      <td width="5%" align="left">&nbsp;</td>
    #else
      <td width="5%" class="portlet-msg-error" align="left">&nbsp;</td>  
    #end
      <td nowrap class="portlet-section-alternate" align="right">$!MESSAGES.getString($label):&nbsp;</td>
      <td class="portlet-section-body" align="left">
        <input id="$!id" type="text" name="$!id" size="$!size" value="$!value" class="portlet-form-label-field">
      </td>
      <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
    </tr>
  #end
  
  #macro (ErrorMessages $ERRORS)
  #if ($ERRORS)
  #if ($ERRORS.size() > 0)
  #foreach ($msg in $ERRORS)
  <div class="portlet-msg-error">
  $msg<br/>
  </div>
  #end
  <br/>
  #end
  #end
  #end
  
  #macro (Preference $prefs $name)
  #set ($pall = $prefs.get($name))
  #foreach ($x in $pall)
  #set ($extraction = $x)
  #end
  $extraction
  #end
  
  #macro (form4ColumnCell $label $value $size $id)
    <tr colspan="4" align="right">
      <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
      <td nowrap class="portlet-form-field-label" align="right">$!label:&nbsp;</td>
      <td class="portlet-form-input-field" align="left">
        <input id="$!id" type="text" name="$!id" size="$!size" value="$!value">
      </td>
      <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
    </tr>
  #end
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/velocity/toolbox.xml
  
  Index: toolbox.xml
  ===================================================================
  <?xml version="1.0"?>
  <toolbox>
  </toolbox>
  
  
  1.5       +131 -158  jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java
  
  Index: SiteBrowserPortlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SiteBrowserPortlet.java	6 Oct 2004 23:45:05 -0000	1.4
  +++ SiteBrowserPortlet.java	12 Nov 2004 06:34:25 -0000	1.5
  @@ -24,7 +24,6 @@
   import javax.portlet.PortletConfig;
   import javax.portlet.PortletContext;
   import javax.portlet.PortletException;
  -import javax.portlet.PortletSession;
   import javax.portlet.RenderRequest;
   import javax.portlet.RenderResponse;
   
  @@ -38,234 +37,208 @@
   import org.apache.jetspeed.page.document.NodeSet;
   import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
   import org.apache.portals.bridges.common.GenericServletPortlet;
  +import org.apache.portals.bridges.frameworks.messaging.PortletMessageComponent;
   import org.apache.webapp.admin.TreeControl;
   import org.apache.webapp.admin.TreeControlNode;
   
   /**
  - * This portlet is a tree browser user interface for viewing site resoures: pages and folders.
  - *
  - * @author <a href="mailto:jford@apache.com">Jeremy Ford</a>
  + * This portlet is a tree browser user interface for viewing site resoures:
  + * pages and folders.
  + * 
  + * @author <a href="mailto:jford@apache.com">Jeremy Ford </a>
    * @version $Id$
    */
   public class SiteBrowserPortlet extends GenericServletPortlet
   {
  +
       private PortletContext context;
  +
       private PageManager pageManager;
  -    
  -    public void init(PortletConfig config)
  -    throws PortletException 
  +
  +    public void init(PortletConfig config) throws PortletException
       {
           super.init(config);
  -        context = getPortletContext();                
  -        pageManager = (PageManager)context.getAttribute(PortletApplicationResources.CPS_PAGE_MANAGER_COMPONENT);
  -        if (null == pageManager)
  -        {
  -            throw new PortletException("Failed to find the Page Manager on portlet initialization");
  -        }
  +        context = getPortletContext();
  +        pageManager = (PageManager) context.getAttribute(PortletApplicationResources.CPS_PAGE_MANAGER_COMPONENT);
  +        if (null == pageManager) { throw new PortletException(
  +                "Failed to find the Page Manager on portlet initialization"); }
       }
   
  -    public void doView(RenderRequest request, RenderResponse response)
  -    throws PortletException, IOException
  +    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
       {
           response.setContentType("text/html");
  -        
  +
           TreeControl control = (TreeControl) request.getPortletSession().getAttribute("j2_tree");
  -        if(control == null)
  +        if (control == null)
           {
               Folder root = null;
               try
               {
                   root = pageManager.getFolder("/");
  -            } catch (FolderNotFoundException e)
  +            }
  +            catch (FolderNotFoundException e)
               {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
  -            } catch (InvalidFolderException e)
  +            }
  +            catch (InvalidFolderException e)
               {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
  -            } catch (NodeException e)
  +            }
  +            catch (NodeException e)
               {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
               }
  -            
  -            if(root != null)
  +
  +            if (root != null)
               {
  -	            control = buildTree(root, request.getLocale());
  -	        	request.getPortletSession().setAttribute("j2_tree", control);
  +                control = buildTree(root, request.getLocale());
  +                request.getPortletSession().setAttribute("j2_tree", control);
               }
           }
           request.setAttribute("j2_tree", control);
  -        
  +
           super.doView(request, response);
  -        
  +
       }
  -    
  -    public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException
  -	{
  -		TreeControl control = (TreeControl) actionRequest.getPortletSession().getAttribute("j2_tree");
  -		//assert control != null
  -		if(control != null)
  -		{
  -			String node = actionRequest.getParameter("node");
  -			if(node != null)
  -			{
  -			    TreeControlNode controlNode = control.findNode(node);
  -			    if(controlNode != null)
  -			    {
  -			        controlNode.setExpanded(!controlNode.isExpanded());
  -			    }
  -			}
  -			
  -			
  -			String selectedNode = actionRequest.getParameter(PortletApplicationResources.REQUEST_SELECT_NODE);
  -			if(selectedNode != null)
  -			{
  -			    control.selectNode(selectedNode);
  -			    TreeControlNode child = control.findNode(selectedNode);
  -			    if(child != null)
  -			    {
  -			        String domain = child.getDomain();
  -			        String name = child.getName();
  -			        
  -			        actionRequest.getPortletSession().removeAttribute(PortletApplicationResources.CURRENT_FOLDER, PortletSession.APPLICATION_SCOPE);
  -			        actionRequest.getPortletSession().removeAttribute(PortletApplicationResources.CURRENT_PAGE, PortletSession.APPLICATION_SCOPE);
  -			        
  -			        String attrName = PortletApplicationResources.CURRENT_FOLDER;
  -			        if(domain.equals("PAGE_DOMAIN"))
  -			        {
  -			            attrName = PortletApplicationResources.CURRENT_PAGE;
  -			        }
  -			        
  -			        
  -			        actionRequest.getPortletSession().setAttribute(attrName, name, PortletSession.APPLICATION_SCOPE);
  -			        /*
  -			        if(domain.equals("FOLDER_DOMAIN"))
  -			        {
  -			            try
  -                        {
  -                            Folder folder = pageManager.getFolder(name);
  -                            actionRequest.getPortletSession().setAttribute(PortletApplicationResources.CURRENT_FOLDER, folder, PortletSession.APPLICATION_SCOPE);
  -                        } catch (FolderNotFoundException e)
  -                        {
  -                            // TODO Auto-generated catch block
  -                            e.printStackTrace();
  -                        } catch (InvalidFolderException e)
  -                        {
  -                            // TODO Auto-generated catch block
  -                            e.printStackTrace();
  -                        } catch (NodeException e)
  -                        {
  -                            // TODO Auto-generated catch block
  -                            e.printStackTrace();
  -                        }
  -			        }
  -			        else if(domain.equals("PAGE_DOMAIN"))
  -			        {
  -                        try
  -                        {
  -                            Page page = pageManager.getPage(name);
  -                            actionRequest.getPortletSession().setAttribute(PortletApplicationResources.CURRENT_PAGE, page, PortletSession.APPLICATION_SCOPE);
  -                        } catch (PageNotFoundException e)
  -                        {
  -                            // TODO Auto-generated catch block
  -                            e.printStackTrace();
  -                        } catch (NodeException e)
  -                        {
  -                            // TODO Auto-generated catch block
  -                            e.printStackTrace();
  -                        }
  -			        }
  -			        */
  -			    }
  -			}
  -		}
  -	}
  -    
  -    private TreeControl buildTree(Folder folder, Locale locale) {
  -	    
  -		TreeControlNode root =
  -            new TreeControlNode(folder.getName(),
  -                                null, 
  -                                folder.getTitle(locale),
  -                                PortletApplicationResources.PORTLET_URL,
  -                                null, 
  -                                true, 
  -                                "FOLDER_DOMAIN");
  -		
  -		TreeControl control = new TreeControl(root);
  -		
  -		buildFolderNodes(folder, root, locale);		
  -		
  -		return control;
  -	}
  -    
  +
  +    public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException,
  +            IOException
  +    {
  +        TreeControl control = (TreeControl) actionRequest.getPortletSession().getAttribute("j2_tree");
  +        //assert control != null
  +        if (control != null)
  +        {
  +            String node = actionRequest.getParameter("node");
  +            if (node != null)
  +            {
  +                TreeControlNode controlNode = control.findNode(node);
  +                if (controlNode != null)
  +                {
  +                    controlNode.setExpanded(!controlNode.isExpanded());
  +                }
  +            }
  +
  +            String selectedNode = actionRequest.getParameter(PortletApplicationResources.REQUEST_SELECT_NODE);
  +            if (selectedNode != null)
  +            {
  +                control.selectNode(selectedNode);
  +                TreeControlNode child = control.findNode(selectedNode);
  +                if (child != null)
  +                {
  +                    String domain = child.getDomain();
  +                    String name = child.getName();
  +
  +                    PortletMessageComponent.cancel(actionRequest, PortletApplicationResources.SITE_PORTLET,
  +                            PortletApplicationResources.CURRENT_FOLDER);
  +                    PortletMessageComponent.cancel(actionRequest, PortletApplicationResources.SITE_PORTLET,
  +                            PortletApplicationResources.CURRENT_PAGE);
  +                    
  +                    String attrName = PortletApplicationResources.CURRENT_FOLDER;
  +                    if (domain.equals("PAGE_DOMAIN"))
  +                    {
  +                        attrName = PortletApplicationResources.CURRENT_PAGE;
  +                    }
  +
  +                    PortletMessageComponent.publish(actionRequest, PortletApplicationResources.SITE_PORTLET, attrName,
  +                            name);
  +
  +                    /*
  +                     * if(domain.equals("FOLDER_DOMAIN")) { try { Folder folder =
  +                     * pageManager.getFolder(name);
  +                     * actionRequest.getPortletSession().setAttribute(PortletApplicationResources.CURRENT_FOLDER,
  +                     * folder, PortletSession.APPLICATION_SCOPE); } catch
  +                     * (FolderNotFoundException e) { // TODO Auto-generated
  +                     * catch block e.printStackTrace(); } catch
  +                     * (InvalidFolderException e) { // TODO Auto-generated catch
  +                     * block e.printStackTrace(); } catch (NodeException e) { //
  +                     * TODO Auto-generated catch block e.printStackTrace(); } }
  +                     * else if(domain.equals("PAGE_DOMAIN")) { try { Page page =
  +                     * pageManager.getPage(name);
  +                     * actionRequest.getPortletSession().setAttribute(PortletApplicationResources.CURRENT_PAGE,
  +                     * page, PortletSession.APPLICATION_SCOPE); } catch
  +                     * (PageNotFoundException e) { // TODO Auto-generated catch
  +                     * block e.printStackTrace(); } catch (NodeException e) { //
  +                     * TODO Auto-generated catch block e.printStackTrace(); } }
  +                     */
  +                }
  +            }
  +        }
  +    }
  +
  +    private TreeControl buildTree(Folder folder, Locale locale)
  +    {
  +
  +        TreeControlNode root = new TreeControlNode(folder.getName(), null, folder.getTitle(locale),
  +                PortletApplicationResources.PORTLET_URL, null, true, "FOLDER_DOMAIN");
  +
  +        TreeControl control = new TreeControl(root);
  +
  +        buildFolderNodes(folder, root, locale);
  +
  +        return control;
  +    }
  +
       private void buildFolderNodes(Folder folder, TreeControlNode parent, Locale locale)
       {
           NodeSet childFolders = null;
           try
           {
               childFolders = folder.getFolders();
  -        } catch (FolderNotFoundException e)
  +        }
  +        catch (FolderNotFoundException e)
           {
               // TODO Auto-generated catch block
               e.printStackTrace();
  -        } catch (DocumentException e)
  +        }
  +        catch (DocumentException e)
           {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }
  -        
  -        if(childFolders != null)
  +
  +        if (childFolders != null)
           {
               Iterator folderIter = childFolders.iterator();
               while (folderIter.hasNext())
               {
                   Folder childFolder = (Folder) folderIter.next();
  -                TreeControlNode childNode = new TreeControlNode(childFolder.getName(), 
  -                                                                null, 
  -                                                                childFolder.getTitle(locale), 
  -                                                                PortletApplicationResources.PORTLET_URL, 
  -                                                                null, 
  -                                                                false, 
  -                                                                "FOLDER_DOMAIN"  );
  +                TreeControlNode childNode = new TreeControlNode(childFolder.getName(), null, childFolder
  +                        .getTitle(locale), PortletApplicationResources.PORTLET_URL, null, false, "FOLDER_DOMAIN");
                   parent.addChild(childNode);
                   buildFolderNodes(childFolder, childNode, locale);
               }
  -            
  +
               buildPageNodes(folder, parent, locale);
           }
       }
  -    
  +
       private void buildPageNodes(Folder folder, TreeControlNode node, Locale locale)
       {
           NodeSet pages = null;
           try
           {
               pages = folder.getPages();
  -        } catch (NodeException e)
  +        }
  +        catch (NodeException e)
           {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }
  -        
  -        if(pages != null)
  +
  +        if (pages != null)
           {
  -	        Iterator pageIter = pages.iterator();
  -			
  -	        while (pageIter.hasNext())
  -	        {
  -	            Page page = (Page)pageIter.next();
  -	            TreeControlNode child = new TreeControlNode(page.getPath(), 
  -                                                            null, 
  -                                                            page.getTitle(locale), 
  -                                                            PortletApplicationResources.PORTLET_URL, 
  -                                                            null, 
  -                                                            false, 
  -                                                            "PAGE_DOMAIN"  );
  -	            node.addChild(child);
  -	        }
  +            Iterator pageIter = pages.iterator();
  +
  +            while (pageIter.hasNext())
  +            {
  +                Page page = (Page) pageIter.next();
  +                TreeControlNode child = new TreeControlNode(page.getPath(), null, page.getTitle(locale),
  +                        PortletApplicationResources.PORTLET_URL, null, false, "PAGE_DOMAIN");
  +                node.addChild(child);
  +            }
           }
       }
  -}
  +}
  \ No newline at end of file
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java
  
  Index: SiteDetailsPortlet.java
  ===================================================================
  /*
   * Copyright 2000-2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.portlets.site;
  
  import java.io.IOException;
  import java.util.HashMap;
  import java.util.Map;
  
  import javax.portlet.ActionRequest;
  import javax.portlet.ActionResponse;
  import javax.portlet.PortletConfig;
  import javax.portlet.PortletContext;
  import javax.portlet.PortletException;
  import javax.portlet.RenderRequest;
  import javax.portlet.RenderResponse;
  
  import org.apache.jetspeed.page.PageManager;
  import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
  import org.apache.portals.bridges.frameworks.FrameworkConstants;
  import org.apache.portals.bridges.frameworks.VelocityFrameworkPortlet;
  import org.apache.portals.bridges.frameworks.messaging.PortletMessageComponent;
  
  /**
   * SiteDetailsPortlet
   * 
   * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
   * @version $Id: SiteDetailsPortlet.java,v 1.1 2004/11/12 06:34:25 taylor Exp $
   */
  public class SiteDetailsPortlet extends VelocityFrameworkPortlet
  {
  
      private PageManager pageManager;
  
      // private LinkedHashMap tabMap = new LinkedHashMap();
  
      public void init(PortletConfig config) throws PortletException
      {
          super.init(config);        
          PortletContext context = getPortletContext();
          pageManager = (PageManager) context.getAttribute(PortletApplicationResources.CPS_PAGE_MANAGER_COMPONENT);
          if (null == pageManager) { throw new PortletException(
                  "Failed to find the Page Manager on portlet initialization"); }
  
          Map externalSupportMap = new HashMap();
          externalSupportMap.put("folderBean", pageManager);
          setExternalSupport(externalSupportMap);
      }
  
      public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
      {
          response.setContentType("text/html");
  
          // Get the messages from the browser
          String currentFolder = (String) PortletMessageComponent.consume(request,
                  PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_FOLDER);
          String currentPage = (String) PortletMessageComponent.consume(request,
                  PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_PAGE);
  
          if (currentFolder != null)
          {
              request.setAttribute("site.folder.key", currentFolder);
          }
          super.doView(request, response);
  
      }
  
      public String processSaveAction(ActionRequest request, ActionResponse response) throws PortletException,
              IOException
      {
          System.out.println("Processing SAVE action.");
          return "stocks-help:success";
      }
  
  }
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/FolderProxyBean.java
  
  Index: FolderProxyBean.java
  ===================================================================
  /*
   * Copyright 2000-2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.portlets.site;
  
  import java.io.Serializable;
  
  import org.apache.jetspeed.om.folder.Folder;
  import org.apache.jetspeed.page.PageManager;
  import org.apache.portals.bridges.frameworks.ExternalComponentSupport;
  import org.apache.portals.bridges.frameworks.Lookup;
  
  
  /**
   * FolderProxyBean
   * 
   * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
   * @version $Id: FolderProxyBean.java,v 1.1 2004/11/12 06:34:25 taylor Exp $
   */
  public class FolderProxyBean 
      implements 
          ExternalComponentSupport, 
          Lookup,
          Serializable
  {
      private transient PageManager pageManager = null;
      private transient Folder folder;
      private String title;
      private String lookupKey;
      
      public FolderProxyBean()
      {        
      }
      
      public void setExternalSupport(Object externalSupport)
      {
          if (externalSupport instanceof PageManager)
          {
              pageManager = (PageManager)externalSupport;
          }
      }
      
      public boolean lookup(String key)
      {
          boolean result = true;
          try
          {
              if (pageManager != null)
              {
                  this.folder = pageManager.getFolder(key);    
                  setTitle(folder.getTitle());
              }
          }
          catch (Exception ne)
          {        
              // create a new folder
              result = false;
          }
          return result;
      }
      
      /**
       * @return Returns the title.
       */
      public String getTitle()
      {
          return title;
      }
      /**
       * @param title The title to set.
       */
      public void setTitle(String title)
      {
          this.title = title;
      }
      /**
       * @return Returns the lookupKey.
       */
      public String getLookupKey()
      {
          return lookupKey;
      }
      /**
       * @param lookupKey The lookupKey to set.
       */
      public void setLookupKey(String lookupKey)
      {
          this.lookupKey = lookupKey;
      }
  }
  
  
  
  1.9       +22 -0     jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/web.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- web.xml	12 Oct 2004 21:27:57 -0000	1.8
  +++ web.xml	12 Nov 2004 06:34:25 -0000	1.9
  @@ -84,6 +84,28 @@
       	<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
       	<load-on-startup>1</load-on-startup>
     	</servlet>
  +	
  +  	<!-- Define Velocity Servlet -->
  +	<servlet>
  +		<servlet-name>velocity</servlet-name>
  +		<servlet-class>org.apache.portals.bridges.velocity.BridgesVelocityViewServlet</servlet-class>
  +		<init-param>
  +			<param-name>org.apache.velocity.toolbox</param-name>
  +			<param-value>/WEB-INF/velocity/toolbox.xml</param-value>
  +		</init-param>
  +		<init-param>
  +			<param-name>org.apache.velocity.properties</param-name>
  +			<param-value>/WEB-INF/velocity/velocity.properties</param-value>
  +		</init-param>
  +		<load-on-startup>10</load-on-startup>
  +	</servlet>
  +	
  +    <!-- Map *.vm files to Velocity  -->
  +	<servlet-mapping>
  +		<servlet-name>velocity</servlet-name>
  +		<url-pattern>*.vm</url-pattern>
  +	</servlet-mapping>	
  +	
     	<!-- extension mapping -->
     	<servlet-mapping>
     		<servlet-name>Faces Servlet</servlet-name>
  
  
  
  1.15      +12 -4     jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/portlet.xml
  
  Index: portlet.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/portlet.xml,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- portlet.xml	21 Oct 2004 01:45:50 -0000	1.14
  +++ portlet.xml	12 Nov 2004 06:34:25 -0000	1.15
  @@ -115,27 +115,35 @@
   </portlet>
   
   <portlet id="PortalSiteDetail">
  +	<init-param>
  +		<name>spring-configuration</name>
  +		<value>/WEB-INF/model/spring-portlet-configuration.xml</value>
  +	</init-param>
  +	<init-param>
  +		<name>validator-configuration</name>
  +		<value>/WEB-INF/model/validator-configuration.xml</value>
  +	</init-param>	
       <init-param>
       	<description>This parameter sets the template used in view mode.</description>
   		<name>ViewPage</name>
  -			<value>/WEB-INF/view/site-detail.jsp</value>
  +			<value>folder-view</value>
        </init-param>   
       <portlet-name>PortalSiteDetail</portlet-name>
       <display-name>Portal Site Detail</display-name>
       <description>The Portal Site Detail portlet displays the details of a selected folder/page.  From here you can add, edit, and delete folders and pages.</description>
  -    <portlet-class>org.apache.jetspeed.portlets.site.SiteDetailPortlet</portlet-class>
  +    <portlet-class>org.apache.jetspeed.portlets.site.SiteDetailsPortlet</portlet-class>
       <expiration-cache>-1</expiration-cache>
       <supports>
         <mime-type>text/html</mime-type>
  -      <portlet-mode>EDIT</portlet-mode>
         <portlet-mode>VIEW</portlet-mode>
  -      <portlet-mode>HELP</portlet-mode>
       </supports>
  +     <resource-bundle>org.apache.jetspeed.portlets.site.resources.SiteResources</resource-bundle>            	
       <portlet-info>
         <title>Portal Site Detail</title>
         <short-title>Site</short-title>
         <keywords>admin,site</keywords>
       </portlet-info>
  +	
   </portlet>
   
   <portlet id="ProfilerAdmin">
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/model/spring-portlet-configuration.xml
  
  Index: spring-portlet-configuration.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE beans PUBLIC  "-//SPRING//DTD BEAN//EN"
   "http://www.springframework.org/dtd/spring-beans.dtd">
  
  <beans>
      <description>Spring Portlet Components</description>
      
  <!-- Model -->    
      <bean id="folderBean" singleton='false' class="org.apache.jetspeed.portlets.site.FolderProxyBean">
          <description>Folder bean</description>
  		<property name="lookupKey">
  			<value>site.folder.key</value>
  		</property>
      </bean>    
      
  <!-- Views -->
      <bean id="portlet-views" class="java.util.HashMap">
         <description>Logical View name to actual view</description>
    	   <constructor-arg>
    	   	<map>
    	   	  <entry key="folder-view">
    	   	  	<value>/WEB-INF/view/site/folder-details.vm</value>
    	   	  </entry>
    	   	  <entry key="add-page">
    	   	  	<value>/WEB-INF/view/site/add-page.vm</value>
    	   	  </entry>
    	   	  <entry key="add-subfolder">
    	   	  	<value>/WEB-INF/view/site/add-subfolder.vm</value>
    	   	  </entry>
    	   	  <entry key="site-help">
    	   	  	<value>/WEB-INF/view/site/site-help.vm</value>
    	   	  </entry>
    	   	  <entry key="site-edit">
    	   	  	<value>/WEB-INF/view/site/site-edit.vm</value>
    	   	  </entry>  	   	  
    	   	</map>
    	   </constructor-arg>    	
      </bean>
  
  
  <!-- MVC Map: Views to Beans -->    
      <bean id="portlet-view-bean-map" singleton="true" class="java.util.HashMap">
         <description>Maps views to model beans</description>
    	   <constructor-arg>
    	   	<map>
    	   	  <entry key="folder-view">
    	   	  	<value>folderBean</value>
    	   	  </entry>
    	   	</map>
    	   </constructor-arg>    	
      </bean>
  
  <!-- MVC Map: Views to Validator -->    
      <bean id="portlet-view-validator-map" singleton="true" class="java.util.HashMap">
         <description>Maps views to validators</description>
    	   <constructor-arg>
    	   	<map>
    	   	  <entry key="folder-view">
    	   	  	<value>folderBean</value>
    	   	  </entry>
    	   	</map>
    	   </constructor-arg>    	
      </bean>
  
      
  <!-- MVC Map: Action Forward Map - 2 standard actions: success, failure
  			  Naming Convention: (viewname):action i.e. myview:success, myview:failure			  
  			  entry key == view name : action (success or failure)
  			  value == view name, mode:[view,edit,help], state:[minimized,maximized,norma], any combination of 3
  -->    
      <bean id="portlet-action-forward-map" singleton="true" class="java.util.HashMap">
         <description>Maps logical forward names to views</description>
    	   <constructor-arg>
    	   	<map>
    	   	</map>  	   	
    	   </constructor-arg>    	
      </bean>    
  </beans>
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/model/validator-configuration.xml
  
  Index: validator-configuration.xml
  ===================================================================
  <!DOCTYPE form-validation PUBLIC
       "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN"
       "http://jakarta.apache.org/commons/dtds/validator_1_1.dtd">
       
  <form-validation>
     <global>
        <validator name="required"
                   classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
                   method="validateRequired"
                   methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
                   msg="errors.required"/>
        <validator name="range"
                   classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
                   method="validateRange"
                   methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
                   msg="errors.range"/>
        <validator name="doubleRange"
                   classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
                   method="validateDoubleRange"
                   methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
                   msg="errors.range"/>
        <validator name="mask"
                   classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
                   method="validateMask"
                   methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
                   msg="errors.mask"/>
        <validator name="maxLength"
                   classname="org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport"
                   method="validateMaxLength"
                   methodParams="java.lang.Object,org.apache.commons.validator.ValidatorAction,org.apache.commons.validator.Field,java.util.Map,java.util.ResourceBundle"
                   msg="errors.maxlength"/>
                   
     </global>
     <formset>
        <form name="folderBean">
           <field property="title"  depends="required">
           	   <arg key="Title"/>
           </field>    
        </form>
     </formset>   
  </form-validation>
  
  
  
  1.21      +69 -29    jakarta-jetspeed-2/applications/pam/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/applications/pam/project.xml,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- project.xml	15 Oct 2004 21:46:46 -0000	1.20
  +++ project.xml	12 Nov 2004 06:34:25 -0000	1.21
  @@ -1,3 +1,5 @@
  +<?xml version="1.0" encoding="UTF-8"?>
  +
   <project>
       <extend>${basedir}/./../project.xml</extend>
       <pomVersion>3</pomVersion>
  @@ -11,6 +13,15 @@
           <url>http://cvs.apache.org/viewcvs/jakarta-jetspeed-2/applications/pam/</url>
       </repository>
       <dependencies>
  +		<dependency>
  +		  <groupId>commons-validator</groupId>
  +		  <artifactId>commons-validator</artifactId>
  +		  <version>1.1.3</version>
  +		  <url>http://jakarta.apache.org/commons/validator/</url>
  +		  <properties>
  +			<war.bundle>true</war.bundle>
  +		  </properties>    
  +		</dependency>
           <dependency>
               <groupId>jetspeed2</groupId>
               <artifactId>jetspeed-api</artifactId>
  @@ -75,15 +86,6 @@
               </properties>
           </dependency>
           <dependency>
  -            <groupId>velocity</groupId>
  -            <artifactId>velocity</artifactId>
  -            <version>1.4</version>
  -            <type>jar</type>
  -            <properties>
  -                <war.bundle>true</war.bundle>
  -            </properties>
  -        </dependency>
  -        <dependency>
               <groupId>servletapi</groupId>
               <artifactId>servletapi</artifactId>
               <version>2.3</version>
  @@ -102,15 +104,6 @@
               </properties>
           </dependency>
           <dependency>
  -            <groupId>portals-bridges</groupId>
  -            <artifactId>portals-bridges-common</artifactId>
  -            <version>0.1</version>
  -            <type>jar</type>
  -            <properties>
  -                <war.bundle>false</war.bundle>
  -            </properties>
  -        </dependency>
  -        <dependency>
               <groupId>jetspeed2</groupId>
               <artifactId>jetspeed2-taglib-treecontrol</artifactId>
               <version>2.0-a1-dev</version>
  @@ -166,15 +159,6 @@
               </properties>
           </dependency>
           <dependency>
  -            <groupId>portals-bridges</groupId>
  -            <artifactId>portals-bridges-myfaces</artifactId>
  -            <version>0.1</version>
  -            <type>jar</type>
  -            <properties>
  -                <war.bundle>true</war.bundle>
  -            </properties>
  -        </dependency>
  -        <dependency>
               <groupId>commons-el</groupId>
               <artifactId>commons-el</artifactId>
               <version>1.0</version>
  @@ -223,16 +207,72 @@
                   <war.bundle>true</war.bundle>
               </properties>
           </dependency>
  +
  +    <dependency>
  +      <groupId>portals-bridges</groupId>
  +      <artifactId>portals-bridges-frameworks</artifactId>
  +      <version>0.1</version>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>
  +    </dependency>
  +    <dependency>	
  +      <groupId>portals-bridges</groupId>
  +      <artifactId>portals-bridges-common</artifactId>
  +      <version>0.1</version>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>
  +    </dependency>	
  +    <dependency>
  +      <id>springframework:spring-core</id>
  +      <version>1.1.1</version>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>
  +    </dependency>
  +    <dependency>	
  +      <groupId>portals-bridges</groupId>
  +      <artifactId>portals-bridges-myfaces</artifactId>
  +      <version>0.1</version>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>
  +    </dependency>	
  +
  +    <dependency>
  +      <id>velocity</id>
  +      <version>1.4</version>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>      
  +    </dependency>
  +    <dependency>
  +      <id>velocity-tools:velocity-tools-view</id>
  +      <version>1.1-beta1</version>
  +      <url>http://jakarta.apache.org/velocity</url>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>      
  +    </dependency>    
  +    <dependency>
  +      <groupId>portals-bridges</groupId>
  +      <artifactId>portals-bridges-velocity</artifactId>
  +      <version>0.1</version>
  +      <properties>
  +        <war.bundle>true</war.bundle>
  +      </properties>
  +    </dependency>
  +    				
       </dependencies>
       <build>
           <sourceDirectory>src/java</sourceDirectory>
  -        <resources>
  +        <resources>			
               <resource>
                   <directory>${basedir}/src/java/</directory>
                   <includes>
                       <include>**/*.properties</include>
                   </includes>
  -                <filtering>false</filtering>
               </resource>
           </resources>
       </build>
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/.classpath
  
  Index: .classpath
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  
  <classpath>
    <classpathentry excluding="" kind="src" path="src\java">
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jetspeed2/jars/jetspeed-api-2.0-a1-dev.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jetspeed2/jars/jetspeed-registry-2.0-a1-dev.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/pluto/jars/pluto-1.0.1-rc1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/portlet-api/jars/portlet-api-1.0.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jstl/jars/jstl-1.0.2.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/taglibs/jars/standard-1.0.2.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/taglibs/jars/request-1.0.1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/servletapi/jars/servletapi-2.3.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jetspeed2/jars/jetspeed-commons-2.0-a1-dev.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jetspeed2/jars/jetspeed2-taglib-treecontrol-2.0-a1-dev.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.8.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/commons-logging/jars/commons-logging-1.0.3.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/myfaces/jars/myfaces-jsf-api-1.0.7-SNAPSHOT.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/myfaces/jars/myfaces-1.0.7-SNAPSHOT.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/myfaces/jars/myfaces-components-1.0.7-SNAPSHOT.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/commons-el/jars/commons-el-1.0.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jspapi/jars/jsp-api-2.0-20040521.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/commons-digester/jars/commons-digester-1.5.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/commons-beanutils/jars/commons-beanutils-1.6.1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/commons-codec/jars/commons-codec-1.2.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/velocity/jars/velocity-1.4.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/velocity-tools/jars/velocity-tools-view-1.1-beta1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/portals-bridges/jars/portals-bridges-velocity-0.1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/portals-bridges/jars/portals-bridges-frameworks-0.1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/springframework/jars/spring-core-1.1.1.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/jetspeed2/jars/jetspeed-web-content-2.0-a1-dev.jar">
    </classpathentry>
    <classpathentry kind="var" path="MAVEN_REPO/hsqldb/jars/hsqldb-1.7.1.jar">
    </classpathentry>
    <classpathentry kind="output" path="target\classes">
    </classpathentry>
  </classpath>
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/.project
  
  Index: .project
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  
  <projectDescription>
    <name>pam</name>
    <comment>Jetspeed-2 Portlet Application Manager Default Package</comment>
    <projects>
    </projects>
    <buildSpec>
      <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
      </buildCommand>
    </buildSpec>
    <natures>
      <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
  </projectDescription>
  
  
  1.3       +15 -4     jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties
  
  Index: SiteResources.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SiteResources.properties	20 Sep 2004 15:01:33 -0000	1.2
  +++ SiteResources.properties	12 Nov 2004 06:34:26 -0000	1.3
  @@ -15,7 +15,18 @@
   # $Id$
   #
   
  -site.details.choose_folder_or_page=Choose a Folder or Page
  +# general validation errors
  +errors.required = Field {0} is a required field.
  +errors.range = Field {0} is out of range: [{1} - {2}]
  +errors.mask = Field {0} failed to match validation pattern: {2}
  +errors.maxlength = Field {0} surpasses maximum length {1}
   
  -pam.details.tabs.site_details=Details
  -pam.details.tabs.site_security=Security
  \ No newline at end of file
  +# Folder titles
  +folder.details = Folder Details
  +Title = Title
  +
  +# buttons and navigations
  +save = Save
  +add.page = Add Page
  +add.subfolder = Add SubFolder
  +add.docset = Add Docset
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties
  
  Index: SiteResources_fr.properties
  ===================================================================
  errors.required = Field {0} est requis.
  errors.range = Field {0} hors de portee: [{1} - {2}]
  errors.mask = Field {0} echoue pour correspondu au modele de validation: {2}
  errors.maxlength = Field {0} surpasse la longueur maximum {1}
  
  # Folder titles
  folder.details = Folder Details
  Title = Title
  
  # buttons and navigations
  save = Sauver
  add.page = Add Page
  add.subfolder = Add SubFolder
  add.docset = Add Docset
  
  
  
  1.1                  jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/view/site/folder-details.vm
  
  Index: folder-details.vm
  ===================================================================
  #set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
  
  <h2 class="portlet-section-header">$MESSAGES.getString('folder.details')</h2>
  
  </p>
  <form action="$renderResponse.createActionURL()" method="post">
  <input type='hidden' name='velocity.action' value='processSaveFolderAction'/>
  <table>
      #formField('Title' "$!folderBean.Title" "40" 'title' $MESSAGES $ERRORS)
  </table>
  <input type="submit" name="Save" value="$MESSAGES.getString('save')" />
  <a href="<bf:forward view='add-page'/>">$MESSAGES.getString('add.page')</a>
  <a href="<bf:forward view='add-subfolder'/>">$MESSAGES.getString('add.subfolder')</a>
  <a href="<bf:forward view='add-docset'/>">$MESSAGES.getString('add.docset')</a>
  </form>
  
  #ErrorMessages($ERRORS)
  
  
  
  1.13      +2 -1      jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/pam/PortletApplicationResources.java
  
  Index: PortletApplicationResources.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/pam/PortletApplicationResources.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- PortletApplicationResources.java	6 Oct 2004 22:12:06 -0000	1.12
  +++ PortletApplicationResources.java	12 Nov 2004 06:34:26 -0000	1.13
  @@ -46,5 +46,6 @@
       public final static String REQUEST_SELECT_USER = "select_user";    
       public final static String PORTLET_ACTION = "portlet_action";
       public final static String REQUEST_SELECT_SITE_TAB = "selected_site_tab";
  +    public final static String SITE_PORTLET = "SitePortlet";
       
   }
  
  
  

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