Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 989 Rev 1012
Line 26... Line 26...
26
import com.extjs.gxt.ui.client.widget.layout.RowData;
26
import com.extjs.gxt.ui.client.widget.layout.RowData;
27
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
27
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
28
import com.extjs.gxt.ui.client.widget.menu.Menu;
28
import com.extjs.gxt.ui.client.widget.menu.Menu;
29
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
29
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
30
import com.google.gwt.core.client.GWT;
30
import com.google.gwt.core.client.GWT;
31
import com.google.gwt.user.client.Window;
-
 
Line 32... Line 31...
32
 
31
 
Line 33... Line 32...
33
public class EnteteVue extends LayoutContainer implements Rafraichissable {
32
public class EnteteVue extends LayoutContainer implements Rafraichissable {
34
 
33
 
-
 
34
	private Mediateur mediateur = null;
-
 
35
	private Constantes i18nC = null;
-
 
36
 
-
 
37
	private String identificationInfoTpl = null;
-
 
38
	private String titreTpl = null;
-
 
39
	private String generalMessageTpl = null;
-
 
40
	private String deconnexionMessageTpl = null;
-
 
41
	private String lienExterneMessageTpl = null;
-
 
42
	
35
	private Mediateur mediateur = null;
43
	private HtmlContainer conteneurHtml = null;
36
	private Constantes i18nC = null;
44
	private SelectionListener<ButtonEvent> boutonEcouteur = null;
37
	private ButtonBar barreBoutons = null;
45
	private ButtonBar barreBoutons = null;
38
	private Button identificationBouton = null;
46
	private Button identificationBouton = null;
-
 
47
	private SplitButton feedbackBouton = null;
Line 39... Line 48...
39
	private String identificationInfoTpl = null;
48
	private SplitButton aideBouton = null;
40
	private HtmlContainer identificationConteneurHtml = null;
49
	private SplitButton applisBouton = null;
41
	
50
	
42
	public EnteteVue(Mediateur mediateurCourant) {
-
 
-
 
51
	public EnteteVue(Mediateur mediateurCourant) {
43
		mediateur = mediateurCourant;
52
		mediateur = mediateurCourant;
-
 
53
		i18nC = Mediateur.i18nC;
-
 
54
		
-
 
55
		setId(ComposantId.PANNEAU_ENTETE);
-
 
56
		setLayout(new RowLayout(Orientation.HORIZONTAL));
-
 
57
		
-
 
58
		initialiserSquelettes();
-
 
59
		boutonEcouteur = getEcouteurDesBoutons();
-
 
60
		conteneurHtml = getIdentification();
-
 
61
		identificationBouton = getBoutonIdentification();
-
 
62
		feedbackBouton = getBoutonAFeedback();
-
 
63
		aideBouton = getBoutonAide();
-
 
64
		applisBouton = getBoutonApplications();
-
 
65
		
-
 
66
		barreBoutons = new ButtonBar();
-
 
67
		barreBoutons.setAlignment(Style.HorizontalAlignment.RIGHT);
-
 
68
		barreBoutons.add(conteneurHtml);
-
 
69
		barreBoutons.add(identificationBouton);
Line -... Line 70...
-
 
70
		barreBoutons.add(aideBouton);
-
 
71
		barreBoutons.add(feedbackBouton);
-
 
72
		barreBoutons.add(applisBouton);
-
 
73
		
-
 
74
		add(getTitre(), new RowData(.20, 1));
-
 
75
		add(barreBoutons, new RowData(.8, 1)); 
-
 
76
	}
-
 
77
	
-
 
78
	private void initialiserSquelettes() {
-
 
79
		identificationInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION+"'>{0}</div>";
-
 
80
		titreTpl = "<div id='"+ComposantId.DIV_TITRE+"'>{0}</div>";
-
 
81
		generalMessageTpl = "Chargement de la fenêtre «{0}» en cours...";
-
 
82
		deconnexionMessageTpl = "Déconnexion de l'utilisateur «{0}» en cours...";
44
		i18nC = mediateur.i18nC;
83
		lienExterneMessageTpl = "Ouverture du lien externe «{0}» en cours...";
45
		setLayout(new RowLayout(Orientation.HORIZONTAL));
-
 
46
		setId(ComposantId.PANNEAU_ENTETE);
84
	}
-
 
85
	
-
 
86
	private HtmlContainer getTitre() {
-
 
87
		HtmlContainer titreConteneurHtml = new HtmlContainer();
-
 
88
		titreConteneurHtml.setHtml(Format.substitute(titreTpl, i18nC.appliNom()));
-
 
89
		return titreConteneurHtml;
Line -... Line 90...
-
 
90
	}
47
		
91
	
-
 
92
	private HtmlContainer getIdentification() {
-
 
93
		HtmlContainer conteneurHtml = new HtmlContainer();
-
 
94
		
48
		HtmlContainer titreConteneurHtml = new HtmlContainer();
95
		conteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
49
		String titreHtml = "<div id='"+ComposantId.DIV_TITRE+"'>{0}</div>";
96
		return conteneurHtml;
50
		titreConteneurHtml.setHtml(Format.substitute(titreHtml, i18nC.appliNom()));
97
	}
-
 
98
	
-
 
99
	private SelectionListener<ButtonEvent> getEcouteurDesBoutons() {
Line 51... Line -...
51
		
-
 
52
		// Création des écouteurs
-
 
53
		SelectionListener<ButtonEvent> boutonEcouteur = new SelectionListener<ButtonEvent>() {  
100
		SelectionListener<ButtonEvent> boutonEcouteur = new SelectionListener<ButtonEvent>() {  
54
			public void componentSelected(ButtonEvent be) {  
101
			public void componentSelected(ButtonEvent be) {  
55
				Button btn = (Button) be.getComponent();
102
				Button btn = (Button) be.getComponent();
56
				
103
				String id = btn.getId();
57
				String message = Format.substitute("Chargement de la fenêtre «{0}» en cours...", btn.getText());
104
				String message = "";
58
				
105
				
-
 
106
				if (id.equals(ComposantId.BTN_AIDE)
59
				if (btn.getId().equals(ComposantId.BTN_AIDE)) {
107
						|| id.equals(ComposantId.BTN_FEEDBACK)
60
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirAide();
108
						|| id.equals(ComposantId.BTN_APPLIS)) {
61
				} else if (btn.getId().equals(ComposantId.BTN_PARAMETRES)) {
109
					btn.showMenu();
62
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirParametres();
110
				} else if (id.equals(ComposantId.BTN_CONNEXION)) {
63
				} else if (btn.getId().equals(ComposantId.BTN_CONNEXION)) {
111
					mediateur.ouvrirIdentification();
64
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirIdentification();
112
					message = Format.substitute(generalMessageTpl, btn.getText());
65
				} else if (btn.getId().equals(ComposantId.BTN_DECONNEXION)) {
-
 
66
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).deconnecterUtilisateur();
113
				} else if (id.equals(ComposantId.BTN_DECONNEXION)) {
Line 67... Line 114...
67
					Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
114
					mediateur.deconnecterUtilisateur();
68
					message = Format.substitute("Déconnexion de l'utilisateur «{0}» en cours...", utilisateurCourant.getNomComplet());
115
					Utilisateur utilisateurCourant = mediateur.getUtilisateur();
69
				} else if (btn.getId().equals(ComposantId.BTN_APPLIS)) {
116
					message = Format.substitute(deconnexionMessageTpl, utilisateurCourant.getNomComplet());
70
					btn.getMenu().show(btn);
117
				} else if (id.equals(ComposantId.BTN_APPLIS)) {
71
					message = "";
118
					btn.getMenu().show(btn);
-
 
119
				}
-
 
120
				
-
 
121
				if (!message.equals("")) {
-
 
122
					Info.display(i18nC.chargement(), message);
-
 
123
				}
-
 
124
			}  
-
 
125
		};
-
 
126
		return boutonEcouteur;
-
 
127
	}
-
 
128
	
-
 
129
	private Button getBoutonIdentification() {
-
 
130
		Button bouton = new Button(i18nC.identification(), boutonEcouteur);
-
 
131
		bouton.setId(ComposantId.BTN_CONNEXION);
-
 
132
		return bouton;
-
 
133
	}
-
 
134
	
-
 
135
	private SplitButton getBoutonAide() {
-
 
136
		MenuItem menuDoc = new MenuItem(i18nC.doc());
-
 
137
		menuDoc.addSelectionListener(new SelectionListener<MenuEvent>() {  
Line 72... Line -...
72
				}
-
 
73
				
-
 
74
				if (!message.equals("")) {
-
 
75
					Info.display(Mediateur.i18nC.chargement(), message);
-
 
76
				}
-
 
77
			}  
-
 
78
		};
-
 
79
		
-
 
80
		barreBoutons = new ButtonBar();
-
 
81
		barreBoutons.setAlignment(Style.HorizontalAlignment.RIGHT);
-
 
82
		
-
 
83
		identificationConteneurHtml = new HtmlContainer();
-
 
84
		identificationInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION+"'>{0}</div>";
-
 
85
		identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
-
 
86
		barreBoutons.add(identificationConteneurHtml);
-
 
87
		
-
 
88
		identificationBouton = new Button("Identifiez vous...", boutonEcouteur);
-
 
89
		identificationBouton.setId(ComposantId.BTN_CONNEXION);
-
 
90
		barreBoutons.add(identificationBouton);
-
 
91
		
-
 
92
		Button parametresBouton = new Button("À propos", boutonEcouteur);
-
 
Line 93... Line 138...
93
		parametresBouton.setId(ComposantId.BTN_PARAMETRES);
138
			@Override
-
 
139
			public void componentSelected(MenuEvent mEvent) {  
-
 
140
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirAide();
-
 
141
			}  
-
 
142
		});
-
 
143
		menuDoc.setId(ComposantId.MENU_DOC);
-
 
144
		menuDoc.setIcon(Images.ICONES.aide());
94
		parametresBouton.setIcon(Images.ICONES.engrenages());
145
		
95
		barreBoutons.add(parametresBouton);
146
		
Line 96... Line 147...
96
		
147
		MenuItem menuApropos = new MenuItem(i18nC.apropos());
-
 
148
		menuApropos.addSelectionListener(new SelectionListener<MenuEvent>() {  
-
 
149
			@Override
-
 
150
			public void componentSelected(MenuEvent mEvent) {  
-
 
151
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirParametres();
-
 
152
			}  
-
 
153
		});
-
 
154
		menuApropos.setId(ComposantId.MENU_APROPOS);
-
 
155
		menuApropos.setIcon(Images.ICONES.engrenages());
-
 
156
		
-
 
157
		Menu menuAide = new Menu();
-
 
158
		menuAide.add(menuDoc);
-
 
159
		menuAide.add(menuApropos);
97
		Button aideBouton = new Button("Aide", boutonEcouteur);
160
		
98
		aideBouton.setId(ComposantId.BTN_AIDE);
161
		SplitButton boutonAvecMenus = new SplitButton(i18nC.aide());
99
		aideBouton.setIcon(Images.ICONES.aide());
162
		boutonAvecMenus.setId(ComposantId.BTN_AIDE);
100
		barreBoutons.add(aideBouton);
163
		boutonAvecMenus.setIcon(Images.ICONES.aide());
101
		
164
		boutonAvecMenus.addSelectionListener(boutonEcouteur);
102
		SplitButton feedbackBouton = new SplitButton("Retour d'experience");
165
		boutonAvecMenus.setMenu(menuAide);
103
		feedbackBouton.setId(ComposantId.BTN_FEEDBACK);
166
		return boutonAvecMenus;
104
		feedbackBouton.addSelectionListener(boutonEcouteur);
167
	}
105
		
168
	
106
		Menu menuFeedback = new Menu();
169
	private SplitButton getBoutonAFeedback() {
107
		MenuItem menuBogue = new MenuItem("Bogues et fonctionnalités");
170
		MenuItem menuBogue = new MenuItem(i18nC.bogue());
108
		menuBogue.addSelectionListener(new SelectionListener<MenuEvent>() {  
171
		menuBogue.addSelectionListener(new SelectionListener<MenuEvent>() {  
109
			@Override
-
 
-
 
172
			@Override
110
			public void componentSelected(MenuEvent mEvent) {  
173
			public void componentSelected(MenuEvent mEvent) {  
111
				Menu me = (Menu) mEvent.getComponent();
174
				Menu me = (Menu) mEvent.getComponent();
112
				MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_BOGUE);
175
				MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_BOGUE);
113
				Info.display(Mediateur.i18nC.chargement(), "Ouverture du lien externe «{0}» en cours...", mi.getText());
176
				Info.display(Mediateur.i18nC.chargement(), lienExterneMessageTpl, mi.getText());
114
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_BOGUE);
177
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_BOGUE);
115
			}  
178
			}  
116
		});
179
		});
