Package org.apache.jetspeed.modules.actions.controllers

Source Code of org.apache.jetspeed.modules.actions.controllers.XMultiColumnControllerAction

/*
* 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.modules.actions.controllers;

import java.util.List;
import java.util.Map;

import javax.servlet.ServletRequest;

import org.apache.jetspeed.om.profile.psml.PsmlEntry;
import org.apache.jetspeed.portal.Portlet;
import org.apache.jetspeed.portal.PortletController;
import org.apache.jetspeed.services.rundata.JetspeedRunData;
import org.apache.jetspeed.services.statemanager.SessionState;
import org.apache.jetspeed.util.template.JetspeedTool;
import org.apache.jetspeed.util.template.JspTemplate;
import org.apache.jetspeed.util.StringUtils;
import org.apache.turbine.util.RunData;
import org.apache.velocity.context.Context;

/**
* XMultiColumnControllerAction
*
* @author <a href="mailto:junyang@cisco.com">Jun Yang</a>
* @version $Id: XMultiColumnControllerAction.java,v 1.2 2004/02/23 02:49:58 jford Exp $
*/
public class XMultiColumnControllerAction extends MultiColumnControllerAction
{
    protected void buildCustomizeContext(
        PortletController controller,
        Context context,
        RunData rundata
    )
    {
        super.buildCustomizeContext(controller, context, rundata);
        context.put("template", "x-multicolumn-customize.vm");
        context.put("action", "controllers.XMultiColumnControllerAction");

        context.put("includedContent", new JspTemplate(rundata, "/controllers/html/x-multicolumn-customize.jsp"));
        ServletRequest request = rundata.getRequest();
        request.setAttribute("jspContext", context);

        // debug
        Object[] columns = (Object[]) context.get("portlets");
        Map portletTitleMap = (Map) context.get("titles");
        for (int i = 0; i < columns.length; i++)
        {
            List portletList = (List) columns[i];
            for (int j = 0; j < portletList.size(); j++)
            {
                PsmlEntry entry = (PsmlEntry) portletList.get(j);
                String portletTitle = (String) portletTitleMap.get(entry.getId());
                String portletSkinName = entry.getSkin() == null ? "-- Default --" : entry.getSkin().getName();
                String portletSecurityId =
                    entry.getSecurityRef() == null ?
                    "-- Default --" :
                    entry.getSecurityRef().getParent();
                String controlListBox =
                (entry.getControl() != null && entry.getControl().getName() != null) ?
                    JetspeedTool.getPortletParameter(rundata,
                                                     (Portlet) rundata.getUser().getTemp("customizer"),
                                                      "control", entry.getControl().getName()) :
                    JetspeedTool.getPortletParameter(rundata, (Portlet) rundata.getUser().getTemp("customizer"), "control");
                controlListBox = controlListBox.substring(12);
                controlListBox = controlListBox.replace('\n', ' ');
                controlListBox = controlListBox.replace('\r', ' ');
                int z = 0;
            }
        }
    }
   
    public void doSave(RunData data, Context context)
    {
        applyModelChanges(data, context);
        super.doSave(data, context);
    }

    public void doDelete(RunData data, Context context)
    {
        applyModelChanges(data, context);
        super.doDelete(data, context);
    }

    public void doControl(RunData data, Context context)
    {
        applyModelChanges(data, context);
        super.doControl(data, context);
    }

    protected void applyModelChanges(RunData data, Context context)
    {
        ServletRequest request = data.getRequest();
        String[] modelChangeList = request.getParameterValues("modelChangeList");
        if (modelChangeList != null)
        {
            String[] moves = StringUtils.stringToArray(modelChangeList[0], ";");

            SessionState customizationState = ((JetspeedRunData) data).getPageSessionState();
            List[] columns = (List[]) customizationState.getAttribute("customize-columns");

            for (int i = 0; i < moves.length; i++)
            {
                String[] values = StringUtils.stringToArray(moves[i], ",");
                int originCol = Integer.parseInt(values[0]);
                int originRow = Integer.parseInt(values[1]);
                int destCol = Integer.parseInt(values[2]);
                int destRow = Integer.parseInt(values[3]);

                Object portletEntry = columns[originCol].get(originRow);
                columns[originCol].remove(originRow);
                columns[destCol].add(destRow, portletEntry);
            }
        }
    }
}   

TOP

Related Classes of org.apache.jetspeed.modules.actions.controllers.XMultiColumnControllerAction

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.