Subversion Repositories eFlore/Applications.coel

Rev

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