117
		menuBogue.setId(ComposantId.MENU_BOGUE);
180
		menuBogue.setId(ComposantId.MENU_BOGUE);
118
		menuBogue.setIcon(Images.ICONES.bogue());
181
		menuBogue.setIcon(Images.ICONES.bogue());
119
		menuFeedback.add(menuBogue);
182
		
120
		MenuItem menuCommentaire = new MenuItem("Commentaires");
183
		MenuItem menuCommentaire = new MenuItem(i18nC.remarques());
121
		menuCommentaire.addSelectionListener(new SelectionListener<MenuEvent>() {  
184
		menuCommentaire.addSelectionListener(new SelectionListener<MenuEvent>() {  
122
			@Override
-
 
Line 123... Line 185...
123
			public void componentSelected(MenuEvent mEvent) {  
185
			@Override
124
				Menu me = (Menu) mEvent.getComponent();
-
 
125
				MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_COMMENTAIRE);
186
			public void componentSelected(MenuEvent mEvent) {  
126
				Info.display(Mediateur.i18nC.chargement(), "Ouverture du lien externe «{0}» en cours...", mi.getText());
-
 
127
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_COMMENTAIRE);
-
 
128
			}  
-
 
129
		});
187
				Menu me = (Menu) mEvent.getComponent();
Line -... Line 188...
-
 
188
				MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_COMMENTAIRE);
