New file |
0,0 → 1,161 |
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'identification |
HtmlContainer 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 écouteurs |
SelectionListener<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>() { |
@Override |
public 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>() { |
@Override |
public 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(); |
} |
} |