Rev 834 | Blame | 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.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ProjetListe;
import org.tela_botanica.client.modeles.Projet;
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 ContentPanel panneauPrincipal = null;
private Html entete = null;
private Html contenu = null;
private Projet projet = null;
private boolean projetChargementOk = 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);
}
private void initialiserTousLesTpl() {
initialiserEnteteHtmlTpl();
initialiserGeneralTpl();
}
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_detail}</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_citation} :</span> {citation}<br />"+
" <span class='{css_label}'>{i18n_licence} :</span> {licence}<br />"+
" <span class='{css_label}'>{i18n_langue} :</span> {langue}<br />"+
" <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 />"+
" <span class='{css_label}'>{i18n_mark_public} :</span> {mark_public}<br />"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
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_detail", i18nC.projet());
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_mots_cles", i18nC.projetMotsCles());
contenuParams.set("mots_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", projet.getLangue());
contenuParams.set("i18n_indexation_heure", i18nC.projetIndexationHeure());
contenuParams.set("indexation_heure", projet.getIndexationHeure());
contenuParams.set("i18n_indexation_duree", i18nC.projetIndexationDuree());
contenuParams.set("indexation_duree", projet.getIndexationDuree());
contenuParams.set("i18n_indexation_frequence", i18nC.projetIndexationFrequence());
contenuParams.set("indexation_frequence", projet.getIndexationFreq());
contenuParams.set("i18n_mark_public", i18nC.projetMarkPublic());
contenuParams.set("mark_public", projet.getMarkPublic());
String gHtml = formaterContenu(contenuTpl, contenuParams);
contenu.getElement().setInnerHTML(gHtml);
}
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Projet) {
projet = (Projet) nouvellesDonnees;
projetChargementOk = 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 && projetChargementOk) {
ok = true;
}
return ok;
}
}