-
 
189
				Info.display(Mediateur.i18nC.chargement(), lienExterneMessageTpl, mi.getText());
-
 
190
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_COMMENTAIRE);
-
 
191
			}  
-
 
192
		});
130
		menuCommentaire.setId(ComposantId.MENU_COMMENTAIRE);
193
		menuCommentaire.setId(ComposantId.MENU_COMMENTAIRE);
-
 
194
		menuCommentaire.setIcon(Images.ICONES.commentaire());
-
 
195
		
-
 
196
		Menu menuFeedback = new Menu();
131
		menuCommentaire.setIcon(Images.ICONES.commentaire());
197
		menuFeedback.add(menuBogue);
132
		menuFeedback.add(menuCommentaire);
198
		menuFeedback.add(menuCommentaire);
133
		
199
		
134
		feedbackBouton.setMenu(menuFeedback);
200
		SplitButton boutonAvecMenus = new SplitButton(i18nC.feedback());
135
		feedbackBouton.setIcon(Images.ICONES.flecheDedansDehors());
201
		boutonAvecMenus.setId(ComposantId.BTN_FEEDBACK);
Line 150... Line 216...
150
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_CEL);
216
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_CEL);
151
			}  
217
			}  
152
		});
218
		});
153
		menuCel.setId(ComposantId.MENU_CEL);
