Subversion Repositories eFlore/Applications.coel

Rev

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

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