Package org.opencustomer.webapp.action

Source Code of org.opencustomer.webapp.action.EditPageForm

/*******************************************************************************
* ***** BEGIN LICENSE BLOCK Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The Original Code is the OpenCustomer CRM.
*
* The Initial Developer of the Original Code is Thomas Bader (Bader & Jene
* Software-Ingenieurb�ro). Portions created by the Initial Developer are
* Copyright (C) 2005 the Initial Developer. All Rights Reserved.
*
* Contributor(s): Thomas Bader <thomas.bader@bader-jene.de>
*
* ***** END LICENSE BLOCK *****
*/

package org.opencustomer.webapp.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.opencustomer.framework.webapp.panel.Action;
import org.opencustomer.framework.webapp.panel.EditPanel;
import org.opencustomer.framework.webapp.panel.Page;
import org.opencustomer.framework.webapp.panel.Panel;
import org.opencustomer.framework.webapp.struts.ActionForm;

public abstract class EditPageForm extends ActionForm
{
    private final static Logger log = Logger.getLogger(EditPageForm.class);
   
    private String doSave;

    private String doCancel;

    private String doDelete;
   
    private Page doTab;
   
    private EditPanel panel;
   
    private boolean disabled;
   
    @Override
    public final boolean process(ActionMapping mapping, ActionMessages error, HttpServletRequest request)
    {
        boolean validate = true;

        if(!Panel.getPanelStack(request).isEmpty() && Panel.validate(request))
        {
            panel = (EditPanel)Panel.getPanelStack(request).peek();

            boolean reset = true;
            if(doTab == null && panel != null)
            {
                Page newTab = panel.findPage(request);
                if(newTab != null)
                {
                    if(newTab.isSelectable())
                    {
                        doTab = newTab;
                        reset = false;
                    }   
                    else
                        error.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("default.error.invalid"));
                }
            }
           
            if(reset)
                doTab = null;
           
            // the buttons can only be used, if the actions are defined
            if(doSave != null && getPanel().getAction(Action.Type.SAVE) == null)
                doSave = null;
            if(doDelete != null && getPanel().getAction(Action.Type.DELETE) == null)
                doDelete = null;
           
            disabled = !panel.isEditable();
           
            if (!isTokenValid(request))
            {
                if (log.isDebugEnabled())
                    log.debug("token is not valid");
               
                validate = false;
            }
            else if(doCancel != null)
            {
                if (log.isDebugEnabled())
                    log.debug("use button: cancel");
               
                validate = false;
            }
            else if(doDelete != null)
            {
                if (log.isDebugEnabled())
                    log.debug("use button: delete");
               
                validate = false;
            }
           
            if(isEditable(panel))
            {
                if(forceValidation())
                    return true;
                else
                    return validate;
            }
            else
                return false;
        }
        else
            return false;
    }

    private boolean isEditable(EditPanel panel) {
        boolean editable = panel.isEditable();
       
        if(panel.getActivePage().getEditable() != null) {
            editable = panel.getActivePage().getEditable();
        }
       
        return editable;
    }
   
    protected boolean forceValidation()
    {
        return false;
    }
   
    protected EditPanel getPanel()
    {
        return panel;
    }

    protected boolean isDisabled()
    {
        return disabled;
    }
      
    public Page getDoTab()
    {
        return doTab;
    }

    public void setDoTab(Page doTab)
    {
        this.doTab = doTab;
    }
   
    public String getDoCancel()
    {
        return doCancel;
    }

    public void setDoCancel(String doCancel)
    {
        this.doCancel = doCancel;
    }

    public String getDoDelete()
    {
        return doDelete;
    }

    public void setDoDelete(String doDelete)
    {
        this.doDelete = doDelete;
    }

    public String getDoSave()
    {
        return doSave;
    }

    public void setDoSave(String doSave)
    {
        this.doSave = doSave;
    }
   
}
TOP

Related Classes of org.opencustomer.webapp.action.EditPageForm

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.