Subversion Repositories eFlore/Applications.del

Rev

Rev 148 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 148 Rev 178
Line 1... Line 1...
1
package org.tela_botanica.del.client.vues.rechercheimages;
1
package org.tela_botanica.del.client.vues.rechercheimages;
Line 2... Line -...
2
 
-
 
3
import java.util.ArrayList;
-
 
4
import java.util.Iterator;
2
 
Line 5... Line 3...
5
import java.util.List;
3
import java.util.List;
6
 
4
 
-
 
5
import org.tela_botanica.del.client.cache.CacheClient;
7
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.modeles.Image;
-
 
7
import org.tela_botanica.del.client.modeles.Protocole;
8
import org.tela_botanica.del.client.modeles.Image;
8
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
9
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
-
 
10
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementRechercheImage;
9
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
11
import org.tela_botanica.del.client.pagination.PaginationPresenteur;
10
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementRechercheImage;
Line -... Line 11...
-
 
11
import org.tela_botanica.del.client.utils.KeyboardKeyListener;
-
 
12
import org.tela_botanica.del.client.utils.MockDatasource;
12
import org.tela_botanica.del.client.utils.KeyboardKeyListener;
13
 
13
import org.tela_botanica.del.client.utils.MockDatasource;
14
import com.google.gwt.event.dom.client.ChangeEvent;
14
 
15
import com.google.gwt.event.dom.client.ChangeHandler;
15
import com.google.gwt.event.dom.client.ClickEvent;
-
 
Line 16... Line 16...
16
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.ClickEvent;
Line 17... Line 17...
17
import com.google.gwt.user.client.ui.HasWidgets;
17
import com.google.gwt.event.dom.client.ClickHandler;
18
import com.google.gwt.user.client.ui.Panel;
18
import com.google.gwt.user.client.ui.HasWidgets;
19
 
19
 
