Subversion Repositories eFlore/Applications.coel

Rev

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

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