Rev 813 | Rev 851 | Go to most recent revision | Blame | Compare with Previous | 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.Collection;
import org.tela_botanica.client.modeles.CollectionBotanique;
import org.tela_botanica.client.modeles.ProjetListe;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.ValeurListe;
import com.extjs.gxt.ui.client.Style.Scroll;
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.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.layout.AnchorLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.google.gwt.core.client.GWT;
public class CollectionDetailVue extends DetailVue implements Rafraichissable {
private Structure structure = null;
private String enteteTpl = null;
private String generalTpl = null;
private String auteurTpl = null;
private String publicationTpl = null;
private String descriptionTpl = null;
private String contenuTpl = null;
private String documentTpl = null;
private String inventaireTpl = null;
private Collection collection = null;
private boolean collectionChargementOk = false;
private ContentPanel panneauPrincipal = null;
private Html entete = null;
private TabPanel onglets = null;
private TabItem generalOnglet = null;
private TabItem auteurOnglet = null;
private TabItem publicationOnglet = null;
private TabItem descriptionOnglet = null;
private TabItem contenuOnglet = null;
private TabItem documentOnglet = null;
private TabItem inventaireOnglet = null;
public CollectionDetailVue(Mediateur mediateurCourant) {
super(mediateurCourant);
initialiserTousLesTpl();
chargerOntologie();
panneauPrincipal = new ContentPanel();
panneauPrincipal.setLayout(new FlowLayout());
panneauPrincipal.setHeaderVisible(false);
panneauPrincipal.setBodyBorder(false);
entete = new Html();
entete.setId(ComposantId.ZONE_DETAIL_ENTETE);
panneauPrincipal.setTopComponent(entete);
onglets = new TabPanel();
onglets.setId(ComposantId.ZONE_DETAIL_CORPS);
onglets.setHeight("100%");
onglets.setBodyBorder(false);
generalOnglet = new TabItem(i18nC.structureInfoGeneral());
generalOnglet.setLayout(new AnchorLayout());
generalOnglet.setScrollMode(Scroll.AUTO);
onglets.add(generalOnglet);
auteurOnglet = new TabItem(i18nC.collectionAuteur());
auteurOnglet.setLayout(new AnchorLayout());
auteurOnglet.setScrollMode(Scroll.AUTO);
onglets.add(auteurOnglet);
publicationOnglet = new TabItem(i18nC.collectionPublication());
publicationOnglet.setLayout(new AnchorLayout());
publicationOnglet.setScrollMode(Scroll.AUTO);
onglets.add(publicationOnglet);
descriptionOnglet = new TabItem(i18nC.collectionDescription());
descriptionOnglet.setLayout(new AnchorLayout());
descriptionOnglet.setScrollMode(Scroll.AUTO);
onglets.add(descriptionOnglet);
contenuOnglet = new TabItem(i18nC.collectionContenu());
contenuOnglet.setLayout(new AnchorLayout());
contenuOnglet.setScrollMode(Scroll.AUTO);
onglets.add(contenuOnglet);
documentOnglet = new TabItem(i18nC.collectionDocument());
documentOnglet.setLayout(new AnchorLayout());
documentOnglet.setScrollMode(Scroll.AUTO);
onglets.add(documentOnglet);
inventaireOnglet = new TabItem(i18nC.collectionInventaire());
inventaireOnglet.setLayout(new AnchorLayout());
inventaireOnglet.setScrollMode(Scroll.AUTO);
onglets.add(inventaireOnglet);
panneauPrincipal.add(onglets);
add(panneauPrincipal);
}
private void initialiserTousLesTpl() {
initialiserEnteteHtmlTpl();
initialiserGeneralTpl();
initialiserAuteurTpl();
initialiserPublicationTpl();
initialiserContenuTpl();
initialiserDescriptionTpl();
initialiserDocumentTpl();
initialiserInventaireTpl();
}
private void initialiserEnteteHtmlTpl() {
enteteTpl =
"<div id='{css_id}'>"+
" <h1>{nom}</h1>"+
" <h2>{structure}<span class='{css_meta}'>{projet} <br /> {i18n_id}:{id} - {guid}</span></h2>" +
"</div>";
}
private void initialiserGeneralTpl() {
generalTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_identification}</h2>"+
" <span class='{css_label}'>{i18n_nom_alternatif} :</span> {nom_alternatif}<br />"+
" <span class='{css_label}'>{i18n_acronyme} :</span> {acronyme}<br />"+
" <span class='{css_label}'>{i18n_code} :</span> {code}<br />"+
" <span class='{css_label}'>{i18n_cote} :</span> {cote}<br />"+
" <span class='{css_label}'>{i18n_mere} :</span> {mere}<br />"+
" <span class='{css_label}'>{i18n_type_ncd} :</span> {type_ncd}<br />"+
" <span class='{css_label}'>{i18n_type_botanique} :</span> {type_botanique}<br />"+
" <span class='{css_label}'>{i18n_type_depot} :</span> {type_depot}<br />"+
" <span class='{css_label}'>{i18n_nbre_echantillon} :</span> {nbre_echantillon}<br />"+
" </div>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_general_collection_titre}</h2>"+
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"+
" <span class='{css_label}'>{i18n_description_specialiste} :</span> {description_specialiste}<br />"+
" <span class='{css_label}'>{i18n_historique} :</span> {historique}<br />"+
" <span class='{css_label}'>{i18n_web} :</span> {web}<br />"+
" <span class='{css_label}'>{i18n_groupement_principe} :</span> {groupement_principe}<br />"+
" <span class='{css_label}'>{i18n_groupement_but} :</span> {groupement_but}<br />"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void initialiserAuteurTpl() {
auteurTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_auteur}</h2>"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void initialiserPublicationTpl() {
publicationTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_publication}</h2>"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void initialiserDescriptionTpl() {
descriptionTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_description}</h2>"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void initialiserContenuTpl() {
contenuTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_contenu}</h2>"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void initialiserDocumentTpl() {
documentTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_document}</h2>"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void initialiserInventaireTpl() {
inventaireTpl =
"<div class='{css_corps}'>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_inventaire}</h2>"+
" </div>"+
" <hr class='{css_clear}'/>"+
"</div>";
}
private void chargerOntologie() {
String[] listesCodes = {"typeCollectionBota", "typeCollectionNcd", "typeDepot"};
lancerChargementListesValeurs(listesCodes);
}
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Collection) {
collection = (Collection) nouvellesDonnees;
collectionChargementOk = true;
} else if (nouvellesDonnees instanceof ProjetListe) {
projets = (ProjetListe) nouvellesDonnees;
projetsChargementOk = true;
} else if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe listeValeursReceptionnee = (ValeurListe) nouvellesDonnees;
receptionerListeValeurs(listeValeursReceptionnee);
} else {
GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null);
}
if (avoirDonneesChargees()) {
afficherDetail();
}
}
private boolean avoirDonneesChargees() {
boolean ok = false;
if (projetsChargementOk && collectionChargementOk && ontologieChargementOk) {
ok = true;
}
return ok;
}
private void afficherDetail() {
if (collection != null) {
afficherEntete();
afficherIdentification();
afficherAuteur();
afficherPublication();
afficherDescription();
afficherContenu();
afficherDocument();
afficherInventaire();
}
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("nom", collection.getNom());
enteteParams.set("structure", collection.getStructureNom());
enteteParams.set("id", collection.getId());
enteteParams.set("guid", collection.getGuid());
enteteParams.set("projet", construireTxtProjet(collection.getIdProjet()));
String eHtml = Format.substitute(enteteTpl, enteteParams);
entete.getElement().setInnerHTML(eHtml);
}
private void afficherIdentification() {
Params generalParams = new Params();
generalParams.set("i18n_titre_identification", i18nC.titreAdministratif());
generalParams.set("i18n_nom_alternatif", i18nC.nomAlternatif());
generalParams.set("i18n_acronyme", i18nC.acronyme());
generalParams.set("i18n_code", i18nC.code());
generalParams.set("i18n_cote", i18nC.cote());
generalParams.set("i18n_mere", i18nC.collectionMere());
generalParams.set("i18n_type_ncd", i18nC.typeCollectionNcd());
generalParams.set("i18n_type_botanique", i18nC.typeCollectionBotanique());
generalParams.set("i18n_type_depot", i18nC.typeDepot());
generalParams.set("i18n_nbre_echantillon", i18nC.nbreEchantillon());
generalParams.set("i18n_general_collection_titre", i18nC.collectionGeneralTitre());
generalParams.set("i18n_description", i18nC.description());
generalParams.set("i18n_description_specialiste", i18nC.descriptionSpecialiste());
generalParams.set("i18n_historique", i18nC.historique());
generalParams.set("i18n_web", i18nC.siteWeb());
generalParams.set("i18n_groupement_principe", i18nC.groupementPrincipe());
generalParams.set("i18n_groupement_but", i18nC.groupementBut());
String acronyme = construireTxtTruck(collection.getIdAlternatif());
String code = construireTxtTruck(collection.getCode());
String nomAlternatif = construireTxtTruck(collection.getNomAlternatif());
String urls = construireTxtTruck(collection.getUrls());
String typeNcd = construireTxtListeOntologie(collection.getTypeNcd());
String typeBota = construireTxtListeOntologie(collection.getBotanique().getType());
String typeDepot = construireTxtListeOntologie(collection.getTypeDepot());
generalParams.set("nom_alternatif", nomAlternatif);
generalParams.set("acronyme", acronyme);
generalParams.set("code", code);
generalParams.set("cote", collection.getCote());
generalParams.set("mere", collection.getCollectionMereNom());
generalParams.set("type_ncd", typeNcd);
generalParams.set("type_botanique", typeBota);
generalParams.set("type_depot", typeDepot);
generalParams.set("nbre_echantillon", collection.getBotanique().getNbreEchantillon());
generalParams.set("description", collection.getDescription());
generalParams.set("description_specialiste", collection.getDescriptionSpecialiste());
generalParams.set("historique", collection.getHistorique());
generalParams.set("web", urls);
generalParams.set("groupement_principe", collection.getGroupementPrincipe());
generalParams.set("groupement_but", collection.getGroupementBut());
afficherOnglet(generalTpl, generalParams, generalOnglet);
}
private void afficherAuteur() {
Params auteurParams = new Params();
auteurParams.set("i18n_titre_auteur", i18nC.collectionAuteurTitre());
afficherOnglet(auteurTpl, auteurParams, auteurOnglet);
}
private void afficherPublication() {
Params publicationParams = new Params();
publicationParams.set("i18n_titre_publication", i18nC.collectionPublicationTitre());
afficherOnglet(publicationTpl, publicationParams, publicationOnglet);
}
private void afficherDescription() {
Params descriptionParams = new Params();
descriptionParams.set("i18n_titre_description", i18nC.collectionDescriptionTitre());
afficherOnglet(descriptionTpl, descriptionParams, descriptionOnglet);
}
private void afficherContenu() {
Params contenuParams = new Params();
contenuParams.set("i18n_titre_contenu", i18nC.collectionContenuTitre());
afficherOnglet(contenuTpl, contenuParams, contenuOnglet);
}
private void afficherDocument() {
Params documentParams = new Params();
documentParams.set("i18n_titre_document", i18nC.collectionDocumentTitre());
afficherOnglet(documentTpl, documentParams, documentOnglet);
}
private void afficherInventaire() {
Params inventaireParams = new Params();
inventaireParams.set("i18n_titre_inventaire", i18nC.collectionInventaireTitre());
afficherOnglet(inventaireTpl, inventaireParams, inventaireOnglet);
}
protected String getNomStructure() {
String nomStructure = "";
if (structure != null) {
nomStructure = structure.getNom();
} else {
nomStructure = collection.getIdStructure();
}
return nomStructure;
}
}