219
		menuCel.setId(ComposantId.MENU_CEL);
154
		menuCel.setIcon(Images.ICONES.images());
220
		menuCel.setIcon(Images.ICONES.images());
155
		menu.add(menuCel);
-
 
-
 
221
		
156
		MenuItem menuBel = new MenuItem("Biblio en ligne");
222
		MenuItem menuBel = new MenuItem("Biblio en ligne");
157
		menuBel.addSelectionListener(new SelectionListener<MenuEvent>() {  
223
		menuBel.addSelectionListener(new SelectionListener<MenuEvent>() {  
158
			@Override
224
			@Override
159
			public void componentSelected(MenuEvent mEvent) {  
225
			public void componentSelected(MenuEvent mEvent) {  
160
				Menu me = (Menu) mEvent.getComponent();
226
				Menu me = (Menu) mEvent.getComponent();
Line 163... Line 229...
163
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_BEL);
229
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_BEL);
164
			}  
230
			}  
165
		});
231
		});
166
		menuBel.setId(ComposantId.MENU_BEL);
232
		menuBel.setId(ComposantId.MENU_BEL);
167
		menuBel.setIcon(Images.ICONES.livreOuvert());
233
		menuBel.setIcon(Images.ICONES.livreOuvert());
-
 
234
		
-
 
