/*
 * SessionBean1.java
 *
 * Created on Aug 25, 2008, 11:20:16 AM
 */
 
package planosactuacao;

import com.sun.rave.web.ui.appbase.AbstractSessionBean;
import db.entidades.Area;
import db.entidades.PlanoActuacao;
import db.entidades.Risco;
import db.entidades.Utilizador;
import db.entidades.Valor;
import java.util.HashMap;
import javax.faces.FacesException;
import pagination.Pagination;

/**
 * <p>Session scope data bean for your application.  Create properties
 *  here to represent cached data that should be made available across
 *  multiple HTTP requests for an individual user.</p>
 *
 * <p>An instance of this class will be created for you automatically,
 * the first time your application evaluates a value binding expression
 * or method binding expression that references a managed bean using
 * this class.</p>
 *
 * @author lluis
 */
public class SessionBean1 extends AbstractSessionBean {
    
    private boolean loggedIn = false;    
    private Utilizador currentUser = null;
    private String msg;
    
    private Integer planoId;
    private PlanoActuacao planoActuacao = null;
    private Risco currentRisco = null;
    private Valor currentValor = null;

    
    private tabledataproviders.PlanosActualDataProvider planosActualDataProvider;    
    private tabledataproviders.PlanosSeguimentoDataProvider planosSeguimentoDataProvider; 
    private tabledataproviders.PlanosConcluidosDataProvider planosConcluidosDataProvider;     
    // <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>
    
    //menu
    private boolean disableMenu = false;
    private boolean disableMenuAnalises = false;
    private boolean disableMenuPlanos = false;
    private boolean disableMenuUtilizadores = false;
    private boolean disableMenuDadosUtilizador = false;
    
    private boolean renderSubHeader = false;
    private boolean renderTopMenuImages = true;
    
    //fase
    private int fase = 1;
    
    private HashMap<Integer, Valor> valoresHash;
    private HashMap<Integer, Area> areasHash;
    private HashMap<Integer, Risco> riscosHash;   
    private Pagination pagination = null;
    
    private String logoEmpresaUrl = "";

    /**
     * <p>Construct a new session data bean instance.</p>
     */
    public SessionBean1() {
        msg = "";
        
        planosActualDataProvider = new tabledataproviders.PlanosActualDataProvider();        
        planosSeguimentoDataProvider = new tabledataproviders.PlanosSeguimentoDataProvider();         
        planosConcluidosDataProvider = new tabledataproviders.PlanosConcluidosDataProvider();                 
        planoId = null;
        
    }

    /**
     * <p>This method is called when this bean is initially added to
     * session scope.  Typically, this occurs as a result of evaluating
     * a value binding or method binding expression, which utilizes the
     * managed bean facility to instantiate this bean and store it into
     * session scope.</p>
     * 
     * <p>You may customize this method to initialize and cache data values
     * or resources that are required for the lifetime of a particular
     * user session.</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("SessionBean1 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>This method is called when the session containing it is about to be
     * passivated.  Typically, this occurs in a distributed servlet container
     * when the session is about to be transferred to a different
     * container instance, after which the <code>activate()</code> method
     * will be called to indicate that the transfer is complete.</p>
     * 
     * <p>You may customize this method to release references to session data
     * or resources that can not be serialized with the session itself.</p>
     */
    @Override
    public void passivate() {
    }

    /**
     * <p>This method is called when the session containing it was
     * reactivated.</p>
     * 
     * <p>You may customize this method to reacquire references to session
     * data or resources that could not be serialized with the
     * session itself.</p>
     */
    @Override
    public void activate() {
    }

    /**
     * <p>This method is called when this bean is removed from
     * session scope.  Typically, this occurs as a result of
     * the session timing out or being terminated by the application.</p>
     * 
     * <p>You may customize this method to clean up resources allocated
     * during the execution of the <code>init()</code> method, or
     * at any later time during the lifetime of the application.</p>
     */
    @Override
    public void destroy() {
    }
    
    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public boolean isLoggedIn() {
        return loggedIn;
    }

    public void setLoggedIn(boolean loggedIn) {
        this.loggedIn = loggedIn;
    }

    public tabledataproviders.PlanosActualDataProvider getPlanosActualDataProvider() {
        return planosActualDataProvider;
    }

    public void setPlanosActualDataProvider(tabledataproviders.PlanosActualDataProvider planosActualDataProvider) {
        this.planosActualDataProvider = planosActualDataProvider;
    }

    public tabledataproviders.PlanosSeguimentoDataProvider getPlanosSeguimentoDataProvider() {
        return planosSeguimentoDataProvider;
    }

    public void setPlanosSeguimentoDataProvider(tabledataproviders.PlanosSeguimentoDataProvider planosSeguimentoDataProvider) {
        this.planosSeguimentoDataProvider = planosSeguimentoDataProvider;
    }

