Rev 1467 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.gestionhistorique;
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEflorePresenteur;
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEfloreVue;
import org.tela_botanica.del.client.vues.entete.EntetePresenteur;
import org.tela_botanica.del.client.vues.entete.EnteteVue;
import org.tela_botanica.del.client.vues.identiplante.moteur.MoteurIdentiplantePresenteur;
import org.tela_botanica.del.client.vues.identiplante.moteur.MoteurIdentiplanteVue;
import org.tela_botanica.del.client.vues.identiplante.plateformedetermination.IdentiplanteDeterminationPresenteur;
import org.tela_botanica.del.client.vues.identiplante.plateformedetermination.IdentiplanteDeterminationVue;
import org.tela_botanica.del.client.vues.pictoflora.moteur.MoteurPictofloraPresenteur;
import org.tela_botanica.del.client.vues.pictoflora.moteur.MoteurPictofloraVue;
import org.tela_botanica.del.client.vues.pictoflora.plateformedetermination.PictofloraDeterminationPresenteur;
import org.tela_botanica.del.client.vues.pictoflora.plateformedetermination.PictofloraDeterminationVue;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.RootPanel;
/**
* @author Benjamin
*
*/
public class GestionnaireHistorique implements ValueChangeHandler<String> {
/**
* Évènement lorsque l'historique change. L'action par défaut affiche la
* page d'accueil.
* */
public void onValueChange(ValueChangeEvent<String> event) {
//1. définition des variables
String eventValue = event.getValue();
GWT.log("Historique -> eventValue:"+eventValue);
Panel contenu = RootPanel.get("contenu");
Panel zoneEntete = RootPanel.get("zoneEnteteContenu");
CacheClient cache = CacheClient.getInstance();
cache.setPageCourante(eventValue);
//2. nettoyer le contenu
contenu.clear();
zoneEntete.clear();
//3. gérer l'entete
EntetePresenteur entetePresenteur = new EntetePresenteur(new EnteteVue());
entetePresenteur.go(zoneEntete);
//Actions en fonction de la valeur de l'évènement et de l'url
String urlCourante = Window.Location.getHref();
Config config = new Config();
String urlAppliObs = config.getUrl("identiplante");
String urlAppliImg = config.getUrl("pictoflora");
if (urlCourante.contains(urlAppliImg)) {
if (eventValue.startsWith(ConstantesNavigation.PAGE_DETAIL_IMG)) {
PictofloraDeterminationPresenteur presenteur = new PictofloraDeterminationPresenteur(
new PictofloraDeterminationVue(),
new ObservationServiceConcret(),
new ProtocoleServiceConcret()
);
presenteur.go(contenu);
} else {
lancerMoteurRechercheImages(contenu);
}
} else if (urlCourante.contains(urlAppliObs)) {
if (eventValue.startsWith(ConstantesNavigation.PAGE_DETAIL_OBS)) {
IdentiplanteDeterminationPresenteur presenteur = new IdentiplanteDeterminationPresenteur(
new IdentiplanteDeterminationVue(),
new ObservationServiceConcret()
);
presenteur.go(contenu);
} else if (eventValue.startsWith(ConstantesNavigation.PAGE_COMPARAISON_EFLORE)) {
ComparaisonEflorePresenteur presenteur = new ComparaisonEflorePresenteur(
new ComparaisonEfloreVue(),
new ImageServiceConcret()
);
presenteur.go(contenu);
} else {
lancerMoteurRechercheObservation(contenu);
}
} else {
lancerMoteurRechercheObservation(contenu);
}
// Mise à jour de l'url courante (re-écriture)
CacheClient.getInstance().mettreAjourUrlCourante();
}
/**
* Générer la page de recherche observation et l'afficher dans panneau
* @param Panel panneau le panneau pour afficher le résultat
* */
public void lancerMoteurRechercheObservation(Panel panneau) {
MoteurIdentiplantePresenteur presenteur = new MoteurIdentiplantePresenteur(new ObservationServiceConcret(), new MoteurIdentiplanteVue());
presenteur.go(panneau);
}
/**
* Générer la page de recherche images et l'afficher dans panneau
* @param Panel panneau le panneau pour afficher le résultat
* */
public void lancerMoteurRechercheImages(Panel panneau) {
MoteurPictofloraPresenteur presenteur = new MoteurPictofloraPresenteur(new MoteurPictofloraVue(), new ProtocoleServiceConcret());
presenteur.go(panneau);
}
}