Rev 1121 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.projet;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.ValeurListe;import org.tela_botanica.client.modeles.projet.Projet;import org.tela_botanica.client.modeles.projet.ProjetListe;import org.tela_botanica.client.util.UtilString;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 ProjetDetailVue extends DetailVue implements Rafraichissable {private String enteteTpl = null;private String contenuTpl = null;private String indexationTpl = null;private ContentPanel panneauPrincipal = null;private Html entete = null;private Html contenu = null;private final String listeValeurIndexationDureeId = "dureesIndexation";private final int listeValeurIndexationDureeInt = 1072;private final String listeValeurIndexationFrequenceId = "frequencesIndexation";private final int listeValeurIndexationFrequenceInt = 1073;private final String listeLanguesId = "langues";private final int listeLanguesInt = 1071;private Projet projet = null;private boolean projetChargementOk = false;private ValeurListe valeurListeIndexationDuree = null;private boolean listeIndexationDureeChargee = false;private ValeurListe valeurListeIndexationFrequence = null;private boolean listeIndexationFrequenceChargee = false;private ValeurListe valeurListeLangue = null;private boolean listeLangueChargee = false;public ProjetDetailVue(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);mediateurCourant.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId);mediateurCourant.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId);mediateurCourant.obtenirListeValeurEtRafraichir(this, listeLanguesId);}private void initialiserTousLesTpl() {initialiserEnteteHtmlTpl();initialiserGeneralTpl();initialiserIndexationTpl();}private void initialiserEnteteHtmlTpl() {enteteTpl ="<div id='{css_id}'>"+" <h1>{projet}</h1>"+" <h2>{abreviation} <span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" +"</div>";}private void initialiserGeneralTpl() {contenuTpl ="<div class='{css_corps}'>"+" <div class='{css_fieldset}'>"+" <h2>{i18n_titre_info_generale}</h2>"+" <span class='{css_label}'>{i18n_nom} :</span> {nom}<br />"+" <span class='{css_label}'>{i18n_abreviation} :</span> {abreviation}<br />"+" <span class='{css_label}'>{i18n_resume} :</span> {resume}<br />"+" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"+" <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />"+" </div>"+" <div class='{css_fieldset}'>"+" <h2>{i18n_titre_complement}</h2>"+" <span class='{css_label}'>{i18n_mot_cles} :</span> {mot_cles}<br />"+" <span class='{css_label}'>{i18n_citation} :</span> {citation}<br />"+" <span class='{css_label}'>{i18n_licence} :</span> {licence}<br />"+" <span class='{css_label}'>{i18n_langue} :</span> {langue}<br />"+" </div>"+" <hr class='{css_clear}'/>"+" <div class='{css_fieldset}'>"+" <h2>{i18n_titre_indexation}</h2>"+" <span class='{css_label}'>{i18n_mark_public} :</span> {mark_public}<br />"+" {indexation}"+" </div>"+"</div>";}private void initialiserIndexationTpl() {indexationTpl =" <span class='{css_label}'>{i18n_indexation_heure} :</span> {indexation_heure}<br />"+" <span class='{css_label}'>{i18n_indexation_duree} :</span> {indexation_duree}<br />"+" <span class='{css_label}'>{i18n_indexation_frequence} :</span> {indexation_frequence}<br />";}public void afficherDetail() {if (projet != null) {afficherEntete();afficherDetailProjet();}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("id", projet.getId());enteteParams.set("guid", getGuid());enteteParams.set("projet", construireTxtProjet(projet.getId()));enteteParams.set("abreviation", projet.getAbreviation());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"+projet.getId()+":";guid += "pro"+projet.getId();return guid;}public void afficherDetailProjet() {Params contenuParams = new Params();contenuParams.set("i18n_titre_info_generale", i18nC.projetTitreInfoGenerale());contenuParams.set("i18n_nom", i18nC.nom());contenuParams.set("nom", projet.getNom());contenuParams.set("i18n_abreviation", i18nC.projetAbreviation());contenuParams.set("abreviation", projet.getAbreviation());contenuParams.set("i18n_resume", i18nC.projetResume());contenuParams.set("resume", projet.getResume());contenuParams.set("i18n_description", i18nC.projetDescription());contenuParams.set("description", projet.getDescription());contenuParams.set("i18n_url", i18nC.projetUrl());contenuParams.set("url", projet.getUrl());contenuParams.set("i18n_titre_complement", i18nC.projetTitreComplement());contenuParams.set("i18n_mot_cles", i18nC.projetMotsCles());contenuParams.set("mot_cles", projet.getMotsCles());contenuParams.set("i18n_citation", i18nC.projetCitation());contenuParams.set("citation", projet.getCitation());contenuParams.set("i18n_licence", i18nC.projetLicence());contenuParams.set("licence", projet.getLicence());contenuParams.set("i18n_langue", i18nC.projetLangue());contenuParams.set("langue", obtenirValeurLangue(projet.getLangue()));contenuParams.set("i18n_titre_indexation", i18nC.projetTitreIndexation());contenuParams.set("i18n_mark_public", i18nC.projetMarkPublic());contenuParams.set("mark_public", obtenirValeurPublic(projet.getMarkPublic()));contenuParams.set("indexation", creerIndexation());String gHtml = formaterContenu(contenuTpl, contenuParams);contenu.getElement().setInnerHTML(gHtml);}private String corrigerIndexationHeure(String heureMinuteSecondeEnBdd) {String heureMinute = "";if (!UtilString.isEmpty(heureMinuteSecondeEnBdd)) {heureMinute = heureMinuteSecondeEnBdd.replaceAll(":00$", "");}return heureMinute;}private String creerIndexation() {String html = "";if (projet.getMarkPublic().equals("1")) {Params indexationParams = new Params();indexationParams.set("i18n_indexation_heure", i18nC.projetIndexationHeure());indexationParams.set("indexation_heure", corrigerIndexationHeure(projet.getIndexationHeure()));indexationParams.set("i18n_indexation_duree", i18nC.projetIndexationDuree());indexationParams.set("indexation_duree", obtenirValeurIndexationDuree(projet.getIndexationDuree()));indexationParams.set("i18n_indexation_frequence", i18nC.projetIndexationFrequence());indexationParams.set("indexation_frequence", obtenirValeurIndexationFrequence(projet.getIndexationFreq()));html = Format.substitute(indexationTpl, indexationParams);}return html;}public void rafraichir(Object nouvellesDonnees) {if (nouvellesDonnees instanceof Projet) {projet = (Projet) nouvellesDonnees;projetChargementOk = true;} else if (nouvellesDonnees instanceof ProjetListe) {projets = (ProjetListe) nouvellesDonnees;projetsChargementOk = true;} else if(nouvellesDonnees instanceof ValeurListe) {ValeurListe nValeurListe = (ValeurListe)nouvellesDonnees;if (nValeurListe.getId() == listeValeurIndexationDureeInt) {valeurListeIndexationDuree = (ValeurListe)nouvellesDonnees;listeIndexationDureeChargee = true;}if (nValeurListe.getId() == listeValeurIndexationFrequenceInt) {valeurListeIndexationFrequence = (ValeurListe)nouvellesDonnees;listeIndexationFrequenceChargee = true;}if (nValeurListe.getId() == listeLanguesInt) {valeurListeLangue = (ValeurListe)nouvellesDonnees;listeLangueChargee = true;}} else {GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);}if (avoirDonneesChargees()) {afficherDetail();}}private boolean avoirDonneesChargees() {boolean ok = false;if (projetsChargementOk && projetChargementOk && listeIndexationDureeChargee && listeIndexationFrequenceChargee && listeLangueChargee) {ok = true;}return ok;}private String obtenirValeurIndexationDuree(String id) {if (valeurListeIndexationDuree.get(id) != null) {return valeurListeIndexationDuree.get(id).getNom();}return "";}private String obtenirValeurIndexationFrequence(String id) {if (valeurListeIndexationFrequence.get(id) != null) {return valeurListeIndexationFrequence.get(id).getNom();}return "";}private String obtenirValeurLangue(String id) {if (valeurListeLangue.get(id) != null) {return valeurListeLangue.get(id).getNom();}return "";}private String obtenirValeurPublic(String ouiNon) {if (ouiNon.equals("1")) {return i18nC.oui();}return i18nC.non();}}