    public tabledataproviders.PlanosConcluidosDataProvider getPlanosConcluidosDataProvider() {
        return planosConcluidosDataProvider;
    }

    public void setPlanosConcluidosDataProvider(tabledataproviders.PlanosConcluidosDataProvider planosConcluidosDataProvider) {
        this.planosConcluidosDataProvider = planosConcluidosDataProvider;
    }

    public Integer getPlanoId() {
        return planoId;
    }

    public void setPlanoId(Integer planoId) {
        this.planoId = planoId;
    }

    public Utilizador getCurrentUser() {
        return currentUser;
    }

    public void setCurrentUser(Utilizador currentUser) {
        this.currentUser = currentUser;
    }

    public boolean isDisableMenu() {
        return disableMenu;
    }

    public void setDisableMenu(boolean disableMenu) {
        System.out.println("DISABLE MENU : " + disableMenu);
        setDisableMenuAnalises(disableMenu);
        //setDisableMenuPlanos(disableMenu); 
        setDisableMenuUtilizadores(disableMenu); 
        setDisableMenuDadosUtilizador(disableMenu);        
        this.disableMenu = disableMenu;
    }

    public boolean isDisableMenuAnalises() {
        return disableMenuAnalises;
    }

    public void setDisableMenuAnalises(boolean disableMenuAnalises) {
        this.disableMenuAnalises = disableMenuAnalises;
    }

    public boolean isDisableMenuPlanos() {
        return disableMenuPlanos;
    }

    public void setDisableMenuPlanos(boolean disableMenuPlanos) {
        this.disableMenuPlanos = disableMenuPlanos;
    }

    public boolean isDisableMenuUtilizadores() {
        return disableMenuUtilizadores;
    }

    public void setDisableMenuUtilizadores(boolean disableMenuUtilizadores) {
        this.disableMenuUtilizadores = disableMenuUtilizadores;
    }

    public boolean isDisableMenuDadosUtilizador() {
        return disableMenuDadosUtilizador;
    }

    public void setDisableMenuDadosUtilizador(boolean disableMenuDadosUtilizador) {
        this.disableMenuDadosUtilizador = disableMenuDadosUtilizador;
    }

    public int getFase() {
        return fase;
    }

    public void setFase(int fase) {
        this.fase = fase;
    }

    public PlanoActuacao getPlanoActuacao() {
        return planoActuacao;
    }

    public void setPlanoActuacao(PlanoActuacao planoActuacao) {
        this.planoActuacao = planoActuacao;
    }
    
    private Integer irParaChoice;
    
    public Integer getIrParaChoice() {
        return irParaChoice;
    }

    public void setIrParaChoice(Integer irParaChoice) {
        this.irParaChoice = irParaChoice;
    }

    private com.sun.webui.jsf.model.Option[] irParaOptions;     
    
    public com.sun.webui.jsf.model.Option[] getIrParaOptions() {
        return irParaOptions;
    }

    public void setIrParaOptions(com.sun.webui.jsf.model.Option[] irParaOptions) {
        this.irParaOptions = irParaOptions;
    }

    public HashMap<Integer, Area> getAreasHash() {
        return areasHash;
    }

    public void setAreasHash(HashMap<Integer, Area> areasHash) {
        this.areasHash = areasHash;
    }

    public HashMap<Integer, Risco> getRiscosHash() {
        return riscosHash;
    }

    public void setRiscosHash(HashMap<Integer, Risco> riscosHash) {
        this.riscosHash = riscosHash;
    }

    public Pagination getPagination() {
        return pagination;
    }

    public void setPagination(Pagination pagination) {
        this.pagination = pagination;
    }

    public Risco getCurrentRisco() {
        return currentRisco;
    }

    public void setCurrentRisco(Risco currentRisco) {
        this.currentRisco = currentRisco;
    }

    public boolean isRenderSubHeader() {
        return renderSubHeader;
    }

    public void setRenderSubHeader(boolean renderSubHeader) {
        this.renderSubHeader = renderSubHeader;
    }

    public boolean isRenderTopMenuImages() {
        return renderTopMenuImages;
    }

    public void setRenderTopMenuImages(boolean renderTopMenuImages) {
        this.renderTopMenuImages = renderTopMenuImages;
    }

    public Valor getCurrentValor() {
        return currentValor;
    }

    public void setCurrentValor(Valor currentValor) {
        this.currentValor = currentValor;
    }

    public HashMap<Integer, Valor> getValoresHash() {
        return valoresHash;
    }

    public void setValoresHash(HashMap<Integer, Valor> valoresHash) {
        this.valoresHash = valoresHash;
    }

    public String getLogoEmpresaUrl() {
        return logoEmpresaUrl;
    }

    public void setLogoEmpresaUrl(String logoEmpresaUrl) {
        this.logoEmpresaUrl = logoEmpresaUrl;
    }


}
