/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.client.controler.admin.booktravel;
import com.evasion.common.Constante;
import com.evasion.ejb.local.BookTravelManagerLocal;
import com.evasion.ejb.local.ParametreManagerLocal;
import com.evasion.ejb.local.UserAuthServiceLocal;
import com.evasion.entity.booktravel.BookTravel;
import com.evasion.entity.booktravel.Itinerary;
import com.evasion.entity.booktravel.RoadMap;
import com.evasion.entity.booktravel.exception.BookTravelServiceException;
import com.evasion.entity.content.Contribution;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author sebastien
*/
@ManagedBean()
@RequestScoped
public class IndexAdminBookTravel {
/** Logger **/
private static final Logger LOGGER = LoggerFactory.getLogger(IndexAdminBookTravel.class);
@EJB
BookTravelManagerLocal bookTravelEJB;
@EJB
ParametreManagerLocal paramEJB;
private RoadMap roadMap;
@PostConstruct
public void init() {
LOGGER.debug("Initialisation du Bean Manager IndexAdminBookTravel");
FacesContext ctx = FacesContext.getCurrentInstance();
roadMap = (RoadMap) ctx.getExternalContext().getSessionMap().
get("currentRoadMap");
if (roadMap == null) {
LOGGER.debug("Initialisation de la roadMap");
BookTravel bookTravel = null;
try {
bookTravel = bookTravelEJB.findBooktravelWithoutRoadMap(
Long.valueOf(paramEJB.getProperty(Constante.DEFAULT_BOOK_TRAVEL_ID)));
}
catch (BookTravelServiceException ex) {
LOGGER.error("Erreur de récupération du carnet de voyage", ex);
}
final Contribution contrib = new Contribution("", "", null);
final Itinerary itin = new Itinerary();
// @TODO terminer d'implémenter la création des itinéraire.
roadMap = new RoadMap(contrib, itin, bookTravel);
}
}
public String annulContribution() {
FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getExternalContext().getSessionMap().remove("currentRoadMap");
return "booktravel/index.xhtml";
}
/**
* Action de validation du formulaire.
* @return <code>Constante.FAIL_ACTION</code> si erreur de lavalidation;
* <br> sinon renvoi la page de destination.
*/
public String validContribution() {
LOGGER.debug("Demande de calidation d'une contribution au sein d'une roadMap");
String result;
try {
bookTravelEJB.createRoadMap(roadMap.getBookTravel().getId(),
roadMap.getContribution(), roadMap.getItinerary());
}
catch (BookTravelServiceException ex) {
FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getExternalContext().getSessionMap().remove("currentRoadMap");
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Erreur dans la création/modification de la feuille de route", ""));
result = Constante.FAIL_ACTION;
}
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Les données ont été correctement sauvegardé", ""));
// @TODO Détermier la page de destination.
result = Constante.SUCCESS_ACTION;
return result;
}
public RoadMap getRoadMap() {
return roadMap;
}
public void setRoadMap(RoadMap roadMap) {
this.roadMap = roadMap;
}
public void setBookTravelEJB(BookTravelManagerLocal bookTravelEJB) {
this.bookTravelEJB = bookTravelEJB;
}
public ParametreManagerLocal getParamEJB() {
return paramEJB;
}
public void setParamEJB(ParametreManagerLocal paramEJB) {
this.paramEJB = paramEJB;
}
}