Subversion Repositories eFlore/Applications.del

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
161 gduche 1
package org.tela_botanica.del.client.composants.presenteur;
2
 
197 gduche 3
import com.google.gwt.event.dom.client.ClickEvent;
4
import com.google.gwt.event.dom.client.ClickHandler;
5
import com.google.gwt.user.client.ui.Button;
161 gduche 6
import com.google.gwt.user.client.ui.Composite;
7
import com.google.gwt.user.client.ui.HasWidgets;
197 gduche 8
import com.google.gwt.user.client.ui.Panel;
9
import com.google.gwt.user.client.ui.RootPanel;
161 gduche 10
 
11
public abstract class Presenteur {
12
 
13
	private Composite vue;
197 gduche 14
	private Panel overlay;
15
	private Panel overlayContenu;
221 gduche 16
	private PresenteurVue presenteurVue;
252 aurelien 17
	private boolean fenetreModaleOuverte = false;
161 gduche 18
 
19
	// Constructeur
20
	public Presenteur(Composite vue) {
221 gduche 21
		presenteurVue = new PresenteurVue();
161 gduche 22
		this.vue = vue;
23
	}
24
 
25
	// Afficheur
26
	public void go() {
27
		go(null);
28
	}
29
 
30
	public abstract void go(HasWidgets composite);
31
 
32
	// Gestion des évènements
220 gduche 33
	protected abstract void gererEvenements();
161 gduche 34
 
35
	protected Composite getVue() {
36
		return this.vue;
37
	}
197 gduche 38
 
39
	public void ouvrirFenetreModale(Presenteur presenteurModal) {
40
 
221 gduche 41
		overlay = presenteurVue.overlay;
197 gduche 42
		overlay.setStyleName("overlay");
43
		overlay.setVisible(false);
44
		RootPanel.get().add(overlay);
45
 
221 gduche 46
		overlayContenu = presenteurVue.overlayContenu;
197 gduche 47
		overlayContenu.setStyleName("overlayContenu");
48
 
221 gduche 49
		Button boutonFermer = presenteurVue.boutonFermer;
197 gduche 50
		boutonFermer.setStyleName("fermerOverlay");
51
		boutonFermer.addClickHandler(new ClickHandler() {
52
 
53
			public void onClick(ClickEvent event) {
54
				fermerFenetreModale();
55
			}
56
		});
57
 
58
		presenteurModal.go(overlayContenu);
59
 
60
		RootPanel.get().add(overlayContenu);
61
		overlayContenu.setVisible(true);
62
 
63
		overlayContenu.add(boutonFermer);
64
		overlay.setVisible(true);
252 aurelien 65
 
66
		fenetreModaleOuverte = true;
197 gduche 67
	}
252 aurelien 68
 
69
	public boolean fenetreModaleEstOuverte() {
70
		return fenetreModaleOuverte;
71
	}
197 gduche 72
 
73
	public void fermerFenetreModale() {
252 aurelien 74
		overlay.clear();
75
		overlayContenu.clear();
197 gduche 76
		RootPanel.get().remove(overlay);
77
		RootPanel.get().remove(overlayContenu);
252 aurelien 78
		fenetreModaleOuverte = false;
197 gduche 79
	}
161 gduche 80
}