235
		Menu menu = new Menu();
-
 
236
		menu.add(menuCel);
168
		menu.add(menuBel);
237
		menu.add(menuBel);
Line -... Line 238...
-
 
238
		
-
 
239
		SplitButton boutonAvecMenus = new SplitButton("Changez d'application...");
-
 
240
		boutonAvecMenus.setId(ComposantId.BTN_APPLIS);
169
		
241
		boutonAvecMenus.addSelectionListener(boutonEcouteur);
170
		applisBouton.setMenu(menu);
242
		boutonAvecMenus.setMenu(menu);
171
		applisBouton.setIcon(Images.ICONES.flecheBascule());
-
 
Line 172... Line -...
172
		barreBoutons.add(applisBouton);
-
 
173
		
243
		boutonAvecMenus.setIcon(Images.ICONES.flecheBascule());
174
		add(titreConteneurHtml, new RowData(.20, 1));
244
		
175
		add(barreBoutons, new RowData(.8, 1)); 
245
		return boutonAvecMenus;
176
	}
246
	}
177
 
247
	
178
	public void rafraichir(Object nouvellesDonnees) {
248
	public void rafraichir(Object nouvellesDonnees) {
179
		if (nouvellesDonnees instanceof Information) {
249
		if (nouvellesDonnees instanceof Information) {
180
			Information info = (Information) nouvellesDonnees;
250
			Information info = (Information) nouvellesDonnees;
181
			if (info.getType().equals("maj_utilisateur")) {
251
			if (info.getType().equals("maj_utilisateur")) {
182
				Utilisateur utilisateur = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
252
				Utilisateur utilisateur = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
183
				if (utilisateur.isIdentifie()) {
253
				if (utilisateur.isIdentifie()) {
184
					if (utilisateur.existeDansAnnuaire())	{
254
					if (utilisateur.existeDansAnnuaire())	{
185
						utilisateur.majUtilisateurInfoAnnuaire();
255
						utilisateur.majUtilisateurInfoAnnuaire();
186
					}
256
					}
187
					identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Bienvenue : "+utilisateur.getNomComplet())));
257
					conteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Bienvenue : "+utilisateur.getNomComplet())));
188
					identificationBouton.setText("Deconnexion");
258
					identificationBouton.setText("Deconnexion");
189
					identificationBouton.setIcon(Images.ICONES.deconnexion());
259
					identificationBouton.setIcon(Images.ICONES.deconnexion());
190
					identificationBouton.setId(ComposantId.BTN_DECONNEXION);
260
					identificationBouton.setId(ComposantId.BTN_DECONNEXION);
191
				} else {
261
				} else {
192
					identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
262
					conteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
193
					identificationBouton.setText("Identifiez vous...");
263
					identificationBouton.setText("Identifiez vous...");
194
					identificationBouton.setIcon(Images.ICONES.connexion());
264
					identificationBouton.setIcon(Images.ICONES.connexion());
195
					identificationBouton.setId(ComposantId.BTN_CONNEXION);
265
					identificationBouton.setId(ComposantId.BTN_CONNEXION);