package my.app.crud.presentation; import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import javax.faces.model.ManagedBean; import javax.faces.model.SessionScoped; import my.app.crud.business.BookServiceBean; import my.app.crud.model.Book; @ManagedBean(name = "BookBean") @SessionScoped public class BookManagedBean { private final static String LIST_BOOKS = "listBooks.xhtml"; private final static String EDIT_BOOK = "editBook.xhtml"; @EJB private BookServiceBean bookService; private DataModel books; private Book currentBook; @PostConstruct public void init() { reload(); } public DataModel getBooks() { return books; } public void reload() { books = new ListDataModel(); books.setWrappedData(bookService.getAllBooks()); } public String create() { currentBook = bookService.create(); return EDIT_BOOK; } public String delete() { Book book = books.getRowData(); bookService.delete(book); reload(); return LIST_BOOKS; } public String edit() { currentBook = books.getRowData(); reload(); return EDIT_BOOK; } public String save() { bookService.update(currentBook); reload(); return LIST_BOOKS; } public String cancel() { reload(); return LIST_BOOKS; } public Book getCurrentBook() { return currentBook; } public void setCurrentBook(Book currentBook) { this.currentBook = currentBook; } }