package org.medias.eccad.presentation.bean; import java.io.IOException; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.servlet.http.HttpSession; import org.apache.xmlrpc.XmlRpcException; import org.medias.eccad.helpers.LoggerPerso; import org.medias.eccad.metier.extracteur.CritereExtractBean; import org.medias.eccad.metier.extracteur.Extract; import org.medias.eccad.modele.Grille; import org.medias.eccad.modele.Parametre; import org.medias.eccad.modele.Produit; /** * Nota : durée de vie : request (pour appeler à chaque fois le constructeur ^^, sinon mettre une fonction d'init appelées par la page précédante) * @author pinaud * */ public class ExtractBean extends AbstractVueBean{ public CritereExtractBean critere; public int nbrGrille; public Produit produit; public Parametre param; public ExtractBean() throws DeconnectionException { controleSession(); CritereBean critereBean = (CritereBean)((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false)).getAttribute("critereBean"); SessionBean sessionbean = (SessionBean)((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false)).getAttribute("sessionBean"); produit = critereBean.getSmp().getProduitById(critereBean.getProduit().intValue()); param = critereBean.getSmp().getParametreById(critereBean.getParametre().intValue()); critere = new CritereExtractBean(); critere.setDateDebut(critereBean.getBegDate()); critere.setDateFin(critereBean.getEndDate()); critere.setLatMax(Double.toString(critereBean.getNorthbc())); critere.setLatMin(Double.toString(critereBean.getSouthbc())); critere.setLonMax(Double.toString(critereBean.getEastbc())); critere.setLonMin(Double.toString(critereBean.getWestbc())); critere.setParametre(critereBean.getParametre().toString()); critere.setProduit(critereBean.getProduit().toString()); critere.setDataFileFormat("1"); critere.setDataFileCompress("0"); critere.setDataFileCompressActiv("0"); critere.setSeparator("tab"); critere.setAbsent("min_float"); critere.setMailUser(sessionbean.getEmail()); nbrGrille = critereBean.getSmp().getListGrille(critereBean.getProduit(),critereBean.getParametre(), critere.getDateDebut(), critere.getDateFin()).size(); } public void extractVisualise(ActionEvent event) { CritereBean critereBean = (CritereBean)((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false)).getAttribute("critereBean"); CarteBean carteBean = (CarteBean)((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false)).getAttribute("carteBean"); Long idgrille = critereBean.getGrille(); Grille grille = critereBean.getSmp().getGrilleById(idgrille); if (grille == null) throw new DeconnectionException(); critere.setLatMax(carteBean.getNorthbc().getValue().toString()); critere.setLatMin(carteBean.getSouthbc().getValue().toString()); critere.setLonMax(carteBean.getEastbc().getValue().toString()); critere.setLonMin(carteBean.getWestbc().getValue().toString()); nbrGrille = 1; critere.setDateDebut(grille.getDate().toString()); critere.setDateFin(grille.getDate().toString()); } public void extraction(ActionEvent event) { LoggerPerso.log(ExtractBean.class, LoggerPerso.INFO, "demande d'extraction :: " + critere.getMailUser()); Extract extracteur = new Extract(); try { extracteur.lanceExtract(critere); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (XmlRpcException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public CritereExtractBean getCritere() { return critere; } public void setCritere(CritereExtractBean critere) { this.critere = critere; } public int getNbrGrille() { return nbrGrille; } public void setNbrGrille(int nbrGrille) { this.nbrGrille = nbrGrille; } public Parametre getParam() { return param; } public void setParam(Parametre param) { this.param = param; } public Produit getProduit() { return produit; } public void setProduit(Produit produit) { this.produit = produit; } }