1,9 → 1,10 |
package org.tela_botanica.client.vues; |
|
import org.tela_botanica.client.ComposantId; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureListe; |
|
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.Scroll; |
10,54 → 11,77 |
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.HtmlContainer; |
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.FitLayout; |
import com.google.gwt.core.client.GWT; |
|
public class StructureDetailPanneauVue extends ContentPanel implements Rafraichissable { |
public class StructureDetailPanneauVue extends LayoutContainer implements Rafraichissable { |
|
private ContentPanel content; |
private Html header; |
private Mediateur mediateur = null; |
|
private String enteteHTML = "<div class='coel-detail'><h1>{0}</h1><h2>{1}</h2></div>"; |
private String contenuHTML = "<div style='padding: 12px;'><h2>Renseignements administratifs</h2><span style='font-weight:bold;'>Condition d'accès :</span> {9}<br /><span style='font-weight:bold;'>Adresse :</span> {1}, {2} {3}, {4}, {5}<br /><span style='font-weight:bold;'>Téléphone :</span> {6}<br /><span style='font-weight:bold;'>Fax :</span> {7}<br /><span style='font-weight:bold;'>Courriel :</span> {8}<br />{0}</div>"; |
private String structureNom = null; |
private String structureVille = null; |
private String structureDescription = null; |
private String contenuHTML = null; |
|
public StructureDetailPanneauVue() { |
private Structure structure = null; |
|
private ContentPanel panneauPrincipal = null; |
private HtmlContainer entete = null; |
private TabPanel onglets = null; |
private TabItem identificationOnglet = null; |
|
public StructureDetailPanneauVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
Registry.register(RegistreId.PANNEAU_INSTITUTION_DETAIL, this); |
initialiserEnteteHtmlTpl(); |
initialiserContenuHtmlTpl(); |
|
setHeaderVisible(false); |
setLayout(new FitLayout()); |
setBorders(false); |
setScrollMode(Scroll.AUTO); |
|
content = new ContentPanel(); |
content.setBodyBorder(false); |
content.setHeaderVisible(false); |
content.setScrollMode(Scroll.AUTO); |
panneauPrincipal = new ContentPanel(); |
|
header = new Html(); |
header.setStyleName("coel-detail"); |
content.setTopComponent(header); |
entete = new HtmlContainer(); |
|
add(content); |
onglets = new TabPanel(); |
onglets.setAutoHeight(true); |
onglets.setAutoWidth(true); |
|
identificationOnglet = new TabItem("Général"); |
onglets.add(identificationOnglet); |
|
panneauPrincipal.add(entete); |
panneauPrincipal.add(onglets); |
add(panneauPrincipal); |
} |
|
public void afficherDetailInstitution(Structure structure) { |
if (structure != null) { |
content.removeAll(); |
private void afficherDetailInstitution(Structure structureCourante) { |
removeAll(); |
if (structureCourante != null) { |
structure = structureCourante; |
|
structureNom = structure.getNom(); |
structureVille = structure.getVille(); |
structureDescription = structure.getDescription(); |
afficherEntete(); |
afficherIdentification(); |
} |
panneauPrincipal.layout(); |
} |
|
private void afficherEntete() { |
Params enteteParams = new Params(); |
enteteParams.add(structureNom); |
enteteParams.add(structureVille); |
enteteParams.add(ComposantId.ZONE_DETAIL); |
enteteParams.add(structure.getNom()); |
enteteParams.add(structure.getVille()); |
|
String eHtml = Format.substitute(enteteHTML, enteteParams); |
header.getElement().setInnerHTML(eHtml); |
entete.getElement().setInnerHTML(eHtml); |
} |
|
private void afficherIdentification() { |
Params contenuParams = new Params(); |
contenuParams.add(structureDescription); |
contenuParams.add(structure.getDescription()); |
contenuParams.add(structure.getAdresse()); |
contenuParams.add(structure.getCodePostal()); |
contenuParams.add(structure.getVille()); |
67,27 → 91,38 |
contenuParams.add(structure.getFax()); |
contenuParams.add(structure.getCourriel()); |
contenuParams.add(structure.getConditionAcces()); |
contenuParams.add(ComposantId.ZONE_DETAIL_CORPS); |
|
String cHtml = Format.substitute(contenuHTML, contenuParams); |
content.addText(cHtml); |
HtmlContainer corpsConteneurDuHtml = new HtmlContainer(cHtml); |
identificationOnglet.add(corpsConteneurDuHtml); |
} |
|
layout(); |
} else { |
header.setHtml(""); |
content.removeAll(); |
private void initialiserEnteteHtmlTpl() { |
enteteHTML = "<div id='{0}'>"+ |
" <h1>{1}</h1>"+ |
" <h2>{2}</h2>" + |
"</div>"; |
} |
|
private void initialiserContenuHtmlTpl() { |
contenuHTML = "<div id='{10}'>"+ |
" <h2>Renseignements administratifs</h2>"+ |
" <span style='font-weight:bold;'>Condition d'accès :</span> {9}<br />"+ |
" <span style='font-weight:bold;'>Adresse :</span> {1}, {2} {3}, {4}, {5}<br />"+ |
" <span style='font-weight:bold;'>Téléphone :</span> {6}<br />"+ |
" <span style='font-weight:bold;'>Fax :</span> {7}<br />"+ |
" <span style='font-weight:bold;'>Courriel :</span> {8}<br />"+ |
" {0}"+ |
"</div>"; |
} |
|
public void rafraichir(Object nouvelleDonnees) { |
if (nouvelleDonnees instanceof Structure) { |
afficherDetailInstitution((Structure) nouvelleDonnees); |
} else if (nouvelleDonnees instanceof StructureListe) { |
StructureListe listeInstitutions = (StructureListe) nouvelleDonnees; |
// Test pour savoir si la liste contient des éléments |
if (listeInstitutions.size() == 0) { |
afficherDetailInstitution(null); |
} else { |
GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null); |
} |
} |
} |
|
} |