Subversion Repositories bacoAlunos

Rev

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

package pt.estgp.estgweb.domain.views;

import jomm.utils.AutoFillArrayList;
import jomm.utils.StringsUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.utils.DatesUtils;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author Jorge Machado
 * @date 2/Mar/2008
 * @time 19:34:49
 * @see pt.estgp.estgweb.domain.views
 */

public class CourseView extends DomainObjectView
{
    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(CourseView.class);


    private long id;

    private 1.5.0/docs/api/java/lang/String.html">String code;
    private 1.5.0/docs/api/java/lang/String.html">String area;
    private 1.5.0/docs/api/java/lang/String.html">String name;
    private 1.5.0/docs/api/java/lang/String.html">String degree;
    private 1.5.0/docs/api/java/lang/String.html">String importYear;
    private 1.5.0/docs/api/java/lang/String.html">String description;
    private 1.5.0/docs/api/java/lang/String.html">String institutionalCode;
    private UserView coordinator;
    private UserView director;
    private List<CourseUnitView> courseUnits;
    private List<CourseUnitView> courseUnitsWithNoProgramS1;
    private List<CourseUnitView> courseUnitsWithProgramCheckedS1;
    private List<CourseUnitView> courseUnitsWithProgramNotCheckedS1;
    private List<CourseUnitView> courseUnitsWithNoProgramS2;
    private List<CourseUnitView> courseUnitsWithProgramCheckedS2;
    private List<CourseUnitView> courseUnitsWithProgramNotCheckedS2;
    private 1.5.0/docs/api/java/lang/String.html">String studiesPlanStreamId;
    private RepositoryFileImpl studiesPlan;
    private 1.5.0/docs/api/java/lang/String.html">String htmlResult;
    private 1.5.0/docs/api/java/lang/String.html">String cacheWebDocument;
    private 1.5.0/docs/api/java/lang/String.html">String externalSiteServer;
    private 1.5.0/docs/api/java/lang/String.html">String externalSitePath;
    private 1.5.0/docs/api/java/lang/String.html">String validationRole;
    private boolean status;
    private 1.5.0/docs/api/java/lang/String.html">String userGroupStudents;



    private Course course;

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public 1.5.0/docs/api/java/lang/Class.html">Class getReferenceClass()
    {
        return CourseImpl.class;
    }

    public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable()
    {
        return id;
    }

    public CourseView()
    {
        coordinator = new UserView();
        director = new UserView();
    }

    public CourseView(Course course)
    {
        super(course);
        init(course,false);
    }

    public CourseView(Course course, boolean initCourseUnits)
    {
        super(course);
        init(course, initCourseUnits);
    }

    private void init(Course course, boolean initCourseUnits)
    {
        this.course = course;
        this.id = course.getId();
        this.code = course.getCode();
        this.area = course.getArea();
        this.name = course.getName();
        this.degree = course.getDegree();
        this.validationRole = course.getValidationRole();
        this.description = course.getDescription();
        this.importYear = course.getImportYear();
        this.institutionalCode = course.getInstitutionalCode();
        this.cacheWebDocument = course.getCacheWebDocument();
        this.externalSitePath = course.getExternalSitePath();
        this.externalSiteServer = course.getExternalSiteServer();
        this.status = course.isStatus();
        this.userGroupStudents = course.getUserGroupStudents();
        if(course.getStudiesPlan() != null)
            this.studiesPlanStreamId = course.getStudiesPlan();
        if(course.getCoordinator() != null)
            coordinator = new UserView(course.getCoordinator());
        if(course.getDirector() != null)
            director = new UserView(course.getDirector());
        if(initCourseUnits)
        {
            if(course.getCourseUnits() != null)
            {
                courseUnits = new ArrayList<CourseUnitView>();
                for(CourseUnit c: course.getCourseUnits())
                {
                    CourseUnitView cUV = new CourseUnitView(c,true,false,false,false);
                    courseUnits.add(cUV);
                }
            }
        }

    }

