SaveView.java :  » Source-Control » jcvsweb » com » ice » jcvsweb » action » Java Open Source

Java Open Source » Source Control » jcvsweb 
jcvsweb » com » ice » jcvsweb » action » SaveView.java

package com.ice.jcvsweb.action;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.ice.jcvsweb.bean.JCVSUser;
import com.ice.jcvsweb.bean.JCVSError;
import com.ice.jcvsweb.bean.JCVSProject;
import com.ice.jcvsweb.bean.JCVSProjectView;
import com.ice.jcvsweb.form.EditViewForm;
import com.ice.jcvsweb.manager.JCVSUserManager;
import com.ice.jcvsweb.manager.JCVSPermManager;
import com.ice.jcvsweb.manager.JCVSProjectManager;


public
class    SaveView
extends    JCVSAction
  {
  public ActionForward
  execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response
      )
    throws Exception
    {
    String forwardName = "failure";
    HttpSession session = request.getSession();
    ServletContext ctx = session.getServletContext();
    JCVSUser user = this.establishUser( request );
    JCVSProjectManager projectMgr = this.getProjectManager( ctx );
    JCVSUserManager userMgr = this.getUserManager( ctx );
    JCVSPermManager permMgr = this.getPermissionManager( ctx );

    EditViewForm viewForm = (EditViewForm) form;

    if ( user == null )
      {
      JCVSError err = new JCVSError();
      err.setException( new Throwable( "NULL USER" ) );
      err.setTitle( "FATAL The user is not established." );
      this.postAndLogError( request, err );
      }
    else if ( viewForm == null )
      {
      JCVSError err = new JCVSError();
      err.setException( new Throwable( "FATAL NULL VIEWFORM" ) );
      err.setTitle( "FATAL EditViewForm is null." );
      this.postAndLogError( request, err );
      }
    else
      {
      String viewKey = viewForm.getKey();
      String projKey = viewForm.getProjectKey();

      JCVSProject editProject = projectMgr.getProject( projKey );

      JCVSProjectView editView = editProject.getView( viewKey );

      if ( editProject == null )
        {
        JCVSError err = new JCVSError();
        err.setException( new Throwable( "NULL PROJECT" ) );
        err.setTitle( "FATAL The project '"+projKey+"' is null." );
        this.postAndLogError( request, err );
        }
      else if ( ! permMgr.getUserCanEdit( user, editProject ) )
        {
        forwardName = "notallowed";
        this.setReasonMessage( request,
          "You are not the owner of the project,"
          + "and you have not been granted "
          + "administrative permission for the project." );
        }
      else
        {
        this.setEditMode( request, true );
        this.setPageTitle( request, projKey );

        editView.setName( viewForm.getName().trim() );
        editView.setTitle( viewForm.getTitle().trim() );
        editView.setCvsTag( viewForm.getCvsTag().trim() );
        editView.setCvsModule( viewForm.getCvsModule().trim() );
        editView.setDescription( viewForm.getDescription().trim() );

        String jump = viewForm.getJump().trim();
        while ( jump.startsWith( "/" ) )
          {
          jump = jump.substring( 1 );
          }
        editView.setJump( jump );

        try {
          projectMgr.saveProject( editProject );
          this.setEditProjectBean( request, editProject );
          forwardName = "editproject";
          }
        catch ( IOException ex )
          {
          JCVSError err = new JCVSError();
          err.setException( ex );
          err.setTitle( "Save project view '"
            + editView.getViewName() + "' failed." );
          err.setShortMessage
            ( "An error occurred while saving the project view." );
          this.postAndLogError( request, err );
          }
        }
      }

    return mapping.findForward( forwardName );
    }

  }
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.