Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.gddoc.controllers;
- import br.com.gddoc.models.Agenda;
- import br.com.gddoc.controllers.util.JsfUtil;
- import br.com.gddoc.controllers.util.PaginationHelper;
- import br.com.gddoc.facade.AgendaFacade;
- import java.io.Serializable;
- import java.util.ResourceBundle;
- import javax.ejb.EJB;
- import javax.faces.bean.ManagedBean;
- import javax.faces.bean.SessionScoped;
- import javax.faces.component.UIComponent;
- import javax.faces.context.FacesContext;
- import javax.faces.convert.Converter;
- import javax.faces.convert.FacesConverter;
- import javax.faces.model.DataModel;
- import javax.faces.model.ListDataModel;
- import javax.faces.model.SelectItem;
- @ManagedBean(name = "agendaController")
- @SessionScoped
- public class AgendaController implements Serializable {
- private Agenda current;
- private DataModel items = null;
- @EJB
- private br.com.gddoc.facade.AgendaFacade ejbFacade;
- private PaginationHelper pagination;
- private int selectedItemIndex;
- public AgendaController() {
- }
- public Agenda getSelected() {
- if (current == null) {
- current = new Agenda();
- selectedItemIndex = -1;
- }
- return current;
- }
- private AgendaFacade getFacade() {
- return ejbFacade;
- }
- public PaginationHelper getPagination() {
- if (pagination == null) {
- pagination = new PaginationHelper(10) {
- @Override
- public int getItemsCount() {
- return getFacade().count();
- }
- @Override
- public DataModel createPageDataModel() {
- return new ListDataModel(getFacade().findRange(new int[]{getPageFirstItem(), getPageFirstItem() + getPageSize()}));
- }
- };
- }
- return pagination;
- }
- public String prepareList() {
- recreateModel();
- return "List";
- }
- public String prepareView() {
- current = (Agenda) getItems().getRowData();
- selectedItemIndex = pagination.getPageFirstItem() + getItems().getRowIndex();
- return "View";
- }
- public String prepareCreate() {
- current = new Agenda();
- selectedItemIndex = -1;
- return "Create";
- }
- public String create() {
- try {
- getFacade().create(current);
- JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("AgendaCreated"));
- return prepareCreate();
- } catch (Exception e) {
- JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));
- return null;
- }
- }
- public String prepareEdit() {
- current = (Agenda) getItems().getRowData();
- selectedItemIndex = pagination.getPageFirstItem() + getItems().getRowIndex();
- return "Edit";
- }
- public String update() {
- try {
- getFacade().edit(current);
- JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("AgendaUpdated"));
- return "View";
- } catch (Exception e) {
- JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));
- return null;
- }
- }
- public String destroy() {
- current = (Agenda) getItems().getRowData();
- selectedItemIndex = pagination.getPageFirstItem() + getItems().getRowIndex();
- performDestroy();
- recreatePagination();
- recreateModel();
- return "List";
- }
- public String destroyAndView() {
- performDestroy();
- recreateModel();
- updateCurrentItem();
- if (selectedItemIndex >= 0) {
- return "View";
- } else {
- // all items were removed - go back to list
- recreateModel();
- return "List";
- }
- }
- private void performDestroy() {
- try {
- getFacade().remove(current);
- JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("AgendaDeleted"));
- } catch (Exception e) {
- JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));
- }
- }
- private void updateCurrentItem() {
- int count = getFacade().count();
- if (selectedItemIndex >= count) {
- // selected index cannot be bigger than number of items:
- selectedItemIndex = count - 1;
- // go to previous page if last page disappeared:
- if (pagination.getPageFirstItem() >= count) {
- pagination.previousPage();
- }
- }
- if (selectedItemIndex >= 0) {
- current = getFacade().findRange(new int[]{selectedItemIndex, selectedItemIndex + 1}).get(0);
- }
- }
- public DataModel getItems() {
- if (items == null) {
- items = getPagination().createPageDataModel();
- }
- return items;
- }
- private void recreateModel() {
- items = null;
- }
- private void recreatePagination() {
- pagination = null;
- }
- public String next() {
- getPagination().nextPage();
- recreateModel();
- return "List";
- }
- public String previous() {
- getPagination().previousPage();
- recreateModel();
- return "List";
- }
- public SelectItem[] getItemsAvailableSelectMany() {
- return JsfUtil.getSelectItems(ejbFacade.findAll(), false);
- }
- public SelectItem[] getItemsAvailableSelectOne() {
- return JsfUtil.getSelectItems(ejbFacade.findAll(), true);
- }
- @FacesConverter(forClass = Agenda.class)
- public static class AgendaControllerConverter implements Converter {
- public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
- if (value == null || value.length() == 0) {
- return null;
- }
- AgendaController controller = (AgendaController) facesContext.getApplication().getELResolver().
- getValue(facesContext.getELContext(), null, "agendaController");
- return controller.ejbFacade.find(getKey(value));
- }
- java.lang.Integer getKey(String value) {
- java.lang.Integer key;
- key = Integer.valueOf(value);
- return key;
- }
- String getStringKey(java.lang.Integer value) {
- StringBuffer sb = new StringBuffer();
- sb.append(value);
- return sb.toString();
- }
- public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
- if (object == null) {
- return null;
- }
- if (object instanceof Agenda) {
- Agenda o = (Agenda) object;
- return getStringKey(o.getAgCod());
- } else {
- throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + Agenda.class.getName());
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment