Subversion Repositories eFlore/Applications.coel

Rev

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

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