Rev 1130 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.publication;import org.tela_botanica.client.ComposantClass;import org.tela_botanica.client.ComposantId;import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.projet.ProjetListe;import org.tela_botanica.client.modeles.publication.Publication;import org.tela_botanica.client.vues.DetailVue;import com.extjs.gxt.ui.client.util.Format;import com.extjs.gxt.ui.client.util.Params;import com.extjs.gxt.ui.client.widget.ContentPanel;import com.extjs.gxt.ui.client.widget.Html;import com.extjs.gxt.ui.client.widget.layout.FitLayout;import com.google.gwt.core.client.GWT;public class PublicationDetailVue extends DetailVue implements Rafraichissable {private String enteteTpl = null;private String contenuTpl = null;private ContentPanel panneauPrincipal = null;private Html entete = null;private Html contenu = null;private Publication publication = null;private boolean publicationChargementOk = false;public PublicationDetailVue(Mediateur mediateurCourant) {super(mediateurCourant);initialiserTousLesTpl();panneauPrincipal = new ContentPanel();panneauPrincipal.setLayout(new FitLayout());panneauPrincipal.setHeaderVisible(false);panneauPrincipal.setBodyBorder(false);entete = new Html();entete.setId(ComposantId.ZONE_DETAIL_ENTETE);panneauPrincipal.setTopComponent(entete);contenu = new Html();panneauPrincipal.add(contenu);add(panneauPrincipal);}private void initialiserTousLesTpl() {initialiserEnteteHtmlTpl();initialiserGeneralTpl();}private void initialiserEnteteHtmlTpl() {enteteTpl ="<div id='{css_id}'>"+" <h1>{titre}</h1>"+" <h2>{auteurs} ({annee})<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" +"</div>";}private void initialiserGeneralTpl() {contenuTpl ="<div class='{css_corps}'>"+" <span class='{css_label}'>{i18n_nom_complet} :</span> {nom_complet}<br />"+" <span class='{css_label}'>{i18n_auteurs} :</span> {auteurs}<br />"+" <span class='{css_label}'>{i18n_titre} :</span> {titre}<br />"+" <span class='{css_label}'>{i18n_collection} :</span> {collection}<br />"+" <span class='{css_label}'>{i18n_editeur} :</span> {editeur}<br />"+" <span class='{css_label}'>{i18n_annee} :</span> {annee}<br />"+" <span class='{css_label}'>{i18n_nvt} :</span> {nvt}<br />"+" <span class='{css_label}'>{i18n_fascicule} :</span> {fascicule}<br />"+" <span class='{css_label}'>{i18n_pages} :</span> {pages}<br />"+"</div>";}public void afficherDetail() {if (publication != null) {afficherEntete();afficherDetailPublication();}layout();}private void afficherEntete() {Params enteteParams = new Params();enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE);enteteParams.set("css_meta", ComposantClass.META);enteteParams.set("i18n_id", i18nC.id());enteteParams.set("titre", publication.getTitre());enteteParams.set("auteurs", publication.getAuteur());enteteParams.set("annee", publication.getAnneeParution());enteteParams.set("id", publication.getId());enteteParams.set("guid", getGuid());enteteParams.set("projet", construireTxtProjet(publication.getIdProjet()));GWT.log("entete généré", null);String eHtml = Format.substitute(enteteTpl, enteteParams);entete.getElement().setInnerHTML(eHtml);}public String getGuid() {String guid = "URN:tela-botanica.org:";guid += "coel"+publication.getIdProjet()+":";guid += "pub"+publication.getId();return guid;}public void afficherDetailPublication() {Params contenuParams = new Params();contenuParams.set("i18n_nom_complet", i18nC.publicationNomComplet());contenuParams.set("i18n_auteurs", i18nC.publicationAuteurs());contenuParams.set("i18n_titre", i18nC.publicationTitre());contenuParams.set("i18n_collection", i18nC.publicationRevueCollection());contenuParams.set("i18n_editeur", i18nC.publicationEditeur());contenuParams.set("i18n_annee", i18nC.publicationDateParution());contenuParams.set("i18n_nvt", i18nC.publicationNvt());contenuParams.set("i18n_fascicule", i18nC.publicationFascicule());contenuParams.set("i18n_pages", i18nC.publicationPage());contenuParams.set("nom_complet", publication.getNomComplet());contenuParams.set("auteurs", publication.getAuteur());contenuParams.set("titre", publication.getTitre());contenuParams.set("collection", publication.getCollection());contenuParams.set("editeur", publication.getNomEditeur());contenuParams.set("annee", publication.getAnneeParution());contenuParams.set("nvt", publication.getIndicationNvt());contenuParams.set("fascicule", publication.getFascicule());contenuParams.set("pages", publication.getPages());String gHtml = formaterContenu(contenuTpl, contenuParams);contenu.getElement().setInnerHTML(gHtml);}public void rafraichir(Object nouvellesDonnees) {if (nouvellesDonnees instanceof Publication) {publication = (Publication) nouvellesDonnees;publicationChargementOk = true;} else if (nouvellesDonnees instanceof ProjetListe) {projets = (ProjetListe) nouvellesDonnees;projetsChargementOk = true;GWT.log("projets recu", null);} else {GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);}if (avoirDonneesChargees()) {afficherDetail();}}private boolean avoirDonneesChargees() {boolean ok = false;if (projetsChargementOk && publicationChargementOk) {ok = true;}return ok;}}