package ru.ulstu.paper.controller; import ru.ulstu.core.navigation.Page; import ru.ulstu.core.util.FacesUtil; import ru.ulstu.deadline.model.Deadline; import ru.ulstu.deadline.service.DeadlineService; import ru.ulstu.paper.model.Paper; import ru.ulstu.paper.service.PaperService; import ru.ulstu.user.model.User; import ru.ulstu.user.service.UserService; import javax.annotation.PostConstruct; import javax.faces.view.ViewScoped; import javax.inject.Inject; import javax.inject.Named; import java.io.Serializable; import java.util.Arrays; import java.util.Date; import java.util.List; @Named @ViewScoped public class PaperView implements Serializable { @Inject private PaperService paperService; @Inject private DeadlineService deadlineService; @Inject private UserService userService; private Paper paper; private Date newDeadlineDate; private String newDeadlineDescription; @PostConstruct public void init() { paper = paperService.findPaperById(Integer.valueOf(FacesUtil.getRequestParams().get("id"))); newDeadlineDescription = ""; newDeadlineDate = new Date(); FacesUtil.showInfoMessage("Статья открыта", ""); } public Paper getPaper() { return paper; } public void setPaper(Paper paper) { this.paper = paper; } public List getPaperStatuses() { return Arrays.asList(Paper.PaperStatus.values()); } public List getPaperTypes() { return Arrays.asList(Paper.PaperType.values()); } public List getAuthors() { return userService.findAll(); } public String save() { paperService.save(paper); FacesUtil.showInfoMessage("Статья сохранена", ""); return Page.PAPER_LIST + "?faces-redirect=true"; } public Date getNewDeadlineDate() { return newDeadlineDate; } public void setNewDeadlineDate(Date newDeadlineDate) { this.newDeadlineDate = newDeadlineDate; } public String getNewDeadlineDescription() { return newDeadlineDescription; } public void setNewDeadlineDescription(String newDeadlineDescription) { this.newDeadlineDescription = newDeadlineDescription; } public void deleteDeadline(Deadline deadline) { paper.getDeadlines().remove(deadline); } public void addDeadline() { paper.getDeadlines().add(deadlineService.create(newDeadlineDescription, newDeadlineDate)); newDeadlineDescription = ""; newDeadlineDate = new Date(); } }