the billable controllerpackage jsf;import jpa.entities.Billable;import
jsf.util.JsfUtil;import jsf.util.PaginationHelper;import
jpa.session.BillableFacade;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="billableController")@SessionScopedpublic class BillableController {   
private Billable current;    private DataModel items = null;    @EJB private
jpa.session.BillableFacade ejbFacade;    private PaginationHelper
pagination;    private int selectedItemIndex;    public BillableController()
{    }    public Billable getSelected() {        if (current == null) {         
  
current = new Billable();            selectedItemIndex = -1;        }       
return current;    }    private BillableFacade 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 = (Billable)getItems().getRowData();        selectedItemIndex =
pagination.getPageFirstItem() + getItems().getRowIndex();        return
"View";    }    public String prepareCreate() {        current = new
Billable();        selectedItemIndex = -1;        return "Create";    }   
public String create() {        try {           
getFacade().create(current);           
JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/resources/Bundle").getString("BillableCreated"));
           
return prepareCreate();        } catch (Exception e) {           
JsfUtil.addErrorMessage(e,
ResourceBundle.getBundle("/resources/Bundle").getString("PersistenceErrorOccured"));
           
return null;        }    }    public String prepareEdit() {        current =
(Billable)getItems().getRowData();        selectedItemIndex =
pagination.getPageFirstItem() + getItems().getRowIndex();        return
"Edit";    }    public String update() {        try {           
getFacade().edit(current);           
JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/resources/Bundle").getString("BillableUpdated"));
           
return "View";        } catch (Exception e) {           
JsfUtil.addErrorMessage(e,
ResourceBundle.getBundle("/resources/Bundle").getString("PersistenceErrorOccured"));
           
return null;        }    }    public String destroy() {        current =
(Billable)getItems().getRowData();        selectedItemIndex =
pagination.getPageFirstItem() + getItems().getRowIndex();       
performDestroy();        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("/resources/Bundle").getString("BillableDeleted"));
       
} catch (Exception e) {            JsfUtil.addErrorMessage(e,
ResourceBundle.getBundle("/resources/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;    }    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=Billable.class)    public static class
BillableControllerConverter implements Converter {        public Object
getAsObject(FacesContext facesContext, UIComponent component, String value)
{            if (value == null || value.length() == 0) {               
return null;            }            BillableController controller =
(BillableController)facesContext.getApplication().getELResolver().              
     
getValue(facesContext.getELContext(), null, "billableController");           
return controller.ejbFacade.find(getKey(value));        }       
java.lang.Long getKey(String value) {            java.lang.Long key;           
key = Long.valueOf(value);            return key;        }        String
getStringKey(java.lang.Long 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 Billable) {                Billable o = (Billable) object;           
    
return getStringKey(o.getBillableId());            } else {               
throw new IllegalArgumentException("object " + object + " is of type " +
object.getClass().getName() + "; expected type:
"+BillableController.class.getName());            }        }    }}



--
View this message in context: 
http://openejb.979440.n4.nabble.com/problem-with-jsf-crud-application-how-resolve-tp4667346p4667350.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to