New file |
0,0 → 1,257 |
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.vues.collection.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 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(); |
} |
|
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 />"+ |
" </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_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>"+ |
"</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_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_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_indexation_heure", i18nC.projetIndexationHeure()); |
contenuParams.set("indexation_heure", projet.getIndexationHeure()); |
|
contenuParams.set("i18n_indexation_duree", i18nC.projetIndexationDuree()); |
contenuParams.set("indexation_duree", obtenirValeurIndexationDuree(projet.getIndexationDuree())); |
|
contenuParams.set("i18n_indexation_frequence", i18nC.projetIndexationFrequence()); |
contenuParams.set("indexation_frequence", obtenirValeurIndexationFrequence(projet.getIndexationFreq())); |
|
contenuParams.set("i18n_mark_public", i18nC.projetMarkPublic()); |
contenuParams.set("mark_public", obtenirValeurPublic(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; |
} 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(); |
} |
} |