25,9 → 25,11 |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
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.FitLayout; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.google.gwt.core.client.GWT; |
import com.google.gwt.i18n.client.DateTimeFormat; |
|
public class StructureDetailPanneauVue extends LayoutContainer implements Rafraichissable { |
|
36,7 → 38,10 |
private String enteteTpl = null; |
private String identificationTpl = null; |
private String personnelTpl = null; |
private String tableauPersonnelTpl = null; |
private String lignePersonnelTpl = null; |
private String conservationTpl = null; |
private String valorisationTpl = null; |
|
private Structure structure = null; |
private StructureAPersonneListe personnel = null; |
48,6 → 53,8 |
private TabPanel onglets = null; |
private TabItem identificationOnglet = null; |
private TabItem personnelOnglet = null; |
private TabItem conservationOnglet = null; |
private TabItem valorisationOnglet = null; |
|
public StructureDetailPanneauVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
61,8 → 68,7 |
panneauPrincipal.setLayout(new FlowLayout()); |
panneauPrincipal.setHeaderVisible(false); |
panneauPrincipal.setBodyBorder(false); |
|
|
|
entete = new Html(); |
entete.setId(ComposantId.ZONE_DETAIL_ENTETE); |
panneauPrincipal.setTopComponent(entete); |
70,26 → 76,34 |
onglets = new TabPanel(); |
onglets.setId(ComposantId.ZONE_DETAIL_CORPS); |
onglets.setHeight("100%"); |
onglets.setBorders(false); |
onglets.setBodyBorder(false); |
|
identificationOnglet = new TabItem("Général"); |
identificationOnglet.setBorders(false); |
identificationOnglet.setLayout(new AnchorLayout()); |
identificationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(identificationOnglet); |
|
personnelOnglet = new TabItem("Personnel"); |
personnelOnglet.setBorders(false); |
personnelOnglet.setLayout(new AnchorLayout()); |
personnelOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(personnelOnglet); |
|
conservationOnglet = new TabItem("Conservation"); |
conservationOnglet.setLayout(new AnchorLayout()); |
conservationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(conservationOnglet); |
|
valorisationOnglet = new TabItem("Valorisation"); |
valorisationOnglet.setLayout(new AnchorLayout()); |
valorisationOnglet.setScrollMode(Scroll.AUTO); |
onglets.add(valorisationOnglet); |
|
panneauPrincipal.add(onglets); |
add(panneauPrincipal); |
} |
|
private void afficherDetailInstitution(Structure structureCourante) { |
if (structureCourante != null) { |
structure = structureCourante; |
private void afficherDetailInstitution() { |
if (structure != null) { |
personnel = structure.getPersonnel(); |
valorisation = structure.getValorisation(); |
conservation = structure.getConservation(); |
96,6 → 110,15 |
|
afficherEntete(); |
afficherIdentification(); |
if (personnel != null) { |
afficherPersonnel(); |
} |
if (conservation != null) { |
//afficherConservation(); |
} |
if (valorisation != null) { |
//afficherValorisation(); |
} |
} |
layout(); |
} |
102,9 → 125,14 |
|
private void afficherEntete() { |
Params enteteParams = new Params(); |
enteteParams.set("id", ComposantId.ZONE_DETAIL_ENTETE); |
enteteParams.set("css_id", ComposantId.ZONE_DETAIL_ENTETE); |
enteteParams.set("css_meta", ComposantClass.META); |
|
enteteParams.set("nom", structure.getNom()); |
enteteParams.set("ville", structure.getVille()); |
enteteParams.set("id", structure.getId()); |
enteteParams.set("guid", structure.getGuid()); |
enteteParams.set("projet", structure.getIdProjet()); |
|
String eHtml = Format.substitute(enteteTpl, enteteParams); |
entete.getElement().setInnerHTML(eHtml); |
112,17 → 140,52 |
|
private void afficherIdentification() { |
Params contenuParams = new Params(); |
contenuParams.set("css_class", ComposantClass.DETAIL_CORPS_CONTENU); |
contenuParams.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU); |
contenuParams.set("css_label", ComposantClass.LABEL); |
contenuParams.set("css_fieldset", ComposantClass.FIELDSET); |
contenuParams.set("css_clear", ComposantClass.CLEAR); |
|
contenuParams.set("i18n_titre_administratif", mediateur.i18nC.titreAdministratif()); |
contenuParams.set("i18n_acronyme", mediateur.i18nC.acronyme()); |
contenuParams.set("i18n_statut", mediateur.i18nC.statut()); |
contenuParams.set("i18n_date_fondation", mediateur.i18nC.dateFondation()); |
contenuParams.set("i18n_nbre_personnel", mediateur.i18nC.nbrePersonnel()); |
|
contenuParams.set("i18n_titre_description", mediateur.i18nC.description()); |
contenuParams.set("i18n_description", mediateur.i18nC.description()); |
|
contenuParams.set("i18n_titre_adresse", mediateur.i18nC.adresse()); |
contenuParams.set("i18n_adresse", mediateur.i18nC.adresse()); |
contenuParams.set("i18n_cp", mediateur.i18nC.codePostal()); |
contenuParams.set("i18n_ville", mediateur.i18nC.ville()); |
contenuParams.set("i18n_region", mediateur.i18nC.region()); |
contenuParams.set("i18n_pays", mediateur.i18nC.pays()); |
|
contenuParams.set("i18n_titre_communication", mediateur.i18nC.titreCommunication()); |
contenuParams.set("i18n_tel", mediateur.i18nC.telephone()); |
contenuParams.set("i18n_fax", mediateur.i18nC.fax()); |
contenuParams.set("i18n_courriel", mediateur.i18nC.courriel()); |
contenuParams.set("i18n_acces", mediateur.i18nC.acces()); |
contenuParams.set("i18n_web", mediateur.i18nC.siteWeb()); |
|
contenuParams.set("acronyme", structure.getIdAlternatif()); |
contenuParams.set("statut", structure.getTypePrive()+structure.getTypePublic()); |
contenuParams.set("date_fondation", structure.getDateFondationFormate("dd/MM/yyyy")); |
contenuParams.set("nbre_personnel", structure.getNbrePersonne()); |
|
contenuParams.set("description", structure.getDescription()); |
|
contenuParams.set("adresse", structure.getAdresse()); |
contenuParams.set("code_postal", structure.getCodePostal()); |
contenuParams.set("cp", structure.getCodePostal()); |
contenuParams.set("ville", structure.getVille()); |
contenuParams.set("region", structure.getRegion()); |
contenuParams.set("pays", structure.getPays()); |
|
contenuParams.set("tel", structure.getTelephone()); |
contenuParams.set("fax", structure.getFax()); |
contenuParams.set("courriel", structure.getCourriel()); |
contenuParams.set("acces", structure.getConditionAcces()); |
contenuParams.set("web", structure.getUrl()); |
|
String cHtml = Format.substitute(identificationTpl, contenuParams); |
HtmlContainer corpsConteneurDuHtml = new HtmlContainer(cHtml); |
131,21 → 194,39 |
} |
|
private void afficherPersonnel() { |
String tableauPersonnelHtml = ""; |
if (personnel.size() > 0) { |
tableauPersonnelHtml = construireTableauDuPersonnel(); |
} |
|
Params contenuParams = new Params(); |
contenuParams.set("css_class", ComposantClass.DETAIL_CORPS_CONTENU); |
contenuParams.set("fonction", mediateur.i18nC.fonction()); |
contenuParams.set("prenom", mediateur.i18nC.prenom()); |
contenuParams.set("nom", mediateur.i18nC.nom()); |
contenuParams.set("tel", mediateur.i18nC.telephoneFixe()); |
contenuParams.set("fax", mediateur.i18nC.fax()); |
contenuParams.set("courriel", mediateur.i18nC.courrielPrincipal()); |
contenuParams.set("statut", mediateur.i18nC.statut()); |
contenuParams.set("tps_w", mediateur.i18nC.tpsTravail()); |
contenuParams.set("specialite", mediateur.i18nC.specialite()); |
contenuParams.set("contact", mediateur.i18nC.boolContact()); |
contenuParams.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU); |
contenuParams.set("i18n_titre_personnel", mediateur.i18nC.titrePersonnel()); |
contenuParams.set("i18n_nbre_personnel_collection", mediateur.i18nC.nbrePersonnelCollection()); |
contenuParams.set("nbre_personnel_collection", personnel.size()); |
contenuParams.set("tableau_personnel", tableauPersonnelHtml); |
String cHtml = Format.substitute(personnelTpl, contenuParams); |
|
HtmlContainer corpsConteneurDuHtml = new HtmlContainer(cHtml); |
personnelOnglet.removeAll(); |
personnelOnglet.add(corpsConteneurDuHtml); |
} |
|
private String construireTableauDuPersonnel() { |
Params contenuParams = new Params(); |
contenuParams.set("i18n_titre_membre", mediateur.i18nC.titreMembre()); |
contenuParams.set("i18n_fonction", mediateur.i18nC.fonction()); |
contenuParams.set("i18n_prenom", mediateur.i18nC.prenom()); |
contenuParams.set("i18n_nom", mediateur.i18nC.nom()); |
contenuParams.set("i18n_tel", mediateur.i18nC.telephoneFixe()); |
contenuParams.set("i18n_fax", mediateur.i18nC.fax()); |
contenuParams.set("i18n_courriel", mediateur.i18nC.courrielPrincipal()); |
contenuParams.set("i18n_statut", mediateur.i18nC.statut()); |
contenuParams.set("i18n_tps_w", mediateur.i18nC.tpsTravail()); |
contenuParams.set("i18n_specialite", mediateur.i18nC.specialite()); |
contenuParams.set("i18n_contact", mediateur.i18nC.boolContact()); |
|
String lignesPersonnel = ""; |
personnel = structure.getPersonnel(); |
Iterator<String> it = personnel.keySet().iterator(); |
while (it.hasNext()) { |
StructureAPersonne personne = personnel.get(it.next()); |
164,65 → 245,95 |
} |
contenuParams.set("lignes", lignesPersonnel); |
|
String cHtml = Format.substitute(personnelTpl, contenuParams); |
HtmlContainer corpsConteneurDuHtml = new HtmlContainer(cHtml); |
personnelOnglet.removeAll(); |
personnelOnglet.add(corpsConteneurDuHtml); |
String cHtml = Format.substitute(tableauPersonnelTpl, contenuParams); |
return cHtml; |
} |
|
|
private void initialiserTousLesTpl() { |
initialiserEnteteHtmlTpl(); |
initialiserIdentificationTpl(); |
initialiserPersonnelTpl(); |
initialiserTableauPersonnelTpl(); |
initialiserLignePersonnelTpl(); |
initialiserConservationTpl(); |
initialiserValorisationTpl(); |
} |
|
private void initialiserEnteteHtmlTpl() { |
enteteTpl = "<div id='{id}'>"+ |
enteteTpl = "<div id='{css_id}'>"+ |
" <h1>{nom}</h1>"+ |
" <h2>{ville}</h2>" + |
" <h2>{ville}<span class='{css_meta}'>{projet} - {id} - {guid}</span></h2>" + |
" " + |
"</div>"; |
} |
|
private void initialiserIdentificationTpl() { |
identificationTpl = |
"<div class='{css_class}'>"+ |
" <h2>Renseignements administratifs</h2>"+ |
" <span style='font-weight:bold;'>Condition d'accès :</span> {acces}<br />"+ |
" <span style='font-weight:bold;'>Adresse :</span> {adresse}, {code_postal} {ville}, {region}, {pays}<br />"+ |
" <span style='font-weight:bold;'>Téléphone :</span> {tel}<br />"+ |
" <span style='font-weight:bold;'>Fax :</span> {fax}<br />"+ |
" <span style='font-weight:bold;'>Courriel :</span> {courriel}<br />"+ |
" {description}"+ |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_administratif}</h2>"+ |
" <span class='{css_label}'>{i18n_acronyme} :</span> {acronyme}<br />"+ |
" <span class='{css_label}'>{i18n_acces} :</span> {acces}<br />"+ |
" <span class='{css_label}'>{i18n_statut} :</span> {statut}<br />"+ |
" <span class='{css_label}'>{i18n_date_fondation} :</span> {date_fondation}<br />"+ |
" <span class='{css_label}'>{i18n_nbre_personnel} :</span> {nbre_personnel}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_description}</h2>"+ |
" {description}"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_adresse}</h2>"+ |
" <span class='{css_label}'>{i18n_adresse} :</span> {adresse}<br />" + |
" <span class='{css_label}'>{i18n_cp} :</span> {cp}<br />" + |
" <span class='{css_label}'>{i18n_ville} :</span> {ville}<br />" + |
" <span class='{css_label}'>{i18n_region} :</span> {region}<br />" + |
" <span class='{css_label}'>{i18n_pays} :</span> {pays}<br />" + |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_communication}</h2>"+ |
" <span class='{css_label}'>{i18n_tel} :</span> {tel}<br />"+ |
" <span class='{css_label}'>{i18n_fax} :</span> {fax}<br />"+ |
" <span class='{css_label}'>{i18n_courriel} :</span> {courriel}<br />"+ |
" <span class='{css_label}'>{i18n_web} :</span> {web}<br />"+ |
" </div>"+ |
"</div>"; |
} |
|
private void initialiserPersonnelTpl() { |
personnelTpl = |
"<div class='{css_class}'>"+ |
" <h2>Personnel</h2>"+ |
" <table>"+ |
" <thead>"+ |
" <tr>" + |
" <th>{fonction}</th>" + |
" <th>{prenom}</th>" + |
" <th>{nom}</th>" + |
" <th>{tel}</th>" + |
" <th>{fax}</th>" + |
" <th>{courriel}</th>" + |
" <th>{statut}</th>" + |
" <th>{tps_w}</th>" + |
" <th>{specialite}</th>" + |
" <th>{contact}</th>" + |
" </tr>"+ |
" </thead>"+ |
" <tbody>"+ |
" {lignes}"+ |
" </tbody>"+ |
" </table>"+ |
"<div class='{css_corps}'>"+ |
" <h2>{i18n_titre_personnel}</h2>"+ |
" <p><span class='{css_label}'>{i18n_nbre_personnel_collection} :</span> {nbre_personnel_collection}</p>"+ |
" {tableau_personnel}"+ |
"</div>"; |
} |
|
private void initialiserTableauPersonnelTpl() { |
tableauPersonnelTpl = |
"<h3>{i18n_titre_membre}</h3>"+ |
"<table>"+ |
" <thead>"+ |
" <tr>" + |
" <th>{i18n_fonction}</th>" + |
" <th>{i18n_prenom}</th>" + |
" <th>{i18n_nom}</th>" + |
" <th>{i18n_tel}</th>" + |
" <th>{i18n_fax}</th>" + |
" <th>{i18n_courriel}</th>" + |
" <th>{i18n_statut}</th>" + |
" <th>{i18n_tps_w}</th>" + |
" <th>{i18n_specialite}</th>" + |
" <th>{i18n_contact}</th>" + |
" </tr>"+ |
" </thead>"+ |
" <tbody>"+ |
" {lignes}"+ |
" </tbody>"+ |
"</table>"; |
} |
|
private void initialiserLignePersonnelTpl() { |
lignePersonnelTpl = |
"<tr>"+ |
239,15 → 350,51 |
"</tr>"; |
} |
|
private void initialiserConservationTpl() { |
conservationTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_conservation_personnel}</h2>"+ |
" <span class='{css_label}'>{i18n_formation} :</span> {formation_interet}<br />"+ |
" <span class='{css_label}'>{i18n_formation_interet} :</span> {formation_interet}<br />"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_local}</h2>"+ |
" <span class='{css_label}'>{i18n_local_specifique} :</span> {local_specifique}<br />"+ |
" <span class='{css_label}'>{i18n_meuble_specifique} :</span> {meuble_specifique}<br />"+ |
" <span class='{css_label}'>{i18n_local_parametre} :</span> {local_parametre}<br />"+ |
" <span class='{css_label}'>{i18n_conservation_en_commun} :</span> {conservation_en_commun}<br />"+ |
" <span class='{css_label}'>{i18n_acces_control} :</span> {acces_control}<br />"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
"</div>"; |
} |
|
private void initialiserValorisationTpl() { |
valorisationTpl = |
"<div class='{css_corps}'>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_action_valorisation}</h2>"+ |
" </div>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_recherche_scientifique}</h2>"+ |
" </div>"+ |
" <hr class='{css_clear}'/>"+ |
" <div class='{css_fieldset}'>"+ |
" <h2>{i18n_titre_acces_usage}</h2>"+ |
" </div>"+ |
"</div>"; |
} |
|
public void rafraichir(Object nouvelleDonnees) { |
if (nouvelleDonnees instanceof Structure) { |
afficherDetailInstitution((Structure) nouvelleDonnees); |
structure = (Structure) nouvelleDonnees; |
afficherDetailInstitution(); |
} if (nouvelleDonnees instanceof Information) { |
Information info = (Information) nouvelleDonnees; |
if (info.getType().equals("liste_structure_a_personne")) { |
allouerPersonnelAStructure((StructureAPersonneListe) info.getDonnee(0)); |
afficherPersonnel(); |
layout(); |
afficherDetailInstitution(); |
} |
} else { |
GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null); |