ash.resourcemanager.spring.controllers.ProjectsController.java Source code

Java tutorial

Introduction

Here is the source code for ash.resourcemanager.spring.controllers.ProjectsController.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ash.resourcemanager.spring.controllers;

import ash.resourcemanager.hibernate.GenericDAO;
import ash.resourcemanager.hibernate.pojo.Project;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 * @author Ash
 */
@Controller
@SessionAttributes

public class ProjectsController {

    private GenericDAO<Project> _projectsDAO;
    private GenericDAO<Project> _customersDAO;

    @RequestMapping(value = "/projects", method = RequestMethod.GET)
    public ModelAndView showProjects() {
        List<Project> projects = getProjectsDAO().getAll();

        ModelAndView modelAndView = new ModelAndView("projects");
        modelAndView.addObject("projects", projects);
        return modelAndView;
    }

    @RequestMapping(value = "/projectForm")
    public ModelAndView showProjectForm(HttpServletRequest request) {
        //I need customers list, assignments list and worktypes list !!!
        ModelAndView modelAndView = new ModelAndView("projectForm");

        String method = request.getParameter("action");
        if (method.equals("add")) {
            modelAndView.addObject("command", new Project());
        } else if (method.equals("edit")) {
            String projectId = request.getParameter("id");
            Project project = getProjectsDAO().getById(Integer.parseInt(projectId));
            modelAndView.addObject("command", project);
        }

        modelAndView.addObject("customersList", getCustomersDAO().getAll());

        return modelAndView;
    }

    @RequestMapping(value = "/saveProject", method = RequestMethod.POST)
    public String saveProject(@ModelAttribute("project") Project project, BindingResult result) {
        System.out.println("project id:" + project.getProjectId() + "name" + project.getName());
        if (project.getProjectId() == null) {
            getProjectsDAO().create(project);
        } else {
            Project projectObject = getProjectsDAO().getById(project.getProjectId());
            projectObject.setName(project.getName());

            getProjectsDAO().update(projectObject);
        }
        return "redirect:projects.htm";
    }

    @RequestMapping(value = "/deleteProject")
    public String deleteProject(HttpServletRequest request) {
        GenericDAO<Project> dao = getProjectsDAO();
        String projectId = request.getParameter("id");
        Project project = dao.getById(Integer.parseInt(projectId));
        dao.delete(project);
        return "redirect:projects.htm";
    }

    private GenericDAO<Project> getProjectsDAO() {
        if (_projectsDAO == null) {
            _projectsDAO = new GenericDAO<Project>(Project.class);
        }
        return _projectsDAO;
    }

    private GenericDAO<Project> getCustomersDAO() {
        if (_customersDAO == null) {
            _customersDAO = new GenericDAO<Project>(Project.class);
        }
        return _customersDAO;
    }
}