Rev 444 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;import org.tela_botanica.client.ComposantClass;import org.tela_botanica.client.ComposantId;import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.RegistreId;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.Information;import org.tela_botanica.client.modeles.Utilisateur;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.Style;import com.extjs.gxt.ui.client.Style.Orientation;import com.extjs.gxt.ui.client.event.ComponentEvent;import com.extjs.gxt.ui.client.event.SelectionListener;import com.extjs.gxt.ui.client.util.Format;import com.extjs.gxt.ui.client.util.Params;import com.extjs.gxt.ui.client.widget.HtmlContainer;import com.extjs.gxt.ui.client.widget.Info;import com.extjs.gxt.ui.client.widget.LayoutContainer;import com.extjs.gxt.ui.client.widget.button.Button;import com.extjs.gxt.ui.client.widget.button.ButtonBar;import com.extjs.gxt.ui.client.widget.button.SplitButton;import com.extjs.gxt.ui.client.widget.layout.RowData;import com.extjs.gxt.ui.client.widget.layout.RowLayout;import com.extjs.gxt.ui.client.widget.menu.Menu;import com.extjs.gxt.ui.client.widget.menu.MenuItem;import com.google.gwt.core.client.GWT;public class EnteteVue extends LayoutContainer implements Rafraichissable {private Mediateur mediateur = null;private ButtonBar barreBoutons = null;private Button identificationBouton = null;private String identificationInfoTpl = null;private HtmlContainer identificationInfoHtml = null;public EnteteVue(Mediateur mediateurCourant) {mediateur = mediateurCourant;setLayout(new RowLayout(Orientation.HORIZONTAL));setId(ComposantId.PANNEAU_ENTETE);// TODO : ajouter la gestion de l'identificationHtmlContainer html = new HtmlContainer();StringBuffer sb = new StringBuffer();sb.append(" <div id='"+ComposantId.DIV_TITRE+"'>Collections en Ligne Demo</div>");html.setHtml(sb.toString());html.setEnableState(false);identificationInfoHtml = new HtmlContainer();identificationInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION+"'>{0}</div>";identificationInfoHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));identificationInfoHtml.setEnableState(false);// Création des écouteursSelectionListener<ComponentEvent> boutonEcouteur = new SelectionListener<ComponentEvent>() {public void componentSelected(ComponentEvent ce) {Button btn = (Button) ce.component;String message = Format.substitute("Chargement de la fenêtre «{0}» en cours...", btn.getText());if (btn.getId().equals(ComposantId.BTN_AIDE)) {((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirAide();} else if (btn.getId().equals(ComposantId.BTN_PARAMETRES)) {((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirParametres();} else if (btn.getId().equals(ComposantId.BTN_CONNEXION)) {((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirIdentification();} else if (btn.getId().equals(ComposantId.BTN_DECONNEXION)) {((Mediateur) Registry.get(RegistreId.MEDIATEUR)).deconnecterUtilisateur();Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);message = Format.substitute("Déconnexion de l'utilisateur «{0}» en cours...", utilisateurCourant.getNomComplet());} else if (btn.getId().equals(ComposantId.BTN_APPLIS)) {btn.getMenu().show(btn);message = "";}if (!message.equals("")) {Info.display(mediateur.i18nC.chargement(), message);}}};barreBoutons = new ButtonBar();barreBoutons.setButtonAlign(Style.HorizontalAlignment.RIGHT);identificationBouton = new Button("Identifiez vous...", boutonEcouteur);identificationBouton.setId(ComposantId.BTN_CONNEXION);barreBoutons.add(identificationBouton);Button parametresBouton = new Button("Paramêtres", boutonEcouteur);parametresBouton.setId(ComposantId.BTN_PARAMETRES);parametresBouton.setIconStyle(ComposantClass.ICONE_PARAMETRE);barreBoutons.add(parametresBouton);Button aideBouton = new Button("Aide", boutonEcouteur);aideBouton.setId(ComposantId.BTN_AIDE);aideBouton.setIconStyle(ComposantClass.ICONE_AIDE);barreBoutons.add(aideBouton);SplitButton applisBouton = new SplitButton("Changez d'application...");applisBouton.setId(ComposantId.BTN_APPLIS);applisBouton.addSelectionListener(boutonEcouteur);Menu menu = new Menu();MenuItem menuCel = new MenuItem("Carnet en ligne", new SelectionListener<ComponentEvent>() {@Overridepublic void componentSelected(ComponentEvent ce) {Menu me = (Menu) ce.component;MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_CEL);Info.display(mediateur.i18nC.chargement(), "Ouverture de l'application «{0}» en cours...", mi.getText());((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirApplis(ComposantId.MENU_CEL);}});menuCel.setId(ComposantId.MENU_CEL);menuCel.setIconStyle(ComposantClass.ICONE_CEL);menu.add(menuCel);MenuItem menuBel = new MenuItem("Biblio en ligne", new SelectionListener<ComponentEvent>() {@Overridepublic void componentSelected(ComponentEvent ce) {Menu me = (Menu) ce.component;MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_BEL);Info.display(mediateur.i18nC.chargement(), "Ouverture de l'application «{0}» en cours...", mi.getText());((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirApplis(ComposantId.MENU_BEL);}});menuBel.setId(ComposantId.MENU_BEL);menuBel.setIconStyle(ComposantClass.ICONE_BEL);menu.add(menuBel);applisBouton.setMenu(menu);applisBouton.setIconStyle(ComposantClass.ICONE_BASCULE);barreBoutons.add(applisBouton);add(html, new RowData(.3, 1));add(identificationInfoHtml, new RowData(.3, 1));add(barreBoutons, new RowData(.4, 1));}public void rafraichir(Object nouvelleDonnees) {if (nouvelleDonnees instanceof Information) {Information info = (Information) nouvelleDonnees;if (info.getType().equals("maj_utilisateur")) {Utilisateur utilisateur = ((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT));if (utilisateur.isIdentifie() == true) {identificationInfoHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Bienvenue : "+utilisateur.getNomComplet())));identificationBouton.setText("Deconnexion");identificationBouton.setIconStyle(ComposantClass.ICONE_DECONNEXION);identificationBouton.setId(ComposantId.BTN_DECONNEXION);} else {identificationInfoHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));identificationBouton.setText("Identifiez vous...");identificationBouton.setIconStyle(ComposantClass.ICONE_CONNEXION);identificationBouton.setId(ComposantId.BTN_CONNEXION);}}} else {GWT.log("Ce type d'objet n'est pas pris en compte par la méthode rafraichir de la classe "+getClass(), null);}layout();}}