Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1011 → Rev 1012

/trunk/src/org/tela_botanica/client/vues/EnteteVue.java
28,118 → 28,184
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;
import com.google.gwt.user.client.Window;
 
public class EnteteVue extends LayoutContainer implements Rafraichissable {
 
private Mediateur mediateur = null;
private Constantes i18nC = null;
 
private String identificationInfoTpl = null;
private String titreTpl = null;
private String generalMessageTpl = null;
private String deconnexionMessageTpl = null;
private String lienExterneMessageTpl = null;
private HtmlContainer conteneurHtml = null;
private SelectionListener<ButtonEvent> boutonEcouteur = null;
private ButtonBar barreBoutons = null;
private Button identificationBouton = null;
private String identificationInfoTpl = null;
private HtmlContainer identificationConteneurHtml = null;
private SplitButton feedbackBouton = null;
private SplitButton aideBouton = null;
private SplitButton applisBouton = null;
public EnteteVue(Mediateur mediateurCourant) {
mediateur = mediateurCourant;
i18nC = mediateur.i18nC;
i18nC = Mediateur.i18nC;
setId(ComposantId.PANNEAU_ENTETE);
setLayout(new RowLayout(Orientation.HORIZONTAL));
setId(ComposantId.PANNEAU_ENTETE);
initialiserSquelettes();
boutonEcouteur = getEcouteurDesBoutons();
conteneurHtml = getIdentification();
identificationBouton = getBoutonIdentification();
feedbackBouton = getBoutonAFeedback();
aideBouton = getBoutonAide();
applisBouton = getBoutonApplications();
barreBoutons = new ButtonBar();
barreBoutons.setAlignment(Style.HorizontalAlignment.RIGHT);
barreBoutons.add(conteneurHtml);
barreBoutons.add(identificationBouton);
barreBoutons.add(aideBouton);
barreBoutons.add(feedbackBouton);
barreBoutons.add(applisBouton);
add(getTitre(), new RowData(.20, 1));
add(barreBoutons, new RowData(.8, 1));
}
private void initialiserSquelettes() {
identificationInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION+"'>{0}</div>";
titreTpl = "<div id='"+ComposantId.DIV_TITRE+"'>{0}</div>";
generalMessageTpl = "Chargement de la fenêtre «{0}» en cours...";
deconnexionMessageTpl = "Déconnexion de l'utilisateur «{0}» en cours...";
lienExterneMessageTpl = "Ouverture du lien externe «{0}» en cours...";
}
private HtmlContainer getTitre() {
HtmlContainer titreConteneurHtml = new HtmlContainer();
String titreHtml = "<div id='"+ComposantId.DIV_TITRE+"'>{0}</div>";
titreConteneurHtml.setHtml(Format.substitute(titreHtml, i18nC.appliNom()));
titreConteneurHtml.setHtml(Format.substitute(titreTpl, i18nC.appliNom()));
return titreConteneurHtml;
}
private HtmlContainer getIdentification() {
HtmlContainer conteneurHtml = new HtmlContainer();
// Création des écouteurs
conteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
return conteneurHtml;
}
private SelectionListener<ButtonEvent> getEcouteurDesBoutons() {
SelectionListener<ButtonEvent> boutonEcouteur = new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent be) {
Button btn = (Button) be.getComponent();
String id = btn.getId();
String message = "";
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)) {
if (id.equals(ComposantId.BTN_AIDE)
|| id.equals(ComposantId.BTN_FEEDBACK)
|| id.equals(ComposantId.BTN_APPLIS)) {
btn.showMenu();
} else if (id.equals(ComposantId.BTN_CONNEXION)) {
mediateur.ouvrirIdentification();
message = Format.substitute(generalMessageTpl, btn.getText());
} else if (id.equals(ComposantId.BTN_DECONNEXION)) {
mediateur.deconnecterUtilisateur();
Utilisateur utilisateurCourant = mediateur.getUtilisateur();
message = Format.substitute(deconnexionMessageTpl, utilisateurCourant.getNomComplet());
} else if (id.equals(ComposantId.BTN_APPLIS)) {
btn.getMenu().show(btn);
message = "";
}
if (!message.equals("")) {
Info.display(Mediateur.i18nC.chargement(), message);
Info.display(i18nC.chargement(), message);
}
}
};
return boutonEcouteur;
}
private Button getBoutonIdentification() {
Button bouton = new Button(i18nC.identification(), boutonEcouteur);
bouton.setId(ComposantId.BTN_CONNEXION);
return bouton;
}
private SplitButton getBoutonAide() {
MenuItem menuDoc = new MenuItem(i18nC.doc());
menuDoc.addSelectionListener(new SelectionListener<MenuEvent>() {
@Override
public void componentSelected(MenuEvent mEvent) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirAide();
}
});
menuDoc.setId(ComposantId.MENU_DOC);
menuDoc.setIcon(Images.ICONES.aide());
barreBoutons = new ButtonBar();
barreBoutons.setAlignment(Style.HorizontalAlignment.RIGHT);
identificationConteneurHtml = new HtmlContainer();
identificationInfoTpl = "<div id='"+ComposantId.DIV_IDENTIFICATION+"'>{0}</div>";
identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
barreBoutons.add(identificationConteneurHtml);
MenuItem menuApropos = new MenuItem(i18nC.apropos());
menuApropos.addSelectionListener(new SelectionListener<MenuEvent>() {
@Override
public void componentSelected(MenuEvent mEvent) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirParametres();
}
});
menuApropos.setId(ComposantId.MENU_APROPOS);
menuApropos.setIcon(Images.ICONES.engrenages());
identificationBouton = new Button("Identifiez vous...", boutonEcouteur);
identificationBouton.setId(ComposantId.BTN_CONNEXION);
barreBoutons.add(identificationBouton);
Menu menuAide = new Menu();
menuAide.add(menuDoc);
menuAide.add(menuApropos);
Button parametresBouton = new Button("À propos", boutonEcouteur);
parametresBouton.setId(ComposantId.BTN_PARAMETRES);
parametresBouton.setIcon(Images.ICONES.engrenages());
barreBoutons.add(parametresBouton);
Button aideBouton = new Button("Aide", boutonEcouteur);
aideBouton.setId(ComposantId.BTN_AIDE);
aideBouton.setIcon(Images.ICONES.aide());
barreBoutons.add(aideBouton);
SplitButton feedbackBouton = new SplitButton("Retour d'experience");
feedbackBouton.setId(ComposantId.BTN_FEEDBACK);
feedbackBouton.addSelectionListener(boutonEcouteur);
Menu menuFeedback = new Menu();
MenuItem menuBogue = new MenuItem("Bogues et fonctionnalités");
SplitButton boutonAvecMenus = new SplitButton(i18nC.aide());
boutonAvecMenus.setId(ComposantId.BTN_AIDE);
boutonAvecMenus.setIcon(Images.ICONES.aide());
boutonAvecMenus.addSelectionListener(boutonEcouteur);
boutonAvecMenus.setMenu(menuAide);
return boutonAvecMenus;
}
private SplitButton getBoutonAFeedback() {
MenuItem menuBogue = new MenuItem(i18nC.bogue());
menuBogue.addSelectionListener(new SelectionListener<MenuEvent>() {
@Override
public void componentSelected(MenuEvent mEvent) {
Menu me = (Menu) mEvent.getComponent();
MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_BOGUE);
Info.display(Mediateur.i18nC.chargement(), "Ouverture du lien externe «{0}» en cours...", mi.getText());
Info.display(Mediateur.i18nC.chargement(), lienExterneMessageTpl, mi.getText());
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_BOGUE);
}
});
menuBogue.setId(ComposantId.MENU_BOGUE);
menuBogue.setIcon(Images.ICONES.bogue());
menuFeedback.add(menuBogue);
MenuItem menuCommentaire = new MenuItem("Commentaires");
MenuItem menuCommentaire = new MenuItem(i18nC.remarques());
menuCommentaire.addSelectionListener(new SelectionListener<MenuEvent>() {
@Override
public void componentSelected(MenuEvent mEvent) {
Menu me = (Menu) mEvent.getComponent();
MenuItem mi = (MenuItem) me.getItemByItemId(ComposantId.MENU_COMMENTAIRE);
Info.display(Mediateur.i18nC.chargement(), "Ouverture du lien externe «{0}» en cours...", mi.getText());
Info.display(Mediateur.i18nC.chargement(), lienExterneMessageTpl, mi.getText());
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).ouvrirUrlExterne(ComposantId.MENU_COMMENTAIRE);
}
});
menuCommentaire.setId(ComposantId.MENU_COMMENTAIRE);
menuCommentaire.setIcon(Images.ICONES.commentaire());
Menu menuFeedback = new Menu();
menuFeedback.add(menuBogue);
menuFeedback.add(menuCommentaire);
feedbackBouton.setMenu(menuFeedback);
feedbackBouton.setIcon(Images.ICONES.flecheDedansDehors());
barreBoutons.add(feedbackBouton);
SplitButton applisBouton = new SplitButton("Changez d'application...");
applisBouton.setId(ComposantId.BTN_APPLIS);
applisBouton.addSelectionListener(boutonEcouteur);
Menu menu = new Menu();
SplitButton boutonAvecMenus = new SplitButton(i18nC.feedback());
boutonAvecMenus.setId(ComposantId.BTN_FEEDBACK);
boutonAvecMenus.addSelectionListener(boutonEcouteur);
boutonAvecMenus.setMenu(menuFeedback);
boutonAvecMenus.setIcon(Images.ICONES.flecheDedansDehors());
return boutonAvecMenus;
}
private SplitButton getBoutonApplications() {
MenuItem menuCel = new MenuItem("Carnet en ligne");
menuCel.addSelectionListener(new SelectionListener<MenuEvent>() {
@Override
152,7 → 218,7
});
menuCel.setId(ComposantId.MENU_CEL);
menuCel.setIcon(Images.ICONES.images());
menu.add(menuCel);
MenuItem menuBel = new MenuItem("Biblio en ligne");
menuBel.addSelectionListener(new SelectionListener<MenuEvent>() {
@Override
165,16 → 231,20
});
menuBel.setId(ComposantId.MENU_BEL);
menuBel.setIcon(Images.ICONES.livreOuvert());
Menu menu = new Menu();
menu.add(menuCel);
menu.add(menuBel);
applisBouton.setMenu(menu);
applisBouton.setIcon(Images.ICONES.flecheBascule());
barreBoutons.add(applisBouton);
SplitButton boutonAvecMenus = new SplitButton("Changez d'application...");
boutonAvecMenus.setId(ComposantId.BTN_APPLIS);
boutonAvecMenus.addSelectionListener(boutonEcouteur);
boutonAvecMenus.setMenu(menu);
boutonAvecMenus.setIcon(Images.ICONES.flecheBascule());
add(titreConteneurHtml, new RowData(.20, 1));
add(barreBoutons, new RowData(.8, 1));
return boutonAvecMenus;
}
 
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
184,12 → 254,12
if (utilisateur.existeDansAnnuaire()) {
utilisateur.majUtilisateurInfoAnnuaire();
}
identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Bienvenue : "+utilisateur.getNomComplet())));
conteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Bienvenue : "+utilisateur.getNomComplet())));
identificationBouton.setText("Deconnexion");
identificationBouton.setIcon(Images.ICONES.deconnexion());
identificationBouton.setId(ComposantId.BTN_DECONNEXION);
} else {
identificationConteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
conteneurHtml.setHtml(Format.substitute(identificationInfoTpl, (new Params()).add("Mode anonyme")));
identificationBouton.setText("Identifiez vous...");
identificationBouton.setIcon(Images.ICONES.connexion());
identificationBouton.setId(ComposantId.BTN_CONNEXION);