    public void persistViewInObject(Course c)
    {
        c.setCode(code);
        c.setArea(area);
        c.setDegree(degree);
        c.setDescription(description);
        c.setImportYear(importYear);
        c.setInstitutionalCode(institutionalCode);
        c.setName(name);
        c.setExternalSitePath(externalSitePath);
        c.setExternalSiteServer(externalSiteServer);
        c.setValidationRole(validationRole);
        c.setStatus(status);
        c.setUserGroupStudents(userGroupStudents);
        if(coordinator != null && coordinator.getId() > 0)
        {
            Teacher u = DaoFactory.getTeacherDaoImpl().load(coordinator.getId());
            if(c.getCoordinator() == null || c.getCoordinator().getId() != coordinator.getId())
            {
                if(c.getCoordinator() != null)
                {
                    Teacher oldCoordinator = c.getCoordinator();
                    oldCoordinator.getCoordinatorCourses().remove(c);
                    if(oldCoordinator.getCoordinatorCourses().size() == 0)
                    {
                        oldCoordinator.removeRole(Globals.COURSE_COORDINATOR_ROLE);
                    }
                }
                c.setCoordinator(u);
                u.addRole(Globals.COURSE_COORDINATOR_ROLE);
            }
        }
        if(director != null && director.getId() > 0)
        {
            Teacher u = DaoFactory.getTeacherDaoImpl().load(director.getId());
            if(c.getDirector() == null || c.getDirector().getId() != director.getId())
            {
                if(c.getDirector() != null)
                {
                    Teacher oldDirector = c.getDirector();
                    oldDirector.getDirectorCourses().remove(c);
                    if(oldDirector.getDirectorCourses().size() == 0)
                    {
                        oldDirector.removeRole(Globals.COURSE_DIRECTOR_ROLE);
                    }
                }
                c.setDirector(u);
                u.addRole(Globals.COURSE_DIRECTOR_ROLE);
            }
        }
    }



    public long getId()
    {
        return id;
    }

