Subversion Repositories bacoAlunos

Rev

Rev 1945 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.web.controllers.courseunits;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.CourseUnitProgram;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl;
import pt.estgp.estgweb.domain.views.CourseUnitProgramView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * @author Jorge Machado
 * @author Fabio Velez
 * @date 26/Fev/2008
 * @time 18:01:54
 * @see pt.estgp.estgweb.web
 */

public class CourseUnitsProgramController extends CourseUnitsController
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CourseUnitsProgramController.class);




    public ActionForward validateProgram(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response)
            throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {


            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;

            long id = cUF.getCourseUnitId();
            if(id <= 0)
                id = cUF.getCourseUnitView().getId();

        IServiceManager sm = ServiceManager.getInstance();
        5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{id};
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"unitId"};
        sm.execute(RequestUtils.getRequester(request, response), "ValidateCourseUnitProgram", args,names);

        return saveProgram(mapping,
                    form,
                    request,
                    response);


    }

    public ActionForward invalidateProgram(ActionMapping mapping,
                                         ActionForm form,
                                         HttpServletRequest request,
                                         HttpServletResponse response)
            throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {


            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;

            long id = cUF.getCourseUnitId();
            if(id <= 0)
                id = cUF.getCourseUnitView().getId();

            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{id};
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"unitId"};
            sm.execute(RequestUtils.getRequester(request, response), "InvalidateCourseUnitProgram", args,names);

            return editProgram(mapping,
                    form,
                    request,
                    response);



    }

    public ActionForward editProgram(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;

            long id = cUF.getCourseUnitId();
            if(id <= 0)
                id = cUF.getCourseUnitView().getId();


            CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);

            cUF.setCourseUnitView(cV);
            request.setAttribute("CourseUnitView", cV);
            CourseUnitProgramView cpv;
            if(cV.getCourseUnit().getCourseUnitProgram() == null)
                cpv = new CourseUnitProgramView(new CourseUnitProgramImpl());
            else
                cpv = new CourseUnitProgramView(cV.getCourseUnit().getCourseUnitProgram());
//            request.setAttribute("CourseUnitProgramView", cpv);

            if(cpv.getCourseUnitProgram().getCourseUnitProgramPart2() == null)
                cpv.getCourseUnitProgram().setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());


            cUF.setCourseUnitProgramView(cpv);
            cUF.setCourseUnitView(cV);
            return mapping.findForward("edit.program");
        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }
    }

    public ActionForward saveProgram(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;

            long id = cUF.getCourseUnitView().getId();
            CourseUnitProgramView cuV = cUF.getCourseUnitProgramView();
            cuV.setResponsableId(cUF.getCourseUnitView().getResponsableId());

            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{cuV, id};
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"programView", "unitId"};
            sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitProgram", args,names);
            CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response);
            cUF.setCourseUnitView(cV);
            request.setAttribute("CourseUnitView", cV);

            if(request.getParameter("json")!=null && request.getParameter("json").equals("true"))
            {
                return mapping.findForward("jsonOk");
            }
            else
                return mapping.findForward("load");
        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }
    }

    public ActionForward cloneProgram(ActionMapping mapping,
                                      ActionForm form,
                                      HttpServletRequest request,
                                      HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;

            long id = cUF.getCourseUnitView().getId();
            long idFrom = cUF.getCloneFromUnitId();

            IServiceManager sm = ServiceManager.getInstance();
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{idFrom, id};
            CourseUnitProgram cP = (CourseUnitProgram) sm.execute(RequestUtils.getRequester(request, response), "CloneCourseUnitProgram", args);

            CourseUnitView cV = loadCourseUnitViewAndCourse(id,true,false, mapping, request, response);

            cUF.setCourseUnitView(cV);
            request.setAttribute("CourseUnitView", cV);
            CourseUnitProgramView cpv;
            if(cV.getCourseUnit().getCourseUnitProgram() == null)
                cpv = new CourseUnitProgramView(new CourseUnitProgramImpl());
            else
                cpv = new CourseUnitProgramView(cV.getCourseUnit().getCourseUnitProgram());
//            request.setAttribute("CourseUnitProgramView", cpv);

            if(cpv.getCourseUnitProgram().getCourseUnitProgramPart2() == null)
                cpv.getCourseUnitProgram().setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());


            cUF.setCourseUnitProgramView(cpv);
            cUF.setCourseUnitView(cV);
            return mapping.findForward("edit.program");


        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }

    }


    //TODO meter aqui a navegacao respectiva de adicionar teacher e ir para o programa de novo
    public ActionForward addTeacher(ActionMapping mapping,
                                    ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
            long teacherId = cUF.getTeacherId();
            long courseUnitId = cUF.getCourseUnitView().getId();

            IServiceManager sm = ServiceManager.getInstance();
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{};
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{teacherId,courseUnitId};

            CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "AddTeacherCourseUnit", args, names);
            if(cV.isNotFound())
                addError(request,"error.courseunit.teacher.not.found");

            return editProgram(mapping,form,request,response);
        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }
    }


    public ActionForward removeTeacher(ActionMapping mapping,
                                       ActionForm form,
                                       HttpServletRequest request,
                                       HttpServletResponse response)
            throws ServletException
    {
        try
        {
            CourseUnitProgramForm cUF = (CourseUnitProgramForm) form;
            long teacherId = cUF.getId(); //can't come in SELECT BOX because is for choose
            long courseUnitId = cUF.getCourseUnitView().getId();

            IServiceManager sm = ServiceManager.getInstance();
            1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{};
            5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{teacherId,courseUnitId};

            sm.execute(RequestUtils.getRequester(request, response), "RemoveTeacherCourseUnit", args, names);
            return editProgram(mapping,form,request,response);
        }
        catch (FilterChainFailedException e)
        {
            return mapping.findForward("error401");
        }
        catch (NotFoundException e)
        {
            return mapping.findForward("error404");
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e, e);
            return mapping.findForward("error500");
        }
    }



}