Subversion Repositories eFlore/Applications.coel

Rev

Rev 536 | Rev 733 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
60 jpm 1
package org.tela_botanica.client.vues;
2
 
61 jpm 3
import org.tela_botanica.client.ComposantId;
4
import org.tela_botanica.client.Mediateur;
60 jpm 5
import org.tela_botanica.client.RegistreId;
536 jp_milcent 6
import org.tela_botanica.client.i18n.Constantes;
516 jp_milcent 7
import org.tela_botanica.client.images.Images;
61 jpm 8
import org.tela_botanica.client.interfaces.Rafraichissable;
156 jp_milcent 9
import org.tela_botanica.client.modeles.Information;
61 jpm 10
import org.tela_botanica.client.modeles.Utilisateur;
60 jpm 11
 
12
import com.extjs.gxt.ui.client.Registry;
13
import com.extjs.gxt.ui.client.Style;
14
import com.extjs.gxt.ui.client.Style.Orientation;
499 jp_milcent 15
import com.extjs.gxt.ui.client.event.ButtonEvent;
16
import com.extjs.gxt.ui.client.event.MenuEvent;
60 jpm 17
import com.extjs.gxt.ui.client.event.SelectionListener;
66 jpm 18
import com.extjs.gxt.ui.client.util.Format;
19
import com.extjs.gxt.ui.client.util.Params;
60 jpm 20
import com.extjs.gxt.ui.client.widget.HtmlContainer;
21
import com.extjs.gxt.ui.client.widget.Info;
22
import com.extjs.gxt.ui.client.widget.LayoutContainer;
23
import com.extjs.gxt.ui.client.widget.button.Button;
24
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
25
import com.extjs.gxt.ui.client.widget.button.SplitButton;
26
import com.extjs.gxt.ui.client.widget.layout.RowData;
27
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
28
import com.extjs.gxt.ui.client.widget.menu.Menu;
29
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
156 jp_milcent 30
import com.google.gwt.core.client.GWT;
60 jpm 31
 
444 jp_milcent 32
public class EnteteVue extends LayoutContainer implements Rafraichissable {
371 jp_milcent 33
 
34
	private Mediateur mediateur = null;
536 jp_milcent 35
	private Constantes i18nC = null;
61 jpm 36
	private ButtonBar barreBoutons = null;
37
	private Button identificationBouton = null;
307 jp_milcent 38
	private String identificationInfoTpl = null;
536 jp_milcent 39
	private HtmlContainer identificationConteneurHtml = null;
61 jpm 40
 
444 jp_milcent 41
	public EnteteVue(Mediateur mediateurCourant) {
371 jp_milcent 42
		mediateur = mediateurCourant;
536 jp_milcent 43
		i18nC = mediateur.i18nC;
60 jpm 44
		setLayout(new RowLayout(Orientation.HORIZONTAL));
307 jp_milcent 45
		setId(ComposantId.PANNEAU_ENTETE);
60 jpm 46
 
536 jp_milcent 47
		HtmlContainer titreConteneurHtml = new HtmlContainer();
48
		String titreHtml = "<div id='"+ComposantId.DIV_TITRE+"'>{0}</div>";
49
		titreConteneurHtml.setHtml(Format.substitute(titreHtml, i18nC.appliNom()));
60 jpm 50
 
61 jpm 51
		// Création des écouteurs
499 jp_milcent 52
		SelectionListener<ButtonEvent> boutonEcouteur = new SelectionListener<ButtonEvent>() {
53
			public void componentSelected(ButtonEvent be) {
54
				Button btn = (Button) be.getComponent();
372 jp_milcent 55
 
371 jp_milcent 56
				String message = Format.substitute("Chargement de la fenêtre «{0}» en cours...", btn.getText());
372 jp_milcent 57
 
61 jpm 58
				if (btn.getId().equals(ComposantId.BTN_AIDE)) {
59
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirAide();
60
				} else if (btn.getId().equals(ComposantId.BTN_PARAMETRES)) {
61
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirParametres();
65 jpm 62
				} else if (btn.getId().equals(ComposantId.BTN_CONNEXION)) {
61 jpm 63
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirIdentification();
65 jpm 64
				} else if (btn.getId().equals(ComposantId.BTN_DECONNEXION)) {
65
					((Mediateur) Registry.get(RegistreId.MEDIATEUR)).deconnecterUtilisateur();
371 jp_milcent 66
					Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
67
					message = Format.substitute("Déconnexion de l'utilisateur «{0}» en cours...", utilisateurCourant.getNomComplet());
61 jpm 68
				} else if (btn.getId().equals(ComposantId.BTN_APPLIS)) {
69
					btn.getMenu().show(btn);
372 jp_milcent 70
					message = "";
61 jpm 71
				}
372 jp_milcent 72
 
73
				if (!message.equals("")) {
74
					Info.display(mediateur.i18nC.chargement(), message);
75
				}
60 jpm 76
			}
77
		};
78
 
61 jpm 79
		barreBoutons = new ButtonBar();
499 jp_milcent 80
		barreBoutons.setAlignment(Style.HorizontalAlignment.RIGHT);
357 jp_milcent 81
 
544 jp_milcent 82
		identificationConteneurHtml = new HtmlContainer();
83
		identificationInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION+"'>{0}</div>";
84
		identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
85
		barreBoutons.add(identificationConteneurHtml);
86
 
357 jp_milcent 87
		identificationBouton = new Button("Identifiez vous...", boutonEcouteur);
88
		identificationBouton.setId(ComposantId.BTN_CONNEXION);
89
		barreBoutons.add(identificationBouton);
90
 
61 jpm 91
		Button parametresBouton = new Button("Paramêtres", boutonEcouteur);
92
		parametresBouton.setId(ComposantId.BTN_PARAMETRES);
516 jp_milcent 93
		parametresBouton.setIcon(Images.ICONES.engrenages());
61 jpm 94
		barreBoutons.add(parametresBouton);
357 jp_milcent 95
 
61 jpm 96
		Button aideBouton = new Button("Aide", boutonEcouteur);
97
		aideBouton.setId(ComposantId.BTN_AIDE);
516 jp_milcent 98
		aideBouton.setIcon(Images.ICONES.aide());
61 jpm 99
		barreBoutons.add(aideBouton);
357 jp_milcent 100
 
61 jpm 101
		SplitButton applisBouton = new SplitButton("Changez d'application...");
102
		applisBouton.setId(ComposantId.BTN_APPLIS);
103
		applisBouton.addSelectionListener(boutonEcouteur);
60 jpm 104
 
61 jpm 105
		Menu menu = new Menu();
499 jp_milcent 106
		MenuItem menuCel = new MenuItem("Carnet en ligne");
107
		menuCel.addSelectionListener(new SelectionListener<MenuEvent>() {
61 jpm 108
			@Override
499 jp_milcent 109
			public void componentSelected(MenuEvent mEvent) {
110
				Menu me = (Menu) mEvent.getComponent();
61 jpm 111
				MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_CEL);
371 jp_milcent 112
				Info.display(mediateur.i18nC.chargement(), "Ouverture de l'application «{0}» en cours...", mi.getText());
61 jpm 113
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirApplis(ComposantId.MENU_CEL);
114
			}
115
		});
116
		menuCel.setId(ComposantId.MENU_CEL);
516 jp_milcent 117
		menuCel.setIcon(Images.ICONES.images());
61 jpm 118
		menu.add(menuCel);
499 jp_milcent 119
		MenuItem menuBel = new MenuItem("Biblio en ligne");
120
		menuBel.addSelectionListener(new SelectionListener<MenuEvent>() {
61 jpm 121
			@Override
499 jp_milcent 122
			public void componentSelected(MenuEvent mEvent) {
123
				Menu me = (Menu) mEvent.getComponent();
61 jpm 124
				MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_BEL);
371 jp_milcent 125
				Info.display(mediateur.i18nC.chargement(), "Ouverture de l'application «{0}» en cours...", mi.getText());
61 jpm 126
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirApplis(ComposantId.MENU_BEL);
127
			}
128
		});
