/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.inbio.ara.admin; import com.sun.rave.web.ui.appbase.AbstractPageBean; import java.util.ArrayList; import java.util.Locale; import javax.faces.FacesException; import javax.faces.component.html.HtmlCommandButton; import javax.faces.component.html.HtmlDataTable; import javax.faces.component.html.HtmlInputText; import javax.faces.component.html.HtmlPanelGrid; import javax.faces.context.FacesContext; import org.inbio.ara.AraSessionBean; import org.inbio.ara.dto.inventory.ProjectDTO; import org.inbio.ara.util.MessageBean; /** * * @author gsulca */ public class ListProject extends AbstractPageBean{ // <editor-fold defaultstate="collapsed" desc="Managed Component Definition"> /** * <p>Automatically managed component initialization. <strong>WARNING:</strong> * This method is automatically generated, so any user-specified code inserted * here is subject to being replaced.</p> */ private void _init() throws Exception { } // </editor-fold> //Contexto utilizado para obtener el current locale private FacesContext context; private Locale myLocale; //Binding de la tabla private HtmlDataTable projectTable = new HtmlDataTable(); //Variable que contiene los datos de la paginacion para ser mostrados en la tabla private String quantityTotal = new String(); //Variable que contiene los datos de la pagina private HtmlPanelGrid alertMessage = new HtmlPanelGrid(); private HtmlPanelGrid mainPanel = new HtmlPanelGrid(); private HtmlCommandButton btnSimpleSearch = new HtmlCommandButton(); //Boton busqueda simple private HtmlInputText txSimpleSearch = new HtmlInputText(); //Input text de busqueda simple /** * <p>Construct a new Page bean instance.</p> */ public ListProject() { } /** * <p>Callback method that is called whenever a page is navigated to, * either directly via a URL, or indirectly via page navigation. * Customize this method to acquire resources that will be needed * for event handlers and lifecycle methods, whether or not this * page is performing post back processing.</p> * * <p>Note that, if the current request is a postback, the property * values of the components do <strong>not</strong> represent any * values submitted with this request. Instead, they represent the * property values that were saved for this view when it was rendered.</p> */ @Override public void init() { // Perform initializations inherited from our superclass super.init(); // Perform application initialization that must complete // *before* managed components are initialized // TODO - add your own initialiation code here // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization"> // Initialize automatically managed components // *Note* - this logic should NOT be modified try { _init(); } catch (Exception e) { log("ListProject Initialization Failure", e); throw e instanceof FacesException ? (FacesException) e: new FacesException(e); } // </editor-fold> // Perform application initialization that must complete // *after* managed components are initialized // TODO - add your own initialization code here } /** * <p>Callback method that is called after the component tree has been * restored, but before any event processing takes place. This method * will <strong>only</strong> be called on a postback request that * is processing a form submit. Customize this method to allocate * resources that will be required in your event handlers.</p> */ @Override public void preprocess() { } /** * <p>Callback method that is called just before rendering takes place. * This method will <strong>only</strong> be called for the page that * will actually be rendered (and not, for example, on a page that * handled a postback and then navigated to a different page). Customize * this method to allocate resources that will be required for rendering * this page.</p> */ @Override public void prerender() { ProjectSessionBean psb = this.getProjectSessionBean(); //Inicializar el dataprovider la primera vez (si la paginaciĆ³n es nula) if (psb.getPagination()==null) { psb.initDataProvider(); } //Actualizar los datos del paginador else psb.getPagination().refreshList(); } /** * <p>Callback method that is called after rendering is completed for * this request, if <code>init()</code> was called (regardless of whether * or not this was the page that was actually rendered). Customize this * method to release resources acquired in the <code>init()</code>, * <code>preprocess()</code>, or <code>prerender()</code> methods (or * acquired during execution of an event handler).</p> */ @Override public void destroy() { } public String btnProjectNew(){ //Limpiar el current DTO this.getProjectSessionBean().setCurrentProject(new ProjectDTO()); //Set graphic elements return "new"; } /** * Metodo ejecutado por el boton para editar persona * @return */ public String btnProjectEdit(){ ProjectSessionBean psb = this.getProjectSessionBean(); int n = this.getProjectTable().getRowCount(); ArrayList<ProjectDTO> selectedProjects = new ArrayList(); for (int i = 0; i < n; i++) { //Obtener elementos seleccionados this.getProjectTable().setRowIndex(i); ProjectDTO aux = (ProjectDTO) this.getProjectTable().getRowData(); if (aux.isSelected()) { selectedProjects.add(aux); } } if(selectedProjects == null || selectedProjects.isEmpty()){ //En caso de que no se seleccione ningun elemento MessageBean.setErrorMessageFromBundle("not_selected", this.getMyLocale()); return null; } else if(selectedProjects.size() == 1){ //En caso de que solo se seleccione un elemento psb.setCurrentProject(selectedProjects.get(0)); //Le indico al prerender del edit que solo cargue una ves los selected de addremove psb.setFirstTime(true); return "edit"; } else{ //En caso de que sea seleccion multiple MessageBean.setErrorMessageFromBundle("not_yet", this.getMyLocale()); return null; } } /** * Metodo ejecutado por el boton para eliminar una persona * @return */ public String btnProjectDelete(){ /* int n = this.getPersonTable().getRowCount(); ArrayList<PersonDTO> selectedPersons = new ArrayList(); for (int i = 0; i < n; i++) { //Obtener elementos seleccionados this.getPersonTable().setRowIndex(i); PersonDTO aux = (PersonDTO) this.getPersonTable().getRowData(); if (aux.isSelected()) { selectedPersons.add(aux); } } if(selectedPersons == null || selectedPersons.size() == 0){ //En caso de que no se seleccione ningun elemento MessageBean.setErrorMessageFromBundle("not_selected", this.getMyLocale()); return null; } else if(selectedPersons.size() == 1){ //En caso de que solo se seleccione un elemento PersonDTO selected = selectedPersons.get(0); //Mandar a borrar la audiencia try{ this.getPersonSessionBean().deletePerson(selected.getPersonKey()); } catch(Exception e){ MessageBean.setErrorMessageFromBundle("imposible_to_delete", this.getMyLocale()); return null; } //Refrescar la lista de personas PersonSessionBean psb = this.getPersonSessionBean(); psb.getPagination().refreshList(); //Notificar al usuario MessageBean.setSuccessMessageFromBundle("delete_success", this.getMyLocale()); return null; } else{ //En caso de que sea seleccion multiple MessageBean.setErrorMessageFromBundle("not_yet", this.getMyLocale()); return null; } */ return null; } /** * Performed the simple search * @return */ public String btnSimpleSearch_action() { String userInput = ""; if(this.getTxSimpleSearch().getValue()!= null) userInput = this.getTxSimpleSearch().getValue().toString(); userInput = userInput.trim(); if(userInput.length()==0){ //Se desabilitan las banderas de busqueda simple y avanzada this.getProjectSessionBean().setQueryModeSimple(false); } else{ //Setear el string para consulta simple del SessionBean this.getProjectSessionBean().setConsultaSimple(userInput); //Indicarle al SessionBean que el paginador debe "trabajar" en modo busqueda simple this.getProjectSessionBean().setQueryModeSimple(true); } //Set the first result of the query this.getProjectSessionBean().getPagination().firstResults(); return null; } /** * <p>Return a reference to the scoped data bean.</p> * * @return reference to the scoped data bean */ protected ProjectSessionBean getProjectSessionBean() { return (ProjectSessionBean) getBean("admin$ProjectSessionBean"); } /** * <p>Return a reference to the scoped data bean.</p> * * @return reference to the scoped data bean */ protected AraSessionBean getAraSessionBean() { return (AraSessionBean) getBean("AraSessionBean"); } /** * @return the myLocale */ public Locale getMyLocale() { return this.getAraSessionBean().getCurrentLocale(); } /** * @param myLocale the myLocale to set */ public void setMyLocale(Locale myLocale) { this.myLocale = myLocale; } /** * @return the projectTable */ public HtmlDataTable getProjectTable() { return projectTable; } /** * @param projectTable the projectTable to set */ public void setProjectTable(HtmlDataTable projectTable) { this.projectTable = projectTable; } /** * @return the quantityTotal */ public String getQuantityTotal() { return quantityTotal; } /** * @param quantityTotal the quantityTotal to set */ public void setQuantityTotal(String quantityTotal) { this.quantityTotal = quantityTotal; } /** * @return the alertMessage */ public HtmlPanelGrid getAlertMessage() { return alertMessage; } /** * @param alertMessage the alertMessage to set */ public void setAlertMessage(HtmlPanelGrid alertMessage) { this.alertMessage = alertMessage; } /** * @return the mainPanel */ public HtmlPanelGrid getMainPanel() { return mainPanel; } /** * @param mainPanel the mainPanel to set */ public void setMainPanel(HtmlPanelGrid mainPanel) { this.mainPanel = mainPanel; } /** * @return the btnSimpleSearch */ public HtmlCommandButton getBtnSimpleSearch() { return btnSimpleSearch; } /** * @param btnSimpleSearch the btnSimpleSearch to set */ public void setBtnSimpleSearch(HtmlCommandButton btnSimpleSearch) { this.btnSimpleSearch = btnSimpleSearch; } /** * @return the txSimpleSearch */ public HtmlInputText getTxSimpleSearch() { return txSimpleSearch; } /** * @param txSimpleSearch the txSimpleSearch to set */ public void setTxSimpleSearch(HtmlInputText txSimpleSearch) { this.txSimpleSearch = txSimpleSearch; } }