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.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.inject.Inject;
import java.util.Date;
import java.util.List;
/**
* The type ProjectViewController
*
* @author Peter Pilgrim
*/
@ManagedBean(name= "taskListViewController")
@ViewScoped
public class TaskListViewController {
@Inject ProjectTaskService service;
private int id;
private Project project;
private String name;
private Date targetDate;
private boolean completed;
public void findProjectById() {
if (id <= 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;
}
project = service.findProjectById(id).get(0);
if (project == null) {
String message = "Bad request. Unknown user.";
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null));
}
}
public String navigateNewTask() {
System.out.printf("%s.navigateNewTask() called\n", this.getClass().getSimpleName());
return String.format("createTask?id=%d&faces-redirect=true", id);
}
public String cancel() {
return String.format("projectTaskList?id=%d&faces-redirect=true", id);
}
public String returnToProjects() {
return "index?faces-redirect=true";
}
public String createNewTask() {
final Task task = new Task(name, targetDate, completed );
project = service.findProjectById(id).get(0);
project.addTask(task);
service.updateProject(project);
return String.format("projectTaskList?id=%d&faces-redirect=true", id );
}
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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; }
}