package je7hb.intro.xentracker.control; import je7hb.intro.xentracker.boundary.ProjectTaskService; import je7hb.intro.xentracker.entity.Project; import je7hb.intro.xentracker.entity.Task; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import javax.inject.Inject; import java.util.Date; /** * The type ProjectViewController * * @author Peter Pilgrim */ @ManagedBean(name="taskEditController") @ViewScoped public class TaskEditController { @Inject ProjectTaskService service; private int taskId; private String name; private Date targetDate; private boolean completed; private Project taskProject; public void findTaskById() { if (taskId <= 0) { String message = "Bad request. Please use a link from within the system."; FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null)); return; } final Task task = service.findTaskById(taskId).get(0); if (task == null) { String message = "Bad request. Unknown task."; FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null)); } name = task.getName(); targetDate = task.getTargetDate(); completed = task.isCompleted(); taskProject = task.getProject(); } public String cancel() { return String.format("projectTaskList?id=%d&faces-redirect=true", taskProject.getId() ); } public String editTask() { final Task task = service.findTaskById(taskId).get(0); task.setName(name); task.setCompleted(completed); task.setTargetDate(targetDate); final Project project = task.getProject(); service.updateProject(project); return String.format("projectTaskList?id=%d&faces-redirect=true", project.getId() ); } public String removeTask() { final Task task = service.findTaskById(taskId).get(0); final Project project = task.getProject(); task.getProject().removeTask(task); service.updateProject(project); return String.format("projectTaskList?id=%d&faces-redirect=true", project.getId() ); } public int getTaskId() { return taskId; } public void setTaskId(int taskId) { this.taskId = taskId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getTargetDate() { return targetDate; } public void setTargetDate(Date targetDate) { this.targetDate = targetDate; } public boolean isCompleted() { return completed; } public void setCompleted(boolean completed) { this.completed = completed; } public Project getTaskProject() { return taskProject; } public void setTaskProject(Project taskProject) { this.taskProject = taskProject; } }