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 2005/11/25 03:25:20 UTC

svn commit: r348854 [10/16] - in /portals/jetspeed-2/trunk/applications/j2-admin: ./ src/java/org/apache/jetspeed/portlets/entityeditor/ src/java/org/apache/jetspeed/portlets/localeselector/ src/java/org/apache/jetspeed/portlets/localeselector/resource...

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java Thu Nov 24 18:24:19 2005
@@ -0,0 +1,207 @@
+/*
+ * 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.page.Page;
+import org.apache.jetspeed.page.PageManager;
+import org.apache.portals.bridges.frameworks.ExternalComponentSupport;
+import org.apache.portals.bridges.frameworks.Lookup;
+
+
+/**
+ * PageProxyBean
+ * 
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: FolderProxyBean.java 330359 2005-11-02 21:05:08Z rwatler $
+ */
+public class PageProxyBean 
+    implements 
+        ExternalComponentSupport, 
+        Lookup,
+        Serializable
+{
+    private static final long serialVersionUID = 1;
+    private transient PageManager pageManager = null;
+    private transient Page page;
+    private String lookupKey;
+    private boolean isNew = true;
+
+    private String key;
+    private String title;
+    private String shortTitle;
+    private String version;
+    private String resourceType;
+    private String name;
+    
+    public PageProxyBean()
+    {        
+    }
+    
+    /**
+     * @return Returns the resourceType.
+     */
+    public String getResourceType()
+    {
+        return resourceType;
+    }
+    /**
+     * @param resourceType The resourceType to set.
+     */
+    public void setResourceType(String resourceType)
+    {
+        this.resourceType = resourceType;
+    }
+    /**
+     * @return Returns the shortTitle.
+     */
+    public String getShortTitle()
+    {
+        return shortTitle;
+    }
+    /**
+     * @param shortTitle The shortTitle to set.
+     */
+    public void setShortTitle(String shortTitle)
+    {
+        this.shortTitle = shortTitle;
+    }
+        
+    public void setExternalSupport(Object externalSupport)
+    {
+        if (externalSupport instanceof PageManager)
+        {
+            pageManager = (PageManager)externalSupport;
+        }
+    }
+    
+    public void update(Page page)
+    {
+        page.setTitle(this.getTitle());
+        page.setShortTitle(this.getShortTitle());
+        page.setVersion(this.getVersion());
+    }
+    
+    public boolean lookup(String key)
+    {
+        boolean result = true;
+        try
+        {
+            if (pageManager != null)
+            {
+                this.page = pageManager.getPage(key);    
+                setTitle(page.getTitle());                
+                setShortTitle(page.getShortTitle());
+                setVersion(page.getVersion());
+                setName(page.getName());
+                setKey(key);
+                isNew = false;
+            }
+        }
+        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;
+    }
+    /**
+     * @return Returns the isNew.
+     */
+    public boolean isNew()
+    {
+        return isNew;
+    }
+    /**
+     * @param isNew The isNew to set.
+     */
+    public void setNew(boolean isNew)
+    {
+        this.isNew = isNew;
+    }
+    /**
+     * @return Returns the key.
+     */
+    public String getKey()
+    {
+        return key;
+    }
+    /**
+     * @param key The key to set.
+     */
+    public void setKey(String key)
+    {
+        this.key = key;
+    }
+    /**
+     * @return Returns the version.
+     */
+    public String getVersion()
+    {
+        return version;
+    }
+    /**
+     * @param version The version to set.
+     */
+    public void setVersion(String version)
+    {
+        this.version = version;
+    }
+    /**
+     * @return Returns the name.
+     */
+    public String getName()
+    {
+        return name;
+    }
+    /**
+     * @param name The name to set.
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+}

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java Thu Nov 24 18:24:19 2005
@@ -0,0 +1,212 @@
+/*
+ * 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.
+ */
+package org.apache.jetspeed.portlets.site;
+
+import java.io.IOException;
+import java.util.Locale;
+
+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.exception.JetspeedException;
+import org.apache.jetspeed.om.folder.Folder;
+import org.apache.jetspeed.om.folder.FolderNotFoundException;
+import org.apache.jetspeed.om.folder.InvalidFolderException;
+import org.apache.jetspeed.page.document.NodeException;
+import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
+import org.apache.portals.messaging.PortletMessaging;
+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>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: SiteBrowserPortlet.java 348264 2005-11-22 22:06:45Z taylor $
+ */
+public class SiteBrowserPortlet extends AbstractPSMLTreePortlet
+{
+    private PortletContext context;
+    private static final String SITE_TREE_ATTRIBUTE = "site-tree";
+
+    public void init(PortletConfig config) throws PortletException
+    {
+        super.init(config);
+        context = getPortletContext();
+    }
+
+    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
+    {
+        response.setContentType("text/html");
+
+        TreeControl control = prepareSiteTree(request);
+        request.setAttribute(SITE_TREE_ATTRIBUTE, control);
+
+        super.doView(request, response);
+
+    }
+
+    private TreeControl prepareSiteTree(RenderRequest request)
+    {
+        String refresh = (String)PortletMessaging.consume(request, 
+                PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.MESSAGE_REFRESH);
+        
+        TreeControl control = (TreeControl) request.getPortletSession().getAttribute(SITE_TREE_ATTRIBUTE);
+        if (refresh != null || control == null)
+        {
+            Folder root = null;
+            try
+            {
+                root = pageManager.getFolder(psmlRoot);
+            }
+            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();
+            }
+
+            if (root != null)
+            {
+                control = buildTree(root, request.getLocale());
+                request.getPortletSession().setAttribute(SITE_TREE_ATTRIBUTE, control);
+            }
+        }
+        return control;
+    }
+    
+    public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException,
+            IOException
+    {
+        TreeControl control = (TreeControl) actionRequest.getPortletSession().getAttribute(SITE_TREE_ATTRIBUTE);
+        //assert control != null
+        if (control != null)
+        {
+            String node = actionRequest.getParameter("node");
+            if (node != null)
+            {
+                TreeControlNode controlNode = control.findNode(node);
+                if (controlNode != null && controlNode.isLazy() && !controlNode.isLoaded()) 
+                {
+                    //loader.loadChildren(actionRequest, controlNode, refToURIMap);
+                    String domain = controlNode.getDomain();
+                    //if (domain.equals(PSMLTreeLoader.FOLDER_DOMAIN))
+                    {
+                        try
+                        {
+                            Folder folder = pageManager.getFolder(controlNode.getName());
+                            loader.loadChildren(folder, controlNode, actionRequest.getLocale());
+                        }
+                        catch (JetspeedException e)
+                        {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+                controlNode.setExpanded(!controlNode.isExpanded());
+                //actionRequest.getPortletSession().setAttribute("tree_anchor", node);
+                
+                if(controlNode.isExpanded() && controlNode != control.getRoot())
+                {
+                    TreeControlNode[] siblings = controlNode.getParent().findChildren();
+                    for(int i=0; i<siblings.length; i++)
+                    {
+                        TreeControlNode sibling = siblings[i];
+                        if(sibling != controlNode)
+                        {
+                            sibling.setExpanded(false);
+                        }
+                    }
+                }
+                
+            }
+
+            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();
+
+                    PortletMessaging.cancel(actionRequest, PortletApplicationResources.SITE_PORTLET,
+                            PortletApplicationResources.CURRENT_FOLDER);
+                    PortletMessaging.cancel(actionRequest, PortletApplicationResources.SITE_PORTLET,
+                            PortletApplicationResources.CURRENT_PAGE);
+                    
+                    String attrName = PortletApplicationResources.CURRENT_FOLDER;
+                    if (domain.equals("PAGE_DOMAIN"))
+                    {
+                        attrName = PortletApplicationResources.CURRENT_PAGE;
+                    }
+
+                    PortletMessaging.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 = loader.createRootNode(folder, locale);
+        
+        TreeControl control = new TreeControl(root);
+        loader.loadChildren(folder, root, locale);
+
+        return control;
+    }
+
+
+}
\ No newline at end of file

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailPortlet.java?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailPortlet.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailPortlet.java Thu Nov 24 18:24:19 2005
@@ -0,0 +1,186 @@
+/*
+ * 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.
+ */
+package org.apache.jetspeed.portlets.site;
+
+import java.io.IOException;
+import java.util.LinkedHashMap;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.om.folder.Folder;
+import org.apache.jetspeed.om.folder.FolderNotFoundException;
+import org.apache.jetspeed.om.folder.InvalidFolderException;
+import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.page.PageManager;
+import org.apache.jetspeed.page.PageNotFoundException;
+import org.apache.jetspeed.page.document.Node;
+import org.apache.jetspeed.page.document.NodeException;
+import org.apache.jetspeed.page.document.NodeNotFoundException;
+import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
+import org.apache.portals.bridges.beans.TabBean;
+import org.apache.portals.bridges.common.GenericServletPortlet;
+
+/**
+ * This portlet is a tabbed editor user interface for editing site resoures: pages and folders.
+ *
+ * @author <a href="mailto:jford@apache.com">Jeremy Ford</a>
+ * @version $Id: SiteDetailPortlet.java 348264 2005-11-22 22:06:45Z taylor $
+ */
+public class SiteDetailPortlet extends GenericServletPortlet
+{
+    private PortletContext context;
+    private PageManager pageManager;
+    
+    private LinkedHashMap tabMap = new LinkedHashMap();
+
+    public void init(PortletConfig config)
+    throws PortletException 
+    {
+        super.init(config);
+        context = getPortletContext();                
+        pageManager = (PageManager)context.getAttribute(CommonPortletServices.CPS_PAGE_MANAGER_COMPONENT);
+        if (null == pageManager)
+        {
+            throw new PortletException("Failed to find the Page Manager on portlet initialization");
+        }
+        
+        TabBean tb1 = new TabBean("site_details");
+        TabBean tb2 = new TabBean("site_security");
+        
+        tabMap.put(tb1.getId(), tb1);
+        tabMap.put(tb2.getId(), tb2);
+    }
+
+    public void doView(RenderRequest request, RenderResponse response)
+    throws PortletException, IOException
+    {
+        response.setContentType("text/html");
+        
+        String currentFolder = (String)request.getPortletSession().getAttribute(PortletApplicationResources.CURRENT_FOLDER, PortletSession.APPLICATION_SCOPE);
+        String currentPage = (String)request.getPortletSession().getAttribute(PortletApplicationResources.CURRENT_PAGE, PortletSession.APPLICATION_SCOPE);
+        
+        if(currentFolder != null)
+        {
+            try
+            {
+                Folder folder = pageManager.getFolder(currentFolder);
+                request.setAttribute("folder", folder);
+            } 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(currentPage != null)
+        {
+            try
+            {
+                Page page = pageManager.getContentPage(currentPage);
+                request.setAttribute("page", page);
+            } catch (PageNotFoundException e)
+            {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            } catch (NodeException e)
+            {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+        
+        request.setAttribute("tabs", tabMap.values());
+        
+        TabBean selectedTab = (TabBean) request.getPortletSession().getAttribute(PortletApplicationResources.REQUEST_SELECT_SITE_TAB, PortletSession.APPLICATION_SCOPE);
+        if(selectedTab == null)
+        {
+            selectedTab = (TabBean) tabMap.values().iterator().next();
+        }
+        
+        request.setAttribute(PortletApplicationResources.REQUEST_SELECT_TAB, selectedTab);
+        
+        super.doView(request, response);
+    }
+    
+    public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException
+	{
+        
+        String selectedTab = actionRequest.getParameter(PortletApplicationResources.REQUEST_SELECT_SITE_TAB);
+        if(selectedTab != null)
+        {
+            TabBean tab = (TabBean) tabMap.get(selectedTab);
+            actionRequest.getPortletSession().setAttribute(PortletApplicationResources.REQUEST_SELECT_SITE_TAB, tab, PortletSession.APPLICATION_SCOPE);
+        }
+        
+        String actionType = actionRequest.getParameter("action_type");
+        if(actionType == null)
+        {
+            actionType = "folder";
+        }
+        
+        String acl = actionRequest.getParameter("acl");
+        String nodeName = actionRequest.getParameter("node_name");
+        
+        if(nodeName != null)
+        {
+            try
+            {
+                Node node = null;
+                if(actionType.equals("folder"))
+                {
+                    node = pageManager.getFolder(nodeName);
+                }
+                else
+                {
+                    node = pageManager.getPage(nodeName);
+                }
+                
+                if(node != null)
+                {
+                    // acls depricated: node.setAcl(acl);
+                }
+                
+                //how to store ??
+            }
+            catch (NodeNotFoundException e)
+            {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            catch (NodeException e)
+            {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+	}
+}

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java Thu Nov 24 18:24:19 2005
@@ -0,0 +1,271 @@
+/*
+ * 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.io.NotSerializableException;
+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.PortletMode;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.container.state.MutableNavigationalState;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.om.folder.Folder;
+import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.page.PageManager;
+import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.pluto.om.window.PortletWindow;
+import org.apache.portals.bridges.frameworks.VelocityFrameworkPortlet;
+import org.apache.portals.messaging.PortletMessaging;
+
+/**
+ * SiteDetailsPortlet
+ * 
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
+ * @version $Id: SiteDetailsPortlet.java 348264 2005-11-22 22:06:45Z taylor $
+ */
+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(CommonPortletServices.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);
+        externalSupportMap.put("pageBean", 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) PortletMessaging.consume(request,
+                PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_FOLDER);
+        String currentPage = (String) PortletMessaging.consume(request,
+                PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_PAGE);
+        
+        if (currentFolder != null)
+        {
+            request.setAttribute("site.folder.key", currentFolder);
+            changePortletView(request, response, "folder-view");
+        }
+        if (currentPage != null)
+        {
+            request.setAttribute("site.page.key", currentPage);
+            changePortletView(request, response, "page-view");
+        }
+        
+        String parent = request.getParameter("parent");
+        if (parent != null)
+        {
+            System.out.println("parent = " + parent);            
+            PortletMessaging.publish(request,
+                    PortletApplicationResources.SITE_PORTLET, "parent", parent);                                
+        }
+        super.doView(request, response);
+
+    }
+
+    private void changePortletView(PortletRequest request, PortletResponse response, String view)
+    {
+        //this.setDefaultViewPage("page-view");
+        PortletWindow window = (PortletWindow)request.getAttribute(PortalReservedParameters.PORTLET_WINDOW_ATTRIBUTE);
+        RequestContext context = (RequestContext)request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
+        MutableNavigationalState state = (MutableNavigationalState)context.getPortalURL().getNavigationalState();
+        if (window != null)
+            state.clearParameters(window);            
+        this.setLogicalView(request, response, view, PortletMode.VIEW);        
+    }
+    
+    public String processSaveFolderAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        System.out.println("Processing SAVE action.");
+        FolderProxyBean proxy = (FolderProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            Folder folder = pageManager.getFolder(key);
+            proxy.update(folder);
+            pageManager.updateFolder(folder);
+            
+            notifyUpdate(request, response, key);            
+            
+        }
+        catch (JetspeedException e)
+        {
+            e.printStackTrace();            
+        }
+        return "folder-view:success";
+    }
+
+    public String processAddFolderAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        FolderProxyBean proxy = (FolderProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            String fullKey = getFullKey(request, key);
+            System.out.println("Saving . " + fullKey);
+            Folder folder = pageManager.newFolder(fullKey);
+            
+            
+            proxy.update(folder);
+            pageManager.updateFolder(folder);
+            
+            notifyUpdate(request, response, fullKey);            
+        }
+        catch (JetspeedException e)
+        {
+            e.printStackTrace();
+        }
+        return "folder-view:success";
+    }
+
+    public String processAddPageAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        PageProxyBean proxy = (PageProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            String fullKey = getFullKey(request, key);
+            System.out.println("Saving . " + fullKey);
+            Page page = pageManager.newPage(fullKey);
+            // TODO: Get System Wide defaults for decorators
+            page.getRootFragment().setName("jetspeed-layouts::VelocityTwoColumns");
+            page.setDefaultDecorator("tigris", Fragment.LAYOUT);
+            page.setDefaultDecorator("tigris", Fragment.PORTLET);
+            // or:
+            //String templateFolder = actionRequest.getPreferences().getValue("newUserTemplateDirectory", "/_user/template/");
+            // TODO: copy the entire dir tree, not just the default-page.psml                 
+            //Page template = pageManager.getPage(templateFolder + "default-page.psml");                
+            //Page copy = pageManager.copyPage(template, Folder.USER_FOLDER + userName + "/default-page.psml");
+            
+            
+            proxy.update(page);
+            pageManager.updatePage(page);
+            
+            notifyUpdate(request, response, fullKey);            
+        }
+        catch (JetspeedException e)
+        {
+            e.printStackTrace();
+        }
+        return "folder-view:success";
+    }
+   
+    public String processDeleteFolderAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        FolderProxyBean proxy = (FolderProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            String fullKey = getFullKey(request, key);
+            
+            Folder folder = pageManager.getFolder(fullKey);
+            pageManager.removeFolder(folder);
+            
+            notifyUpdate(request, response, fullKey);            
+        }
+        catch (JetspeedException e)
+        {
+            e.printStackTrace();
+        }
+        return "folder-view:success";
+    }
+    
+    private String getFullKey(ActionRequest request, String key)
+    {
+        String parent = (String)PortletMessaging.consume(request, PortletApplicationResources.SITE_PORTLET, "parent");
+        if (parent == null)
+        {
+            return "/" + key;
+        }
+        if (!parent.endsWith("/"))
+            parent += "/";
+
+        return parent + key;        
+    }
+    
+    public String processSavePageAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        System.out.println("Processing SAVE Page action.");
+        PageProxyBean proxy = (PageProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {            
+            Page page = pageManager.getPage(key);
+            proxy.update(page);
+            pageManager.updatePage(page);
+
+            notifyUpdate(request, response, proxy.getKey());
+            
+        }
+        catch (JetspeedException e)
+        {
+            e.printStackTrace();            
+        }
+        return "page-view:success";
+    }
+
+    private void notifyUpdate(ActionRequest request, ActionResponse response, String selected)
+    throws NotSerializableException
+    {
+        PortletMessaging.publish(request,
+                PortletApplicationResources.SITE_PORTLET,
+                PortletApplicationResources.MESSAGE_REFRESH, "true");
+//        PortletMessaging.publish(request,
+//                PortletApplicationResources.SITE_PORTLET,
+//                PortletApplicationResources.MESSAGE_SELECTED, proxy
+//                        .getLookupKey());
+        changePortletView(request, response, "folder-view");
+        
+    }
+}
\ No newline at end of file

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,46 @@
+# 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.
+#
+# $Id: SiteResources.properties 348264 2005-11-22 22:06:45Z taylor $
+#
+
+# 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}
+
+# Folder titles
+folder.details = Folder Details
+Title = Title
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+
+# Page titles
+page.details = Page Details
+Version = Version
+
+# buttons and navigations
+save = Save
+remove = Remove
+add.page = Add Page
+add.subfolder = Add SubFolder
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,34 @@
+# 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.
+#
+# $Id: SiteResources_en.properties,v 1.2 2005/02/20 23:00:25 shinsuke Exp $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+# general validation errors
+errors.required = Camp {0} \u00e9s obligatori.
+errors.range = Camp {0} est\u00e0 fora de rang: [{1} - {2}]
+errors.mask = Camp {0} ha fallat a l'encaixar amb el patr\u00f3 de validaci\u00f3: {2}
+errors.maxlength = Camp {0} sobrepassa la longitud m\u00e0xima {1}
+
+# Folder titles
+folder.details = Detalls de carpeta
+Title = T\u00edtol
+
+# buttons and navigations
+save = Gravar
+add.page = Afegir p\u00e0gina
+add.subfolder = Afegir subcarpeta
+add.docset = Afegir conjunt documents (docset)

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,48 @@
+# 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.
+#
+# $Id: SiteResources_en.properties 348264 2005-11-22 22:06:45Z taylor $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+# 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}
+
+# Folder titles
+folder.details = Folder Details
+Title = Title
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+
+# Page titles
+page.details = Page Details
+Version = Version
+
+# buttons and navigations
+save = Save
+remove = Remove
+add.page = Add Page
+add.subfolder = Add SubFolder
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,34 @@
+# 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.
+#
+# $Id: SiteResources_en.properties,v 1.2 2005/02/20 23:00:25 shinsuke Exp $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+# general validation errors
+errors.required = Campo {0} es obligatorio.
+errors.range = Campo {0} est\u00e1 fuera de rango: [{1} - {2}]
+errors.mask = Campo {0} ha fallado al encajar con el patr\u00f3n de validaci\u00f3n: {2}
+errors.maxlength = Campo {0} sobrepasa la longitud m\u00e1xima {1}
+
+# Folder titles
+folder.details = Detalles de carpeta
+Title = T\u00edtulo
+
+# buttons and navigations
+save = Grabar
+add.page = A\u00f1adir p\u00e1gina
+add.subfolder = A\u00f1adir subcarpeta
+add.docset = A\u00f1adir conjunto documentos (docset)

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,15 @@
+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
+edit.menus = Menus
+edit.security = Securite

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,43 @@
+# 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.
+#
+# $Id: SiteResources_en.properties 216203 2005-07-13 18:24:26Z taylor $
+#
+# LOCALIZATION MAINTAINER:
+#  Jetspeed Development Team
+
+# general validation errors
+errors.required = A(z) {0} mez\u0151 kit\u00f6lt\u00e9se k\u00f6telez\u0151.
+errors.range = A(z) {0} mez\u0151 \u00e9rt\u00e9ke nincsen benne a [{1} - {2}] tartom\u00e1ynban
+errors.mask = A(z) {0} mez\u0151ben nem tal\u00e1lhat\u00f3 ellen\u0151rz\u0151 minta: {2}
+errors.maxlength = A(z) {0} meghaladja a maximum hossz\u00fas\u00e1got {1}
+
+# Folder titles
+folder.details = Mappa r\u00e9szletei
+Title = C\u00edm
+ShortTitle = R\u00f6vid c\u00edm
+DefaultPage = Alap\u00e9rtelmezett oldal
+Theme = T\u00e9ma
+ResourceType = Er\u0151forr\u00e1s tipusa
+
+# buttons and navigations
+save = Ment\u00e9s
+remove = Elt\u00e1vol\u00edt\u00e1s
+add.page = Oldal hozz\u00e1ad\u00e1sa
+add.subfolder = Almappa hozz\u00e1ad\u00e1sa
+add.link = Link hozz\u00e1ad\u00e1sa
+doc.order = Dokumentum sorrendje
+menus = Men\u00fck
+security = Biztons\u00e1g
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,36 @@
+# 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.
+#
+#    Please contact me if you have any questions or suggestion : desmax74@yahoo.it
+#
+#    Italian version by Dessì Massimiliano  <a href="desmax74@yahoo.it.it">desmax74@yahoo.it</a>.
+#    Vers 0.1 jetspeed 2.0   03/04/2005
+
+# general validation errors
+errors.required = Il campo {0} e' un campo richiesto.
+errors.range = Il campo {0} e' fuori dall' intervallo: [{1} - {2}]
+errors.mask = Il campo {0} non soddifa il pattern di validazione: {2}
+errors.maxlength = Il campo {0} supera la lunghezza massima {1}
+
+# Folder titles
+folder.details = Cartella dettagli
+Title = Titolo
+
+# buttons and navigations
+save = Salva
+add.page = Aggiungi Pagina
+add.subfolder = Aggiungi sotto cartella
+add.docset = Aggiungi Docset
+edit.menus = Menus
+edit.security = Security

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,41 @@
+# 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.
+#
+# $Id: SiteResources_ja.properties 348264 2005-11-22 22:06:45Z taylor $
+#
+
+# general validation errors
+errors.required = \u30d5\u30a3\u30fc\u30eb\u30c9 {0} \u306f\u5fc5\u9808\u3067\u3059\u3002
+errors.range = \u30d5\u30a3\u30fc\u30eb\u30c9 {0} \u306f [{1} - {2}] \u306e\u7bc4\u56f2\u5916\u3067\u3059\u3002
+errors.mask = \u30d5\u30a3\u30fc\u30eb\u30c9 {0} \u306f\u691c\u8a3c\u30d1\u30bf\u30fc\u30f3 {2} \u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002
+errors.maxlength = \u30d5\u30a3\u30fc\u30eb\u30c9 {0} \u306f\u9577\u3055\u306e\u6700\u5927\u5024 {1} \u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002
+
+# Folder titles
+folder.details = \u30d5\u30a9\u30eb\u30c0\u306e\u8a73\u7d30
+Title = \u30bf\u30a4\u30c8\u30eb
+ShortTitle = \u77ed\u3044\u30bf\u30a4\u30c8\u30eb
+DefaultPage = \u30c7\u30d5\u30a9\u30eb\u30c8\u30da\u30fc\u30b8
+Theme = \u30c6\u30fc\u30de
+ResourceType = \u30ea\u30bd\u30fc\u30b9\u30bf\u30a4\u30d7
+
+# buttons and navigations
+save = \u4fdd\u5b58
+remove = \u524a\u9664
+add.page = \u30da\u30fc\u30b8\u306e\u8ffd\u52a0
+add.subfolder = \u30b5\u30d6\u30d5\u30a9\u30eb\u30c0\u306e\u8ffd\u52a0
+add.link = \u30ea\u30f3\u30af\u306e\u8ffd\u52a0
+doc.order = \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u9806\u5e8f
+menus = \u30e1\u30cb\u30e5\u30fc
+security = \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties Thu Nov 24 18:24:19 2005
@@ -0,0 +1,33 @@
+# 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.
+#
+#  LOCALIZATION MAINTAINER:
+#  Jian Liao <ji...@gmail.com>
+
+# general validation errors
+errors.required = \u680f\u76ee {0} \u7684\u503c\u4e0d\u80fd\u4e3a\u7a7a.
+errors.range = \u680f\u76ee {0} \u7684\u503c\u8d8a\u754c: [{1} - {2}]
+errors.mask = \u680f\u76ee {0} \u7684\u503c\u65e0\u6cd5\u6ee1\u8db3\u6821\u9a8c\u6a21\u5f0f: {2}
+errors.maxlength = \u680f\u76ee {0} \u7684\u503c\u8d85\u8fc7\u6700\u5927\u957f\u5ea6 {1}
+
+# Folder titles
+folder.details = \u6587\u4ef6\u5939\u8be6\u7ec6\u5185\u5bb9
+Title = \u6807\u9898
+
+# buttons and navigations
+save = \u4fdd\u5b58
+add.page = \u6dfb\u52a0\u9875\u9762
+add.subfolder = \u6dfb\u52a0\u5b50\u6587\u4ef6\u5939
+edit.menus = \u83dc\u5355
+edit.security = \u5b89\u5168

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/statistics/StatisticsPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/statistics/StatisticsPortlet.java?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/statistics/StatisticsPortlet.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/statistics/StatisticsPortlet.java Thu Nov 24 18:24:19 2005
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2000-2001,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.statistics;
+
+import java.io.IOException;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.statistics.AggregateStatistics;
+import org.apache.jetspeed.statistics.InvalidCriteriaException;
+import org.apache.jetspeed.statistics.PortalStatistics;
+import org.apache.jetspeed.statistics.StatisticsQueryCriteria;
+import org.apache.jetspeed.statistics.impl.AggregateStatisticsImpl;
+import org.apache.jetspeed.statistics.impl.StatisticsQueryCriteriaImpl;
+import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
+import org.apache.velocity.context.Context;
+
+/**
+ * Statistics Portlet
+ * 
+ * @author <a href="mailto:chris@bluesunrise.com">Chris Schaefer </a>
+ * @version $Id: $
+ */
+public class StatisticsPortlet extends GenericVelocityPortlet
+{
+
+    private PortalStatistics statistics;
+
+    private static final String SESSION_CRITERIA = "criteria";
+
+    private static final String SESSION_RESULTS = "results";
+
+    private static final String SESSION_TOTALSESSIONS = "totalsessions";
+
+    /* CLF logger */
+    protected final Log logger = LogFactory.getLog(this.getClass());
+
+    public void init(PortletConfig config) throws PortletException
+    {
+        super.init(config);
+        PortletContext context = getPortletContext();
+        statistics = (PortalStatistics) context
+                .getAttribute(CommonPortletServices.CPS_PORTAL_STATISTICS);
+        if (statistics == null)
+                throw new PortletException(
+                        "Could not get instance of portal statistics component");
+    }
+
+    public void doView(RenderRequest request, RenderResponse response)
+            throws PortletException, IOException
+    {
+        Context velocityContext = getContext(request);
+        PortletSession session = request.getPortletSession();
+
+        StatisticsQueryCriteria sqc = (StatisticsQueryCriteria) session
+                .getAttribute(SESSION_CRITERIA);
+        AggregateStatistics stats = (AggregateStatistics) session
+                .getAttribute(SESSION_RESULTS);
+        if (stats == null)
+        {
+            if (sqc == null)
+            {
+                // if we get here, we're on the first startup.
+                sqc = new StatisticsQueryCriteriaImpl();
+                sqc.setQueryType(PortalStatistics.QUERY_TYPE_PORTLET);
+                sqc.setTimePeriod("1");
+                sqc.setListsize("5");
+                sqc.setSorttype("count");
+                sqc.setSortorder("desc");
+                session.setAttribute(SESSION_CRITERIA, sqc);
+
+                try
+                {
+                    statistics.forceFlush();
+                    stats = statistics.queryStatistics(sqc);
+                } catch (InvalidCriteriaException e)
+                {
+                    logger.warn("unable to complete a statistics query ", e);
+                }
+                session.setAttribute(SESSION_RESULTS, stats);
+
+            }
+        }
+        velocityContext.put(SESSION_TOTALSESSIONS, ""
+                + statistics.getNumberOfCurrentUsers());
+        velocityContext.put(SESSION_RESULTS, stats);
+        velocityContext.put(SESSION_CRITERIA, sqc);
+        super.doView(request, response);
+    }
+
+    public void processAction(ActionRequest request,
+            ActionResponse actionResponse) throws PortletException, IOException
+    {
+        PortletSession session = request.getPortletSession();
+        StatisticsQueryCriteria criteria = new StatisticsQueryCriteriaImpl();
+        String user = request.getParameter("user");
+        criteria.setUser(user);
+        String timeperiod = request.getParameter("timeperiod");
+        if (timeperiod == null)
+        {
+            timeperiod = "all";
+        }
+        criteria.setListsize("5");
+        criteria.setSorttype("count");
+        criteria.setSortorder("desc");
+
+        criteria.setTimePeriod(timeperiod);
+        String queryType = request.getParameter("queryType");
+
+        criteria.setQueryType(queryType);
+        AggregateStatistics stats = new AggregateStatisticsImpl();
+        try
+        {
+            statistics.forceFlush();
+            stats = statistics.queryStatistics(criteria);
+        } catch (InvalidCriteriaException e)
+        {
+            logger.warn("unable to complete a statistics query ", e);
+        }
+        // save this to session for later display/edit
+        session.setAttribute(SESSION_CRITERIA, criteria);
+        session.setAttribute(SESSION_RESULTS, stats);
+
+    }
+
+}

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/META-INF/context.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/META-INF/context.xml?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/META-INF/context.xml (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/META-INF/context.xml Thu Nov 24 18:24:19 2005
@@ -0,0 +1,18 @@
+<!--
+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.
+
+  $Id: context.xml 348264 2005-11-22 22:06:45Z taylor $
+-->
+<Context crossContext="true"/>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/c.tld
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/c.tld?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/c.tld (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/c.tld Thu Nov 24 18:24:19 2005
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib
+  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib>
+  <tlib-version>1.0</tlib-version>
+  <jsp-version>1.2</jsp-version>
+  <short-name>c</short-name>
+  <uri>http://java.sun.com/jstl/core</uri>
+  <display-name>JSTL core</display-name>
+  <description>JSTL 1.0 core library</description>
+
+  <validator>
+    <validator-class>
+	org.apache.taglibs.standard.tlv.JstlCoreTLV
+    </validator-class>
+    <init-param>
+	<param-name>expressionAttributes</param-name>
+	<param-value>
+	    out:value
+	    out:default
+	    out:escapeXml
+	    if:test
+	    import:url
+	    import:context
+	    import:charEncoding
+	    forEach:items
+	    forEach:begin
+	    forEach:end
+	    forEach:step
+	    forTokens:items
+	    forTokens:begin
+	    forTokens:end
+	    forTokens:step
+	    param:encode
+	    param:name
+	    param:value
+            redirect:context
+            redirect:url
+	    set:property
+	    set:target
+	    set:value
+	    url:context
+	    url:value
+	    when:test
+	</param-value>
+	<description>
+	    Whitespace-separated list of colon-separated token pairs
+	    describing tag:attribute combinations that accept expressions.
+	    The validator uses this information to determine which
+	    attributes need their syntax validated.
+	</description>
+     </init-param>
+  </validator>
+
+  <tag>
+    <name>catch</name>
+    <tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+        Catches any Throwable that occurs in its body and optionally
+        exposes it.
+    </description>
+    <attribute>
+        <name>var</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>choose</name>
+    <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+        Simple conditional tag that establishes a context for
+        mutually exclusive conditional operations, marked by
+        &lt;when&gt; and &lt;otherwise&gt;
+    </description>
+  </tag>
+
+  <tag>
+    <name>out</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.OutTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Like &lt;%= ... &gt;, but for expressions.
+    </description>
+    <attribute>
+        <name>value</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>default</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>escapeXml</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>if</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.IfTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+        Simple conditional tag, which evalutes its body if the
+        supplied condition is true and optionally exposes a Boolean
+        scripting variable representing the evaluation of this condition
+    </description>
+    <attribute>
+        <name>test</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>var</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>scope</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>import</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.ImportTag</tag-class>
+    <tei-class>org.apache.taglibs.standard.tei.ImportTEI</tei-class>
+    <body-content>JSP</body-content>
+    <description>
+	Retrieves an absolute or relative URL and exposes its contents
+	to either the page, a String in 'var', or a Reader in 'varReader'.
+    </description>
+    <attribute>
+        <name>url</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>var</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>scope</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>varReader</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>context</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>charEncoding</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>forEach</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.ForEachTag</tag-class>
+    <tei-class>org.apache.taglibs.standard.tei.ForEachTEI</tei-class>
+    <body-content>JSP</body-content>
+    <description>
+	The basic iteration tag, accepting many different
+        collection types and supporting subsetting and other
+        functionality
+    </description>
+    <attribute>
+	<name>items</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>begin</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>end</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>step</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>var</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>varStatus</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>forTokens</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.ForTokensTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Iterates over tokens, separated by the supplied delimeters
+    </description>
+    <attribute>
+	<name>items</name>
+	<required>true</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>delims</name>
+	<required>true</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>begin</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>end</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>step</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>var</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+	<name>varStatus</name>
+	<required>false</required>
+	<rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>otherwise</name>
+    <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
+	and runs only if all of the prior conditions evaluated to
+	'false'
+    </description>
+  </tag>
+
+  <tag>
+    <name>param</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.ParamTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Adds a parameter to a containing 'import' tag's URL.
+    </description>
+    <attribute>
+        <name>name</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>value</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>redirect</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.RedirectTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Redirects to a new URL.
+    </description>
+    <attribute>
+        <name>var</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>scope</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>url</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>context</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>remove</name>
+    <tag-class>org.apache.taglibs.standard.tag.common.core.RemoveTag</tag-class>
+    <body-content>empty</body-content>
+    <description>
+	Removes a scoped variable (from a particular scope, if specified).
+    </description>
+    <attribute>
+        <name>var</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>scope</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>set</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.SetTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Sets the result of an expression evaluation in a 'scope'
+    </description>
+    <attribute>
+        <name>var</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>value</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>target</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>property</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>scope</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>url</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.UrlTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+	Prints or exposes a URL with optional query parameters
+        (via the c:param tag).
+    </description>
+    <attribute>
+        <name>var</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>scope</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>value</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+    <attribute>
+        <name>context</name>
+        <required>false</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+  <tag>
+    <name>when</name>
+    <tag-class>org.apache.taglibs.standard.tag.el.core.WhenTag</tag-class>
+    <body-content>JSP</body-content>
+    <description>
+        Subtag of &lt;choose&gt; that includes its body if its
+        condition evalutes to 'true'
+    </description>
+    <attribute>
+        <name>test</name>
+        <required>true</required>
+        <rtexprvalue>false</rtexprvalue>
+    </attribute>
+  </tag>
+
+</taglib>

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml?rev=348854&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/faces-config.xml Thu Nov 24 18:24:19 2005
@@ -0,0 +1,87 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+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.
+
+-->
+
+<!DOCTYPE faces-config PUBLIC
+  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
+  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
+
+<faces-config>
+
+  <application>
+    <locale-config>
+      <default-locale>en</default-locale>
+      <supported-locale>de</supported-locale>
+      <supported-locale>fr</supported-locale>
+      <supported-locale>es</supported-locale>
+    </locale-config>
+  </application>
+
+  <navigation-rule>
+    <from-view-id>/WEB-INF/view/profiler-admin.jsp</from-view-id>
+    <navigation-case>
+      <from-outcome>gotoCriterionForm</from-outcome>
+      <to-view-id>/WEB-INF/view/profiler-criterion.jsp</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
+  <navigation-rule>
+    <from-view-id>/WEB-INF/view/profiler-criterion.jsp</from-view-id>
+    <navigation-case>
+      <from-outcome>returnFromCriterion</from-outcome>
+      <to-view-id>/WEB-INF/view/profiler-admin.jsp</to-view-id>
+    </navigation-case>
+  </navigation-rule>
+
+  <managed-bean>
+    <managed-bean-name>tableData</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.site.beans.TableData</managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>users</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.security.users.UserData</managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+  
+    <managed-bean>
+        <managed-bean-name>tabbedPaneBean</managed-bean-name>
+        <managed-bean-class>org.apache.jetspeed.portlets.security.users.TabbedPaneBean</managed-bean-class>
+        <managed-bean-scope>request</managed-bean-scope>
+    </managed-bean>
+
+	<!-- Profiler -->
+  <managed-bean>
+    <managed-bean-name>rules</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.profiler.ProfileRulesExtent</managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+	  
+  <managed-bean>
+    <managed-bean-name>rule</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.profiler.ProfileRuleForm</managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+  <managed-bean>
+    <managed-bean-name>criterion</managed-bean-name>
+    <managed-bean-class>org.apache.jetspeed.portlets.profiler.ProfileCriterionForm</managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+</faces-config>



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