Subversion Repositories eFlore/Applications.coel

Rev

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

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