Subversion Repositories eFlore/Applications.del

Rev

Rev 608 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 608 Rev 1563
1
package org.tela_botanica.del.client.composants.fenetreoverlay;
1
package org.tela_botanica.del.client.composants.fenetreoverlay;
2
 
2
 
3
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
3
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
4
 
-
 
5
import com.google.gwt.event.dom.client.BlurEvent;
-
 
6
import com.google.gwt.event.dom.client.BlurHandler;
4
 
7
import com.google.gwt.event.dom.client.ClickEvent;
5
import com.google.gwt.event.dom.client.ClickEvent;
8
import com.google.gwt.event.dom.client.ClickHandler;
-
 
9
import com.google.gwt.event.dom.client.FocusEvent;
-
 
10
import com.google.gwt.event.dom.client.FocusHandler;
-
 
11
import com.google.gwt.event.dom.client.HasBlurHandlers;
6
import com.google.gwt.event.dom.client.ClickHandler;
12
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
13
import com.google.gwt.event.dom.client.HasFocusHandlers;
7
import com.google.gwt.event.dom.client.HasClickHandlers;
14
import com.google.gwt.event.dom.client.HasKeyDownHandlers;
8
import com.google.gwt.event.dom.client.HasKeyDownHandlers;
15
import com.google.gwt.event.dom.client.KeyCodes;
9
import com.google.gwt.event.dom.client.KeyCodes;
16
import com.google.gwt.event.dom.client.KeyDownEvent;
10
import com.google.gwt.event.dom.client.KeyDownEvent;
17
import com.google.gwt.event.dom.client.KeyDownHandler;
11
import com.google.gwt.event.dom.client.KeyDownHandler;
18
import com.google.gwt.event.shared.HasHandlers;
-
 
19
import com.google.gwt.user.client.Window;
-
 
20
import com.google.gwt.user.client.ui.HasVisibility;
12
import com.google.gwt.user.client.ui.HasVisibility;
21
import com.google.gwt.user.client.ui.HasWidgets;
13
import com.google.gwt.user.client.ui.HasWidgets;
22
import com.google.gwt.user.client.ui.IsWidget;
14
import com.google.gwt.user.client.ui.IsWidget;
23
import com.google.gwt.user.client.ui.RootPanel;
15
import com.google.gwt.user.client.ui.RootPanel;
24
 
16
 
