Subversion Repositories eFlore/Applications.del

Rev

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

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