129
		menuBel.setId(ComposantId.MENU_BEL);
516 jp_milcent 130
		menuBel.setIcon(Images.ICONES.livreOuvert());
61 jpm 131
		menu.add(menuBel);
132
 
69 jpm 133
		applisBouton.setMenu(menu);
516 jp_milcent 134
		applisBouton.setIcon(Images.ICONES.flecheBascule());
61 jpm 135
		barreBoutons.add(applisBouton);
136
 
536 jp_milcent 137
		add(titreConteneurHtml, new RowData(.3, 1));
544 jp_milcent 138
		add(barreBoutons, new RowData(.7, 1));
60 jpm 139
	}
61 jpm 140
 
141
	public void rafraichir(Object nouvelleDonnees) {
156 jp_milcent 142
		if (nouvelleDonnees instanceof Information) {
143
			Information info = (Information) nouvelleDonnees;
144
			if (info.getType().equals("maj_utilisateur")) {
277 jp_milcent 145
				Utilisateur utilisateur = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));
156 jp_milcent 146
				if (utilisateur.isIdentifie() == true) {
536 jp_milcent 147
					identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Bienvenue : "+utilisateur.getNomComplet())));
156 jp_milcent 148
					identificationBouton.setText("Deconnexion");
516 jp_milcent 149
					identificationBouton.setIcon(Images.ICONES.deconnexion());
156 jp_milcent 150
					identificationBouton.setId(ComposantId.BTN_DECONNEXION);
151
				} else {
536 jp_milcent 152
					identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
156 jp_milcent 153
					identificationBouton.setText("Identifiez vous...");
516 jp_milcent 154
					identificationBouton.setIcon(Images.ICONES.connexion());
156 jp_milcent 155
					identificationBouton.setId(ComposantId.BTN_CONNEXION);
156
				}
65 jpm 157
			}
156 jp_milcent 158
		} else {
358 jp_milcent 159
			GWT.log("Ce type d'objet n'est pas pris en compte par la méthode rafraichir de la classe "+getClass(), null);
61 jpm 160
		}
156 jp_milcent 161
		layout();
61 jpm 162
	}
60 jpm 163
}