25
public abstract class FenetreOverlayDefilantePresenteur {
17
public abstract class FenetreOverlayDefilantePresenteur {
26
 
18
 
27
	public interface Vue extends IsWidget {
19
	public interface Vue extends IsWidget {
28
		public HasKeyDownHandlers getConteneurGlobal();
20
		public HasKeyDownHandlers getConteneurGlobal();
29
		public IsWidget getOverlay();
21
		public IsWidget getOverlay();
30
		public void afficherBoutonsSuivantsPrecedents(boolean afficher);
22
		public void afficherBoutonsSuivantsPrecedents(boolean afficher);
31
		public HasClickHandlers getOverlayHasClickHandlers();
23
		public HasClickHandlers getOverlayHasClickHandlers();
32
		public HasVisibility getOverlayVisibility();
24
		public HasVisibility getOverlayVisibility();
33
		public IsWidget getOverlayContenu();
25
		public IsWidget getOverlayContenu();
34
		public HasVisibility getOverlayContenuVisibility();
26
		public HasVisibility getOverlayContenuVisibility();
35
		public HasWidgets getOverlayContenuHasWidgets();
27
		public HasWidgets getOverlayContenuHasWidgets();
36
		public HasClickHandlers getBoutonFermer();	
28
		public HasClickHandlers getBoutonFermer();	
37
		public HasClickHandlers getBoutonSuivant();
29
		public HasClickHandlers getBoutonSuivant();
38
		public HasClickHandlers getBoutonPrecedent();
30
		public HasClickHandlers getBoutonPrecedent();
39
		public void setStyleOverlay(String style);
31
		public void setStyleOverlay(String style);
40
		public void setStyleOverlayContenu(String style);
32
		public void setStyleOverlayContenu(String style);
41
		public void setOverlayContenu(IsWidget w);
33
		public void setOverlayContenu(IsWidget w);
42
		public void viderOverlay();
34
		public void viderOverlay();
43
		public void viderOverlayContenu();
35
		public void viderOverlayContenu();
44
		public void surOuvertureFenetre();
36
		public void surOuvertureFenetre();
45
		public void surFermetureFenetre();
37
		public void surFermetureFenetre();
46
		public void surSetContenuFenetre();
38
		public void surSetContenuFenetre();
-
 
39
		public boolean testerFermetureClicExterieur(ClickEvent event);
47
	}
40
	}
48
	
41
	
49
	private Vue vue;
42
	private Vue vue;
50
	
43
	
51
	private boolean fenetreModaleOuverte = false;
44
	private boolean fenetreModaleOuverte = false;
52
	private boolean fermableSurClicExterieur = true;
-
 
53
	private int indexElementAffiche = 0;
45
	private int indexElementAffiche = 0;
54
 
46
 
55
	// Constructeur
47
	// Constructeur
56
	public FenetreOverlayDefilantePresenteur(int indexElementAffiche, Vue vue) {
48
	public FenetreOverlayDefilantePresenteur(int indexElementAffiche, Vue vue) {
57
		this.indexElementAffiche = indexElementAffiche;
49
		this.indexElementAffiche = indexElementAffiche;
58
		this.vue = vue;
50
		this.vue = vue;
59
		gererEvenements();
51
		gererEvenements();
60
	}
52
	}
61
	
53
	
62
	// Afficheur
54
	// Afficheur
63
	public void go() {
55
	public void go() {
64
		go(null);
56
		go(null);
65
	}
57
	}
66
 
58
 
67
	public void go(HasWidgets composite) {
59
	public void go(HasWidgets composite) {
68
		
60
		
69
	}
61
	}
70
 
62
 
71
	// Gestion des évènements
63
	// Gestion des évènements
72
	protected void gererEvenements() {
64
	protected void gererEvenements() {
73
		
65
		
74
		vue.getBoutonFermer().addClickHandler(new ClickHandler() {
66
		vue.getBoutonFermer().addClickHandler(new ClickHandler() {
75
			public void onClick(ClickEvent event) {
67
			public void onClick(ClickEvent event) {
76
				fermerFenetreModale();
68
				fermerFenetreModale();
77
			}
69
			}
78
		});
70
		});
79
		
71
		
80
		vue.getBoutonPrecedent().addClickHandler(new ClickHandler() {
72
		vue.getBoutonPrecedent().addClickHandler(new ClickHandler() {
81
			public void onClick(ClickEvent event) {
73
			public void onClick(ClickEvent event) {
82
				surClicBoutonPrecedent();
74
				surClicBoutonPrecedent();
83
			}
75
			}
84
		});
76
		});
85
		
77
		
86
		vue.getBoutonSuivant().addClickHandler(new ClickHandler() {
78
		vue.getBoutonSuivant().addClickHandler(new ClickHandler() {
87
			public void onClick(ClickEvent event) {
79
			public void onClick(ClickEvent event) {
88
				surClicBoutonSuivant();
80
				surClicBoutonSuivant();
89
			}
81
			}
90
		});
82
		});
91
		
83
		
92
		vue.getConteneurGlobal().addKeyDownHandler(new KeyDownHandler() {
84
		vue.getConteneurGlobal().addKeyDownHandler(new KeyDownHandler() {
93
			@Override
85
			@Override
94
			public void onKeyDown(KeyDownEvent event) {
86
			public void onKeyDown(KeyDownEvent event) {
95
				if(event.getNativeKeyCode() == KeyCodes.KEY_LEFT) {
87
				if(event.getNativeKeyCode() == KeyCodes.KEY_LEFT) {
96
					surClicBoutonPrecedent();
88
					surClicBoutonPrecedent();
97
				}
89
				}
98
				
90
				
99
				if(event.getNativeKeyCode() == KeyCodes.KEY_RIGHT) {
91
				if(event.getNativeKeyCode() == KeyCodes.KEY_RIGHT) {
100
					surClicBoutonSuivant();
92
					surClicBoutonSuivant();
101
				}
93
				}
102
			}
94
			}
103
		});
95
		});
104
		
96
		
105
		vue.getOverlayHasClickHandlers().addClickHandler(new ClickHandler() {		
97
		vue.getOverlayHasClickHandlers().addClickHandler(new ClickHandler() {		
106
			@Override
98
			@Override
107
			public void onClick(ClickEvent event) {
99
			public void onClick(ClickEvent event) {
108
				if(fermableSurClicExterieur) {
100
				if(vue.testerFermetureClicExterieur(event)) {
109
					fermerFenetreModale();
101
					fermerFenetreModale();
110
				}
102
				}
111
			}
103
			}
112
		});
104
		});
113
	}
105
	}
114
 
106
 
115
	public void ouvrirFenetreModaleDefilante(int indexElementAffiche, Presenteur presenteurModal) {
107
	public void ouvrirFenetreModaleDefilante(int indexElementAffiche, Presenteur presenteurModal) {
116
		
108
		
117
		vue.setStyleOverlay("overlay");
109
		vue.setStyleOverlay("overlay");
118
		vue.setStyleOverlayContenu("overlayContenu");
110
		vue.setStyleOverlayContenu("overlayContenu");
119
		vue.getOverlayContenuVisibility().setVisible(true);
111
		vue.getOverlayContenuVisibility().setVisible(true);
120
		vue.getOverlayVisibility().setVisible(true);
112
		vue.getOverlayVisibility().setVisible(true);
121
		RootPanel.get().add(vue.asWidget());
113
		RootPanel.get().add(vue.asWidget());
122
		fenetreModaleOuverte = true;
114
		fenetreModaleOuverte = true;
123
		
115
		
124
		setContenuFenetreModale(indexElementAffiche, presenteurModal);
116
		setContenuFenetreModale(indexElementAffiche, presenteurModal);
125
		vue.surOuvertureFenetre();
117
		vue.surOuvertureFenetre();
126
	}
118
	}
127
	
119
	
128
	public void setContenuFenetreModale(int indexElementAffiche, Presenteur presenteurModal) {
120
	public void setContenuFenetreModale(int indexElementAffiche, Presenteur presenteurModal) {
129
		this.indexElementAffiche = indexElementAffiche;
121
		this.indexElementAffiche = indexElementAffiche;
130
		vue.viderOverlayContenu();
122
		vue.viderOverlayContenu();
131
		presenteurModal.go(vue.getOverlayContenuHasWidgets());
123
		presenteurModal.go(vue.getOverlayContenuHasWidgets());
132
		vue.surSetContenuFenetre();
124
		vue.surSetContenuFenetre();
133
	}
125
	}
134
	
126
	
135
	public abstract void surClicBoutonSuivant();
127
	public abstract void surClicBoutonSuivant();
136
	public abstract void surClicBoutonPrecedent();
128
	public abstract void surClicBoutonPrecedent();
137
	
129
	
138
	public boolean fenetreModaleEstOuverte() {
130
	public boolean fenetreModaleEstOuverte() {
139
		return fenetreModaleOuverte;
131
		return fenetreModaleOuverte;
140
	}
132
	}
141
 
133
 
142
	public void fermerFenetreModale() {
134
	public void fermerFenetreModale() {
143
		vue.viderOverlay();
135
		vue.viderOverlay();
144
		vue.viderOverlayContenu();
136
		vue.viderOverlayContenu();
145
		RootPanel.get().remove(vue.asWidget());
137
		RootPanel.get().remove(vue.asWidget());
146
		fenetreModaleOuverte = false;
138
		fenetreModaleOuverte = false;
147
		vue.surFermetureFenetre();
139
		vue.surFermetureFenetre();
148
	}
140
	}
149
	
141
	
150
	public int getIndexElementAffiche() {
142
	public int getIndexElementAffiche() {
151
		return indexElementAffiche;
143
		return indexElementAffiche;
152
	}
144
	}
153
	
-
 
154
	public void setFermableSurClicExterieur(boolean fermableSurClicExterieur) {
-
 
155
		this.fermableSurClicExterieur = fermableSurClicExterieur;
-
 
156
	}
-
 
157
 
145
 
158
	public void afficherBoutonsSuivantsPrecedents(boolean afficher) {
146
	public void afficherBoutonsSuivantsPrecedents(boolean afficher) {
159
		vue.afficherBoutonsSuivantsPrecedents(afficher);
147
		vue.afficherBoutonsSuivantsPrecedents(afficher);
160
	}
148
	}
161
}
149
}