    public void setId(long id)
    {
        this.id = id;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getCode()
    {
        return code;
    }

    public void setCode(1.5.0/docs/api/java/lang/String.html">String code)
    {
        this.code = code;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getArea()
    {
        return area;
    }

    public void setArea(1.5.0/docs/api/java/lang/String.html">String area)
    {
        this.area = area;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getName()
    {
        return name;
    }

    public void setName(1.5.0/docs/api/java/lang/String.html">String name)
    {
        this.name = name;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getDegree()
    {
        return degree;
    }

    public void setDegree(1.5.0/docs/api/java/lang/String.html">String degree)
    {
        this.degree = degree;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getImportYear()
    {
        return importYear;
    }

    public void setImportYear(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        this.importYear = importYear;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getDescription()
    {
        return description;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getFormatedDescription()
    {
        return StringsUtils.getFormatedText(description);
    }

    public void setDescription(1.5.0/docs/api/java/lang/String.html">String description)
    {
        this.description = description;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getInstitutionalCode()
    {
        return institutionalCode;
    }

    public void setInstitutionalCode(1.5.0/docs/api/java/lang/String.html">String institutionalCode)
    {
        this.institutionalCode = institutionalCode;
    }

    public UserView getCoordinator()
    {
        if(coordinator == null)
            coordinator = new UserView();
        return coordinator;
    }

    public void setCoordinator(UserView coordinator)
    {
        this.coordinator = coordinator;
    }


    public List<CourseUnitView> getCourseUnits()
    {
        return courseUnits;
    }

    public void setCourseUnits(List<CourseUnitView> courseUnits)
    {
        this.courseUnits = courseUnits;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getStudiesPlanStreamId()
    {
        return studiesPlanStreamId;
    }

    public void setStudiesPlanStreamId(1.5.0/docs/api/java/lang/String.html">String studiesPlanStreamId)
    {
        this.studiesPlanStreamId = studiesPlanStreamId;
    }

    public RepositoryFileImpl getStudiesPlan()
    {
        return studiesPlan;
    }

    public void setStudiesPlan(RepositoryFileImpl studiesPlan)
    {
        this.studiesPlan = studiesPlan;
    }

    public int getStudiesPlanSizeKb()
    {
        if(studiesPlan != null)
            return studiesPlan.getLastVersion().getSize() / 1024;
        return 0;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getStudiesPlanDate()
    {
        if(studiesPlan != null)
            return DatesUtils.getStringFromDate(studiesPlan.getLastVersion().getSaveDate());
        return "";
    }

    public UserView getDirector()
    {
        if(director == null)
            director = new UserView();
        return director;
    }

    public void setDirector(UserView director)
    {
        this.director = director;
    }


    public 1.5.0/docs/api/java/lang/String.html">String getHtmlResult()
    {
        return htmlResult;
    }

    public void setHtmlResult(1.5.0/docs/api/java/lang/String.html">String htmlResult)
    {
        this.htmlResult = htmlResult;
    }


    public 1.5.0/docs/api/java/lang/String.html">String getCacheWebDocument()
    {
        return cacheWebDocument;
    }

    public void setCacheWebDocument(1.5.0/docs/api/java/lang/String.html">String cacheWebDocument)
    {
        this.cacheWebDocument = cacheWebDocument;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getExternalSiteServer()
    {
        return externalSiteServer;
    }

    public void setExternalSiteServer(1.5.0/docs/api/java/lang/String.html">String externalSiteServer)
    {
        this.externalSiteServer = externalSiteServer;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getExternalSitePath()
    {
        return externalSitePath;
    }

    public void setExternalSitePath(1.5.0/docs/api/java/lang/String.html">String externalSitePath)
    {
        this.externalSitePath = externalSitePath;
    }


    public List<CourseUnitView> getCourseUnitsWithNoProgramS1()
    {
        return courseUnitsWithNoProgramS1;
    }


    public 1.5.0/docs/api/java/lang/String.html">String getValidationRole() {
        return validationRole;
    }

    public void setValidationRole(1.5.0/docs/api/java/lang/String.html">String validationRole) {
        this.validationRole = validationRole;
    }

    public void setCourseUnitsWithNoProgramS1(List<CourseUnitView> courseUnitsWithNoProgramS1)
    {
        this.courseUnitsWithNoProgramS1 = courseUnitsWithNoProgramS1;
    }

    public List<CourseUnitView> getCourseUnitsWithProgramCheckedS1()
    {
        if(courseUnitsWithProgramCheckedS1==null)
            courseUnitsWithProgramCheckedS1 = new AutoFillArrayList<CourseUnitView>(CourseUnitView.class);
        return courseUnitsWithProgramCheckedS1;
    }

    public void setCourseUnitsWithProgramCheckedS1(List<CourseUnitView> courseUnitsWithProgramCheckedS1)
    {
        this.courseUnitsWithProgramCheckedS1 = courseUnitsWithProgramCheckedS1;
    }

    public List<CourseUnitView> getCourseUnitsWithProgramNotCheckedS1()
    {
        if(courseUnitsWithProgramNotCheckedS1==null)
            courseUnitsWithProgramNotCheckedS1 = new AutoFillArrayList<CourseUnitView>(CourseUnitView.class);
        return courseUnitsWithProgramNotCheckedS1;
    }

    public void setCourseUnitsWithProgramNotCheckedS1(List<CourseUnitView> courseUnitsWithProgramNotCheckedS1)
    {
        this.courseUnitsWithProgramNotCheckedS1 = courseUnitsWithProgramNotCheckedS1;
    }

    public List<CourseUnitView> getCourseUnitsWithNoProgramS2()
    {
        return courseUnitsWithNoProgramS2;
    }

    public void setCourseUnitsWithNoProgramS2(List<CourseUnitView> courseUnitsWithNoProgramS2)
    {
        this.courseUnitsWithNoProgramS2 = courseUnitsWithNoProgramS2;
    }

    public List<CourseUnitView> getCourseUnitsWithProgramCheckedS2()
    {
        if(courseUnitsWithProgramCheckedS2==null)
            courseUnitsWithProgramCheckedS2 = new AutoFillArrayList<CourseUnitView>(CourseUnitView.class);
        return courseUnitsWithProgramCheckedS2;
    }

    public void setCourseUnitsWithProgramCheckedS2(List<CourseUnitView> courseUnitsWithProgramCheckedS2)
    {
        this.courseUnitsWithProgramCheckedS2 = courseUnitsWithProgramCheckedS2;
    }

    public List<CourseUnitView> getCourseUnitsWithProgramNotCheckedS2()
    {
        if(courseUnitsWithProgramNotCheckedS2==null)
            courseUnitsWithProgramNotCheckedS2 = new AutoFillArrayList<CourseUnitView>(CourseUnitView.class);
        return courseUnitsWithProgramNotCheckedS2;
    }

    public void setCourseUnitsWithProgramNotCheckedS2(List<CourseUnitView> courseUnitsWithProgramNotCheckedS2)
    {
        this.courseUnitsWithProgramNotCheckedS2 = courseUnitsWithProgramNotCheckedS2;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getUserGroupStudents() {
        return userGroupStudents;
    }

    public void setUserGroupStudents(1.5.0/docs/api/java/lang/String.html">String userGroupStudents) {
        this.userGroupStudents = userGroupStudents;
    }
}