20
public class ImageRecherchePresenteur {
20
public class RechercheImagePresenteur {
Line 21... Line 21...
21
 
21
 
-
 
22
	private final MockDatasource dataSource = MockDatasource.getInstance();
22
	private final MockDatasource observationService = MockDatasource.getInstance();
23
	private final RechercheImageVue vue = new RechercheImageVue();
-
 
24
	private String protocoleParDefaut = Protocole.IDENTIFICATION_AUTOMATIQUE;
-
 
25
	private List<Protocole> protocoles;
23
	private final ImageRechercheVue vue = new ImageRechercheVue();
26
 
Line 24... Line 27...
24
	private static ImageRecherchePresenteur instance;
27
	public RechercheImagePresenteur() {
25
	private List<ImagePresenteur> observationPresenteurs = new ArrayList<ImagePresenteur>();
28
 
26
 
29
		if (CacheClient.getInstance().getProtocoleCourant() == null) {
-
 
30
			CacheClient.getInstance().setProtocoleCourant(dataSource.getProtocole(protocoleParDefaut));
-
 
31
		}
Line 27... Line 32...
27
	public ImageRecherchePresenteur() {
32
	}
28
		instance = this;
33
 
-
 
34
	public void go(HasWidgets composite) {
-
 
35
		composite.add(vue);
29
	}
36
		gererEvenements();
-
 
37
		chargerProtocoles();
30
 
38
	}
Line 31... Line 39...
31
	public void go(HasWidgets composite) {
39
 
32
		composite.add(vue);
40
	private void chargerProtocoles() {
Line 33... Line 41...
33
		gererEvenements();
41
		protocoles = dataSource.getProtocoles();
Line 34... Line 42...
34
 
42
		for (Protocole protocole : protocoles) {
35
		if (CacheClient.getInstance().getImages() != null) {
43
			vue.getListeProtocoles().addItem(protocole.getNom());
36
			chargerObservations();
44
		}
37
		}
45
		vue.getListeProtocoles().setSelectedIndex(protocoles.indexOf(CacheClient.getInstance().getProtocoleCourant()));
38
	}
46
	}
Line 39... Line 47...
39
 
47
 
40
	@SuppressWarnings("deprecation")
48
	@SuppressWarnings("deprecation")
Line 41... Line 49...
41
	public void gererEvenements() {
49
	public void gererEvenements() {
42
 
50
 
43
		vue.getBoutonChercher().addClickHandler(new ClickHandler() {
51
		vue.getBoutonChercher().addClickHandler(new ClickHandler() {
44
 
52
 
45
			@Override
53
			@Override
46
			public void onClick(ClickEvent event) {
-
 
47
				getImages();
-
 
48
			}
-
 
49
		});
-
 
50
 
-
 
51
		// TODO : remplacer par KeyUp, KeyDown ... etc.
-
 
52
		vue.getTextBox().addKeyboardListener(new KeyboardKeyListener() {
-
 
53
 
-
 
54
			@Override
-
 
55
			public void onEnterKeyUp() {
-
 
56
				getImages();
-
 
57
			}
-
 
58
		});
-
 
59
	}
-
 
60
 
-
 
61
	private void getImages() {
-
 
62
		List<Image> imagesFromDatabase = observationService.getImages();
-
 
63
		EvenementRechercheImage evenementRechercheImage = new EvenementRechercheImage(imagesFromDatabase);
-
 
64
		BusEvenementiel.getInstance().fireEvent(evenementRechercheImage);
-
 
65
	}
-
 
66
 
-
 
67
	private void chargerObservations() {
-
 
68
 
-
 
69
		// Remise à zéro du panneau d'affichage et des composants
-
 
70
		vue.nettoyer();
-
 
71
 
-
 
72
		// TODO : créer une méthode globale pour l'application ? voir
-
 
73
		// superclasse présenteur ?
-
 
74
		// FIXME : ne s'affiche pas
-
 
Line 75... Line -...
75
		vue.startChargement();
-
 
76
		vue.creerPanneauxObservation(CacheClient.getInstance().getImages());
-
 
77
 
-
 
78
		Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator();
-
 
79
		for (Image image : CacheClient.getInstance().getImages()) {
-
 
80
			Panel imagePanel = panelIterator.next();
54
			public void onClick(ClickEvent event) {
81
			ImagePresenteur observationPresenteur = new ImagePresenteur(image);
-
 
82
			observationPresenteur.go(imagePanel);
-
 
83
			observationPresenteurs.add(observationPresenteur);
-
 
84
		}
-
 
85
 
-
 
86
		vue.afficherPanneauxImage(0, vue.getNbImagesPerPage());
-
 
87
		createPaginationWidget(CacheClient.getInstance().getImages().size());
-
 
88
 
-
 
89
		vue.stopChargement();
-
 
Line 90... Line 55...
90
 
55
				chargerImages();
91
	}
56
			}
-
 
57
		});
-
 
58
 
92
 
59
		// TODO : remplacer par KeyUp, KeyDown ... etc.
93
	public void fermerTousPanneauxDetailsObservations() {
60
		vue.getTextBox().addKeyboardListener(new KeyboardKeyListener() {
94
		for (ImagePresenteur observationPresenteur : observationPresenteurs) {
-
 
95
			if (observationPresenteur.isDetailsOpen()) {
61
 
96
				observationPresenteur.cacherDetails();
-
 
97
			}
-
 
98
		}
-
 
99
	}
62
			@Override
Line -... Line 63...
-
 
63
			public void onEnterKeyUp() {
100
 
64
				chargerImages();
-
 
65
			}
101
	private void createPaginationWidget(int nbImages) {
66
		});
102
 
67
 
Line 103... Line 68...
103
		new PaginationPresenteur(nbImages) {
68
		vue.getListeProtocoles().addChangeHandler(new ChangeHandler() {
104
 
69
 
105
			@Override
70
			@Override
Line 106... Line 71...
106
			public void changerPage(int debut, int fin) {
71
			public void onChange(ChangeEvent event) {