taskmultiactioncontroller.java

来自「Java的框架」· Java 代码 · 共 257 行

JAVA
257
字号
package mcaps.apps.prrm.task.webapp.controller;

//import java.io.IOException;
//import java.util.HashMap;
//import java.util.Map;

import java.util.Locale;

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

import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roaddefect.model.RoadDefectStatus;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcaps.apps.prrm.roadinspection.service.RoadInspectionManager;
import mcaps.apps.prrm.task.model.Status;
import mcaps.apps.prrm.task.model.Task;
import mcaps.apps.prrm.task.service.TaskManager;
import mcap.core.base.webapp.controller.BaseMultiActionController;
import mcap.core.base.webapp.util.Result;
import mcap.core.logging.Log;
import mcaps.apps.prrm.task.util.NameConstants;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContextException;
import org.springframework.web.bind.RequestUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;

public class TaskMultiActionController extends BaseMultiActionController implements
		InitializingBean {


	private static final String TASKS_VIEW = "prrm/task/tasks";
	private static final String TASK_VIEW = "prrm/task/task";
	private static final String ROADDEFECT_VIEW_URL ="roadDefect.action?roadDefectId=";
	private TaskManager taskManager;
	private RoadInspectionManager roadInspectionManager;


	/**
	 * Returns the taskManager.
	 * @return TaskManager
	 */
	public TaskManager getTaskManager () {
		return taskManager;
	}
	
	/**
	 * Sets the taskManager.
	 * @param taskManager The taskManager to set.
	 */
	public void setTaskManager (TaskManager taskManager) {
		this.taskManager = taskManager;
	}
	
	/**
	 * Returns the roadInspectionManager.
	 * @return RoadInspectionManager
	 */
	public RoadInspectionManager getRoadInspectionManager () {
		return roadInspectionManager;
	}
	
	/**
	 * Sets the roadInspectionManager.
	 * @param roadInspectionManager The roadInspectionManager to set.
	 */
	public void setRoadInspectionManager (RoadInspectionManager roadInspectionManager) {
		this.roadInspectionManager = roadInspectionManager;
	}

	public void afterPropertiesSet() throws Exception {
		if (taskManager == null)
			throw new ApplicationContextException(
					"Must set taskManager bean property on " + getClass());
		if (roadInspectionManager == null)
			throw new ApplicationContextException(
					"Must set roadInspectionManager bean property on " + getClass());
	}

	
	// handlers
	/**
	 * Custom handler for road defect display
	 * 
	 * @param request
	 *          current HTTP request
	 * @param response
	 *          current HTTP response
	 * @return a ModelAndView to render the response
	 */
	public ModelAndView taskHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {

	  if (request.getParameter ("taskId") == null) {
			Result result = new Result ("task.title",
					"task.heading", "task.nullid", "actionUrl");
			return new ModelAndView ("result", "result", result);
		}
	  
		Task task = taskManager.getTask(RequestUtils.getIntParameter(request, "taskId"));
		if (task == null) {
    	Result result = new Result("task.title","task.heading",
																	"task.null","actionUrl");
			return new ModelAndView("result","result",result);
		}
		
		if (task.getStatus().equals(Status.PENDING)){
			task.setStatus(Status.OPEN);
			taskManager.saveTask(task);
		}

		RoadInspection ri = new RoadInspection();
		ri.setTaskId(task.getId());
		request.setAttribute(mcaps.apps.prrm.roadinspection.util.NameConstants.ROADINSPECTION_LIST,roadInspectionManager.getRoadInspections(ri));		
		return new ModelAndView(TASK_VIEW,NameConstants.TASK_OBJ, task);
	}
	
	/**
	 * Custom handler for road defects display
	 * 
	 * @param request
	 *          current HTTP request
	 * @param response
	 *          current HTTP response
	 * @return a ModelAndView to render the response
	 */
	public ModelAndView tasksHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {

		String userName = request.getRemoteUser ();
		if (userName != null) { 
			if (request.isUserInRole(mcap.core.user.util.NameConstants.ADMIN_ROLE)){
				return new ModelAndView(TASKS_VIEW, 
						NameConstants.TASK_LIST, taskManager.getAllTasks());
			}else{
				Task task = new Task();
				task.setAssignedUserId(userName);
				return new ModelAndView(TASKS_VIEW, 
						NameConstants.TASK_LIST, taskManager.getTasks(task));
			}
		}
		return new ModelAndView(TASKS_VIEW, 
				NameConstants.TASK_LIST, null);
	}
	
//	/**
//	 * Custom handler for road defects display
//	 * 
//	 * @param request
//	 *          current HTTP request
//	 * @param response
//	 *          current HTTP response
//	 * @return a ModelAndView to render the response
//	 */
//	public ModelAndView tasksSearchHandler(HttpServletRequest request,
//			HttpServletResponse response) throws ServletException {
//		return new ModelAndView("tasks", 
//				NameConstants.ROADDEFECT_LIST, taskManager.getAllTasks());
//	}
	
	
	/**
	 * Custom handler for road defects display
	 * 
	 * @param request
	 *          current HTTP request
	 * @param response
	 *          current HTTP response
	 * @return a ModelAndView to render the response
	 */
	public ModelAndView deleteTaskHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {    

		Locale locale = request.getLocale();
    System.out.print("deleteTaskHandler");
    System.out.print(request.getQueryString());
    if (request.getParameter ("taskId") == null) {
    	Result result = new Result("deleteTask.title","deleteTask.heading",
																	"task.delete.nullid",
																	"actionUrl");
			return new ModelAndView("result","result",result);
		}
		Integer id = Integer.valueOf(request.getParameter ("taskId"));
    System.out.print("deleteTaskHandler delete id : " + id);
		Task task=this.getTaskManager().getTask(id);
		this.getTaskManager().removeTask(task);
		saveMessage (request, getText ("task.deleted", id.toString(),
									locale));
		return new ModelAndView(TASKS_VIEW, 
				NameConstants.TASK_LIST, taskManager.getAllTasks());
	}
	
	
	/**
	 * Custom handler for change task status (Done, Close)
	 * 
	 * @author fenglei
	 * @param request current HTTP request
	 * @param response current HTTP response
	 * @return a ModelAndView to render the response
	 */
	public ModelAndView statusTaskHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {    


	    if (request.getParameter ("taskId") == null) {
			Result result = new Result ("task.title",
					"task.heading", "task.nullid", "actionUrl");
				return new ModelAndView("result","result",result);
			}
		Integer id=RequestUtils.getIntParameter(request, "taskId");
	    Task task = taskManager.getTask(id);
	    Locale locale = request.getLocale();
	    if (task == null) {
	    	Result result = new Result ("task.title",
					"task.heading", "task.nullid", "actionUrl");
				return new ModelAndView("result","result",result);
			}
	    
		try{
		    //set road defect status to Opened
		    if("Done".equals(request.getParameter("method"))) 
		    {
		    	task.setStatus(Status.DONE);
		    	this.getTaskManager().changeStatus(task);
		    	saveMessage (request, getText ("task.done", id.toString(),
						locale));
		    }
		    //set road defect status to Closed.
		    else if("Closed".equals(request.getParameter("method")))
		    {
		    	task.setStatus(Status.CLOSED);
		    	this.getTaskManager().changeStatus(task);
		    	saveMessage (request, getText ("task.close", id.toString(),
						locale));
		    }
			
		} catch (Exception e) {
			Log.warn("Fail to change task status. " + e.getMessage());
			return getErrorView(NameConstants.STATUS_TASK_TITLE, 
					NameConstants.STATUS_TASK_HEADING,
					NameConstants.ERROR_STATUS_TASK_FAIL,
					new Object[]{id},
					TASKS_VIEW);
		}	

		
		return new ModelAndView (new RedirectView (ROADDEFECT_VIEW_URL + task.getRoadDefectId()));
        //return new ModelAndView(TASKS_VIEW,NameConstants.TASK_LIST, taskManager.getAllTasks());

	}
	

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?