Package org.apache.jetspeed.portlets.site

Source Code of org.apache.jetspeed.portlets.site.SiteDetailPortlet

/*
* 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.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,v 1.9 2004/12/22 17:49:18 taylor Exp $
*/
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(PortletApplicationResources.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.getPage(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();
            }
        }
  }
}
TOP

Related Classes of org.apache.jetspeed.portlets.site.SiteDetailPortlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.