/*
* 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 com.sun.webui.jsf.component.Calendar;
import com.sun.webui.jsf.component.TextArea;
import com.sun.webui.jsf.component.TextField;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import javax.faces.FacesException;
import org.inbio.ara.AraSessionBean;
import org.inbio.ara.dto.inventory.PersonDTO;
import org.inbio.ara.util.AddRemoveList;
import org.inbio.ara.util.MessageBean;
/**
*
* @author gsulca
*/
public class NewProject 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>
private TextField txName = new TextField();
private TextArea txDescription = new TextArea();
private TextField txProjectManager = new TextField();
private Calendar initial_date = new com.sun.webui.jsf.component.Calendar();
private Calendar final_date = new com.sun.webui.jsf.component.Calendar();
public NewProject()
{
}
/**
* <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("NewPerson 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() {
if(this.getProjectSessionBean().getCurrentProject() == null)
{
this.getTxDescription().setText(null);
this.getTxProjectManager().setText(null);
this.getInitial_date().setText(null);
this.getFinal_date().setText(null);
}
}
/**
* <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() {
}
/**
* <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");
}
public String btnSaveProject_action() {
ProjectSessionBean psb = this.getProjectSessionBean();
psb.getCurrentProject().setDescription((String)getTxDescription().getText());
psb.getCurrentProject().setProjectManagerName((String) this.getTxProjectManager().getText());
GregorianCalendar iniCal = new GregorianCalendar();
GregorianCalendar finCal = new GregorianCalendar();
Date iniDate = this.getInitial_date().getSelectedDate();
Date finDate = this.getFinal_date().getSelectedDate();
if (iniDate != null) {
iniCal.setTime(iniDate);
psb.getCurrentProject().setInitialDate(iniCal);
}
if (finDate != null) {
finCal.setTime(finDate);
psb.getCurrentProject().setFinalDate(finCal);
}
psb.getCurrentProject().setUserName(this.getAraSessionBean().getGlobalUserName());
//Persistir el DTO
try{
//Mandar a persistir
psb.saveProjectDTO();
}
catch(Exception e){
MessageBean.setErrorMessageFromBundle("error", this.getMyLocale());
return null;
}
this.getTxDescription().setText(null);
this.getTxProjectManager().setText(null);
this.getInitial_date().setText(null);
this.getFinal_date().setText(null);
psb.getPagination().refreshList();
//Notificar al usuario
MessageBean.setSuccessMessageFromBundle("create_project_success", this.getMyLocale());
return null;
}
/**
* @return the txName
*/
public TextField getTxName() {
return txName;
}
/**
* @param txName the txName to set
*/
public void setTxName(TextField txName) {
this.txName = txName;
}
/**
* @return the txProjectManager
*/
public TextField getTxProjectManager() {
return txProjectManager;
}
/**
* @param txProjectManager the txProjectManager to set
*/
public void setTxProjectManager(TextField txProjectManager) {
this.txProjectManager = txProjectManager;
}
/**
* @return the txDescription
*/
public TextArea getTxDescription() {
return txDescription;
}
/**
* @param txDescription the txDescription to set
*/
public void setTxDescription(TextArea txDescription) {
this.txDescription = txDescription;
}
/**
* @return the initial_date
*/
public Calendar getInitial_date() {
return initial_date;
}
/**
* @param initial_date the initial_date to set
*/
public void setInitial_date(Calendar initial_date) {
this.initial_date = initial_date;
}
/**
* @return the final_date
*/
public Calendar getFinal_date() {
return final_date;
}
/**
* @param final_date the final_date to set
*/
public void setFinal_date(Calendar final_date) {
this.final_date = final_date;
}
/**
* @return the myLocale
*/
public Locale getMyLocale() {
return this.getAraSessionBean().getCurrentLocale();
}
}