New file |
0,0 → 1,379 |
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; |
} |
} |