Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2212 arthur 1
package org.tela_botanica.del.client.gestionhistorique;
2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
4
import org.tela_botanica.del.client.config.Config;
5
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
6
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
7
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
8
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEflorePresenteur;
9
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEfloreVue;
10
import org.tela_botanica.del.client.vues.entete.EntetePresenteur;
11
import org.tela_botanica.del.client.vues.entete.EnteteVue;
12
import org.tela_botanica.del.client.vues.identiplante.moteur.MoteurIdentiplantePresenteur;
13
import org.tela_botanica.del.client.vues.identiplante.moteur.MoteurIdentiplanteVue;
14
import org.tela_botanica.del.client.vues.identiplante.plateformedetermination.IdentiplanteDeterminationPresenteur;
15
import org.tela_botanica.del.client.vues.identiplante.plateformedetermination.IdentiplanteDeterminationVue;
16
import org.tela_botanica.del.client.vues.pictoflora.moteur.MoteurPictofloraPresenteur;
17
import org.tela_botanica.del.client.vues.pictoflora.moteur.MoteurPictofloraVue;
18
import org.tela_botanica.del.client.vues.pictoflora.plateformedetermination.PictofloraDeterminationPresenteur;
19
import org.tela_botanica.del.client.vues.pictoflora.plateformedetermination.PictofloraDeterminationVue;
20
 
21
import com.google.gwt.core.shared.GWT;
22
import com.google.gwt.event.logical.shared.ValueChangeEvent;
23
import com.google.gwt.event.logical.shared.ValueChangeHandler;
24
import com.google.gwt.user.client.Window;
25
import com.google.gwt.user.client.ui.HTML;
26
import com.google.gwt.user.client.ui.Panel;
27
import com.google.gwt.user.client.ui.RootPanel;
28
 
29
/**
30
 * @author Benjamin
31
 *
32
 */
33
public class GestionnaireHistorique implements ValueChangeHandler<String> {
34
 
35
	/**
36
	 * Évènement lorsque l'historique change. L'action par défaut affiche la
37
	 * page d'accueil.
38
	 * */
39
	public void onValueChange(ValueChangeEvent<String> event) {
40
		//1. définition des variables
41
		String eventValue = event.getValue();
42
		GWT.log("Historique -> eventValue:"+eventValue);
43
		Panel contenu = RootPanel.get("contenu");
44
		Panel zoneEntete = RootPanel.get("zoneEnteteContenu");
45
		CacheClient cache = CacheClient.getInstance();
46
		cache.setPageCourante(eventValue);
47
 
48
		//2. nettoyer le contenu
49
		contenu.clear();
50
		zoneEntete.clear();
51
 
52
		//3. gérer l'entete
53
		EntetePresenteur entetePresenteur = new EntetePresenteur(new EnteteVue());
54
		entetePresenteur.go(zoneEntete);
55
 
56
		//Actions en fonction de la valeur de l'évènement et de l'url
57
		String urlCourante = Window.Location.getHref();
58
		Config config = new Config();
59
		String urlAppliObs = config.getUrl("identiplante");
60
		String urlAppliImg = config.getUrl("pictoflora");
61
 
62
		if (urlCourante.contains(urlAppliImg)) {
63
			if (eventValue.startsWith(ConstantesNavigation.PAGE_DETAIL_IMG)) {
64
				PictofloraDeterminationPresenteur presenteur = new PictofloraDeterminationPresenteur(
65
						new PictofloraDeterminationVue(),
66
						new ObservationServiceConcret(),
67
						new ProtocoleServiceConcret()
68
				);
69
				presenteur.go(contenu);
70
			} else {
71
				lancerMoteurRechercheImages(contenu);
72
			}
73
		} else if (urlCourante.contains(urlAppliObs)) {
74
			if (eventValue.startsWith(ConstantesNavigation.PAGE_DETAIL_OBS)) {
75
				IdentiplanteDeterminationPresenteur presenteur = new IdentiplanteDeterminationPresenteur(
76
					new IdentiplanteDeterminationVue(),
77
					new ObservationServiceConcret()
78
				);
79
				presenteur.go(contenu);
80
			} else if (eventValue.startsWith(ConstantesNavigation.PAGE_COMPARAISON_EFLORE)) {
81
				ComparaisonEflorePresenteur presenteur = new ComparaisonEflorePresenteur(
82
					new ComparaisonEfloreVue(),
83
					new ImageServiceConcret()
84
				);
85
				presenteur.go(contenu);
86
			} else {
87
				lancerMoteurRechercheObservation(contenu);
88
			}
89
		} else {
90
			lancerMoteurRechercheObservation(contenu);
91
		}
92
 
93
		// Mise à jour de l'url courante (re-écriture)
94
		CacheClient.getInstance().mettreAjourUrlCourante();
95
	}
96
 
97
	/**
98
	 * Générer la page de recherche observation et l'afficher dans panneau
99
	 * @param Panel panneau le panneau pour afficher le résultat
100
	 * */
101
	public void lancerMoteurRechercheObservation(Panel panneau) {
102
		MoteurIdentiplantePresenteur presenteur = new MoteurIdentiplantePresenteur(new ObservationServiceConcret(), new MoteurIdentiplanteVue());
103
		presenteur.go(panneau);
104
	}
105
 
106
	/**
107
	 * Générer la page de recherche images et l'afficher dans panneau
108
	 * @param Panel panneau le panneau pour afficher le résultat
109
	 * */
110
	public void lancerMoteurRechercheImages(Panel panneau) {
111
		MoteurPictofloraPresenteur presenteur = new MoteurPictofloraPresenteur(new MoteurPictofloraVue(), new ProtocoleServiceConcret());
112
		presenteur.go(panneau);
113
	}
114
}