/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.client.controler;
import com.evasion.common.Constante;
import com.evasion.common.Utils;
import com.evasion.ejb.local.BookTravelManagerLocal;
import com.evasion.ejb.local.ParametreManagerLocal;
import com.evasion.ejb.local.StaticPageManagerLocal;
import com.evasion.entity.StaticPage;
import com.evasion.entity.booktravel.BookTravel;
import com.evasion.entity.booktravel.exception.BookTravelServiceException;
import com.evasion.exception.PersistenceViolationException;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author sebastien.glon
*/
@ManagedBean
@ApplicationScoped
public class ApplicationContext {
/**
* LOGGER.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationContext.class);
@EJB
ParametreManagerLocal param;
@EJB
StaticPageManagerLocal pageEjb;
@EJB
BookTravelManagerLocal bookEjb;
private String titreSite;
private String contactResp;
private String contactSuport;
@PostConstruct
public void initParam() {
LOGGER.info("Initialisation du context applicatif");
refreshParam();
initDefaultPage();
initDefaultBookTravel();
}
private void refreshParam() {
titreSite = param.getProperty(Constante.TITRE_SITE);
contactResp = param.getProperty(Constante.CONTACT_RESP);
contactSuport = param.getProperty(Constante.CONTACT_SUPPORT);
}
/**
* Initialise la page statique par defaut.<br>
* La page est creee si le parametre <code>DEFAULT_PAGE_ID</code> est vide ou null.<br>
* Cette page sera utilisé comme page d'accueil pour cette application.
*/
private void initDefaultPage() {
if (Utils.isEmpty(param.getProperty(Constante.DEFAULT_PAGE_ID))) {
try {
StaticPage page = new StaticPage("Page par defaut", "Page en cours de construction", "", null);
page = pageEjb.createPage(page, "admin");
param.saveParametre(Constante.DEFAULT_PAGE_ID, page.getId().toString(), Boolean.TRUE);
}
catch (PersistenceViolationException ex) {
LOGGER.error("Erreur d'initialisation de la page par défaut", ex);
}
}
}
/**
* Initialise le carnet de voyage par defaut.<br>
* Le carnet de voyage est creee si le parametre
* <code>DEFAULT_BOOK_TRAVEL_ID</code> est vide ou null.<br>
*/
private void initDefaultBookTravel() {
if (Utils.isEmpty(param.getProperty(Constante.DEFAULT_BOOK_TRAVEL_ID))) {
try {
BookTravel book = new BookTravel("Carnet de voyage autour du monde", "A définir");
book = bookEjb.createBookTravel(book);
param.saveParametre(Constante.DEFAULT_BOOK_TRAVEL_ID,
book.getId().toString(), Boolean.TRUE);
}
catch (BookTravelServiceException ex) {
LOGGER.error("Erreur d'initialisation du carnet de voyage par défaut", ex);
}
}
}
/**
* Getter du titre du site.
* @return titre du site;
*/
public String getTitreSite() {
return titreSite == null ? "" : titreSite;
}
/**
* Getter du mail du responsable.
* @return mail du responsable;
*/
public String getContactResp() {
return contactResp == null ? "" : contactResp;
}
/**
* Getter du mail du support technique.
* @return mail du support technique;
*/
public String getContactSupport() {
return contactSuport == null ? "" : contactSuport;
}
public boolean ifAnyGranted(String var) {
return Utils.ifAnyGranted(var);
}
public boolean ifAllGranted(String var) {
return Utils.ifAllGranted(var);
}
public boolean ifNotGranted(String var) {
return Utils.ifNotGranted(var);
}
}