/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java |
---|
15,7 → 15,7 |
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe; |
import org.tela_botanica.client.modeles.structure.StructureConservation; |
import org.tela_botanica.client.modeles.structure.StructureValorisation; |
import org.tela_botanica.client.vues.collection.DetailVue; |
import org.tela_botanica.client.vues.DetailVue; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.util.Format; |
/trunk/src/org/tela_botanica/client/vues/DetailVue.java |
---|
New file |
0,0 → 1,263 |
package org.tela_botanica.client.vues; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.Iterator; |
import org.tela_botanica.client.ComposantClass; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.configuration.Configuration; |
import org.tela_botanica.client.i18n.Constantes; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Valeur; |
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.util.UtilString; |
import com.extjs.gxt.ui.client.Registry; |
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.HtmlContainer; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.TabItem; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.core.client.GWT; |
public abstract class DetailVue extends LayoutContainer implements Rafraichissable { |
protected Mediateur mediateur = null; |
protected Constantes i18nC = null; |
protected HashMap<String, Valeur> ontologie = null; |
protected boolean ontologieChargementOk = false; |
private HashMap<Integer, String> ontologiesEnAttenteDeReception = null; |
protected ProjetListe projets = null; |
protected boolean projetsChargementOk = false; |
protected String sautLigneTpl = null; |
public DetailVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
i18nC = Mediateur.i18nC; |
initialiserSautLigneTpl(); |
ontologie = new HashMap<String, Valeur>(); |
ontologieChargementOk = false; |
ontologiesEnAttenteDeReception = new HashMap<Integer, String>(); |
chargerProjets(); |
setLayout(new FitLayout()); |
setBorders(false); |
setScrollMode(Scroll.AUTO); |
} |
private void initialiserSautLigneTpl() { |
sautLigneTpl = "<br />\n"; |
} |
private void chargerProjets() { |
mediateur.selectionnerProjet(this, null); |
} |
protected String construireTxtProjet(String idProjet) { |
String chaineARetourner = idProjet; |
if (projets != null) { |
Projet projet = projets.get(idProjet); |
if (projet != null) { |
String nomDuProjet = projet.getNom(); |
if (!nomDuProjet.equals("")) { |
chaineARetourner = nomDuProjet; |
} |
} |
} |
return chaineARetourner; |
} |
protected String construireTxtTruck(String chaineAAnalyser) { |
ArrayList<String> termes = new ArrayList<String>(); |
if ((chaineAAnalyser != null) && (!chaineAAnalyser.trim().equals(""))) { |
String[] valeurs = chaineAAnalyser.split(";;"); |
int nbreValeurs = valeurs.length; |
if (nbreValeurs > 0) { |
for (int i = 0; i < nbreValeurs; i++) { |
String valeur = valeurs[i]; |
String valeurFormatee = formaterValeurTruck(valeur); |
termes.add(valeurFormatee); |
} |
} |
} |
String chaineARetourner = formaterTableauDeTxt(termes); |
return chaineARetourner; |
} |
private String formaterValeurTruck(String valeur) { |
String chaineARetourner = ""; |
if (valeur.matches("^[^#]+##[^$]+$")) { |
String[] cleValeur = valeur.split("##"); |
chaineARetourner = cleValeur[1]+" "+formaterParenthese(cleValeur[0]); |
} else if (!valeur.equals("")) { |
chaineARetourner = valeur; |
} else { |
GWT.log("Valeur truck posant problèlme :"+valeur, null); |
} |
return chaineARetourner; |
} |
protected String formaterParenthese(String chaineAAfficher) { |
if (!chaineAAfficher.equals("")) { |
chaineAAfficher = "("+chaineAAfficher+")"; |
} |
return chaineAAfficher; |
} |
protected String formaterTableauDeTxt(ArrayList<String> tableauDeTxt) { |
String chaineAAfficher = ""; |
int tailleDuTableau = tableauDeTxt.size(); |
if (tailleDuTableau > 0) { |
int indexAvtDernier = tailleDuTableau - 1; |
for (int i = 0; i < tailleDuTableau; i++) { |
String mot = tableauDeTxt.get(i); |
if (i != indexAvtDernier) { |
chaineAAfficher += mot+", "; |
} else { |
chaineAAfficher += nettoyerPointFinal(mot)+"."; |
} |
} |
} |
return UtilString.ucFirst(chaineAAfficher); |
} |
protected String nettoyerPointFinal(String mot) { |
mot = mot.replaceAll("[.]$", ""); |
return mot; |
} |
protected String formaterContenu(String template, Params parametres) { |
String cHtml = Format.substitute(template, parametres); |
Params cssParams = new Params(); |
cssParams.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU); |
cssParams.set("css_label", ComposantClass.LABEL); |
cssParams.set("css_indentation", ComposantClass.INDENTATION); |
cssParams.set("css_fieldset", ComposantClass.FIELDSET); |
cssParams.set("css_clear", ComposantClass.CLEAR); |
cHtml = Format.substitute(cHtml, cssParams); |
return cHtml; |
} |
protected void afficherOnglet(String template, Params parametres, TabItem onglet) { |
String cHtml = formaterContenu(template, parametres); |
HtmlContainer corpsConteneurDuHtml = new HtmlContainer(cHtml); |
onglet.removeAll(); |
onglet.add(corpsConteneurDuHtml); |
} |
protected String formaterAutre(String chaineAAfficher) { |
if (!chaineAAfficher.equals("")) { |
chaineAAfficher = " ["+i18nC.autres()+" : "+chaineAAfficher+"]"; |
} |
return chaineAAfficher; |
} |
protected String formaterOuiNon(String chaineAFormater) { |
String txtARetourner = ""; |
if (chaineAFormater.equals("0")) { |
txtARetourner = i18nC.non(); |
} else if (chaineAFormater.equals("1")) { |
txtARetourner = i18nC.oui(); |
} |
return txtARetourner; |
} |
protected String formaterSautDeLigne(String chaineAFormater) { |
String txtARetourner = chaineAFormater.replaceAll("\n", sautLigneTpl); |
return txtARetourner; |
} |
protected void lancerChargementListesValeurs(String[] listesCodes) { |
Configuration configuration = (Configuration) Registry.get(RegistreId.CONFIG); |
for (int i = 0; i < listesCodes.length ; i++) { |
String code = listesCodes[i]; |
ontologiesEnAttenteDeReception.put(configuration.getListeId(code), code); |
mediateur.obtenirListeValeurEtRafraichir(this, code); |
} |
} |
protected void receptionerListeValeurs(ValeurListe listeValeursReceptionnee) { |
mettreAJourOntologieEnAttenteDeReception(listeValeursReceptionnee); |
ajouterListeValeursAOntologie(listeValeursReceptionnee); |
} |
protected void mettreAJourOntologieEnAttenteDeReception(ValeurListe listeValeursReceptionnee) { |
ontologiesEnAttenteDeReception.remove(listeValeursReceptionnee.getId()); |
if (ontologiesEnAttenteDeReception.size() == 0) { |
ontologieChargementOk = true; |
} |
} |
protected void ajouterListeValeursAOntologie(ValeurListe listeValeursReceptionnee) { |
Iterator<String> it = listeValeursReceptionnee.keySet().iterator(); |
while (it.hasNext()) { |
String cle = it.next(); |
Valeur valeur = listeValeursReceptionnee.get(cle); |
if (valeur != null) { |
ontologie.put(cle, valeur); |
} |
} |
} |
public String construireTxtListeOntologie(String chaineAAnalyser) { |
ArrayList<String> termes = new ArrayList<String>(); |
ArrayList<String> autres = new ArrayList<String>(); |
if ((chaineAAnalyser != null) && (!chaineAAnalyser.trim().equals(""))) { |
String[] valeurs = chaineAAnalyser.split(";;"); |
int nbreValeurs = valeurs.length; |
if (nbreValeurs > 0) { |
for (int i = 0; i < nbreValeurs; i++) { |
String id = valeurs[i]; |
if (id.matches("^[0-9]+[\\#]{2}.+$")) { |
//Chaine truk typé : type##valeur; |
if (id.contains("AUTRE##")) { |
String txt = id.replaceFirst("^AUTRE##", ""); |
if (!txt.equals("")) { |
autres.add(txt); |
} |
} else { |
String type = id.substring(0, id.indexOf("##")); |
Valeur valeur = ontologie.get(type); |
String txt = id.replaceFirst("^" + type + "##", valeur.getNom() + ": "); |
termes.add(txt); |
} |
} else if (id.matches("^[0-9]+$")) { |
if (ontologie != null) { |
Valeur valeur = ontologie.get(id); |
if (valeur != null) { |
String termeOntologie = valeur.getNom(); |
termes.add(termeOntologie); |
} |
} |
} |
} |
} |
} |
String chaineTermes = formaterTableauDeTxt(termes); |
String chaineAutres = formaterTableauDeTxt(autres); |
String chaineARetourner = chaineTermes+formaterAutre(chaineAutres); |
return chaineARetourner; |
} |
} |
/trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java |
---|
7,7 → 7,7 |
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 org.tela_botanica.client.vues.DetailVue; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
/trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java |
---|
6,7 → 6,7 |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.vues.collection.DetailVue; |
import org.tela_botanica.client.vues.DetailVue; |
import com.extjs.gxt.ui.client.util.Format; |
import com.extjs.gxt.ui.client.util.Params; |
/trunk/src/org/tela_botanica/client/vues/ContenuVue.java |
---|
New file |
0,0 → 1,71 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.collection.CollectionListe; |
import org.tela_botanica.client.modeles.personne.PersonneListe; |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.PublicationListe; |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.core.client.GWT; |
public class ContenuVue extends LayoutContainer implements Rafraichissable { |
private Mediateur mediateur = null; |
public ContenuVue(Mediateur mediateurCourant) { |
mediateur = mediateurCourant; |
setLayout(new FitLayout()); |
setBorders(true); |
} |
public Rafraichissable getContenu() { |
Rafraichissable contenuPanneauCentre = null; |
if (getItems() != null && getItems().size() == 1) { |
contenuPanneauCentre = (Rafraichissable) getItem(0); |
} |
return contenuPanneauCentre; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// RAFRAICHISSEMENT |
//+----------------------------------------------------------------------------------------------------------------+ |
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof StructureListe) { |
mediateur.afficherListeStructures((StructureListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof CollectionListe) { |
mediateur.afficherListeCollections((CollectionListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof PublicationListe) { |
mediateur.afficherListePublication((PublicationListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof PersonneListe) { |
mediateur.afficherListePersonnes((PersonneListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof ProjetListe) { |
GWT.log("reception d'une liste de projets", null); |
mediateur.afficherListeProjets((ProjetListe) nouvellesDonnees); |
} else if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("maj_utilisateur")) { |
if (getContenu() != null) { |
getContenu().rafraichir(info); |
} |
} else { |
// Affichage des éventuels messages de déboguage ou d'alerte |
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) { |
GWT.log(info.getMessages().toString(), null); |
} |
// Traitement en fonction des types d'information |
if (info.getType().equals("liste_personne")) { |
mediateur.afficherListePersonnes((PersonneListe) info.getDonnee(0)); |
Info.display("Chargement d'une liste de personnes", ""); |
} |
} |
} |
mediateur.desactiverChargement(); |
} |
} |
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java |
---|
15,7 → 15,7 |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.modeles.personne.Personne; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.collection.DetailVue; |
import org.tela_botanica.client.vues.DetailVue; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.Scroll; |
/trunk/src/org/tela_botanica/client/vues/collection/ContenuVue.java |
---|
File deleted |
/trunk/src/org/tela_botanica/client/vues/collection/DetailVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java |
---|
17,6 → 17,7 |
import org.tela_botanica.client.modeles.projet.ProjetListe; |
import org.tela_botanica.client.modeles.publication.Publication; |
import org.tela_botanica.client.modeles.structure.Structure; |
import org.tela_botanica.client.vues.DetailVue; |
import com.extjs.gxt.ui.client.Style.Scroll; |
import com.extjs.gxt.ui.client.util.Format; |
/trunk/src/org/tela_botanica/client/composants/ChampMultiValeursImage.java |
---|
4,7 → 4,7 |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.images.Images; |
import org.tela_botanica.client.vues.collection.ContenuVue; |
import org.tela_botanica.client.vues.ContenuVue; |
import com.extjs.gxt.ui.client.event.ButtonEvent; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
/trunk/src/org/tela_botanica/client/Mediateur.java |
---|
37,6 → 37,7 |
import org.tela_botanica.client.modeles.structure.StructureListe; |
import org.tela_botanica.client.modeles.structure.StructureValorisation; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.ContenuVue; |
import org.tela_botanica.client.vues.EnteteVue; |
import org.tela_botanica.client.vues.Formulaire; |
import org.tela_botanica.client.vues.PopupChargement; |
46,7 → 47,6 |
import org.tela_botanica.client.vues.collection.CollectionForm; |
import org.tela_botanica.client.vues.collection.CollectionListeVue; |
import org.tela_botanica.client.vues.collection.CollectionVue; |
import org.tela_botanica.client.vues.collection.ContenuVue; |
import org.tela_botanica.client.vues.personne.PersonneForm; |
import org.tela_botanica.client.vues.personne.PersonneVue; |
import org.tela_botanica.client.vues.projet.ProjetForm; |
/trunk/test/org/tela_botanica/client/vues/StructureDetailPanneauVueTest.java |
---|
File deleted |
/trunk/test/org/tela_botanica/client/vues/structure/StructureDetailPanneauVueTest.java |
---|
New file |
0,0 → 1,34 |
package org.tela_botanica.client.vues.structure; |
import org.tela_botanica.client.Coel; |
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.vues.structure.StructureDetailVue; |
import com.extjs.gxt.ui.client.Registry; |
import com.google.gwt.junit.client.GWTTestCase; |
public class StructureDetailPanneauVueTest extends GWTTestCase { |
private Coel module = null; |
private Mediateur mediateur = null; |
public String getModuleName() { |
return "org.tela_botanica.Coel"; |
} |
protected void gwtSetUp() { |
module = new Coel(); |
module.onModuleLoad(); |
mediateur = Registry.get(RegistreId.MEDIATEUR); |
} |
public void testerConstructionTxtListeOntologie() { |
StructureDetailVue vueDetail = new StructureDetailVue(mediateur); |
String chaineAAnalyser = "2068;;2069;;2067"; |
String chaineFormatee = vueDetail.construireTxtListeOntologie(chaineAAnalyser); |
System.out.println(chaineFormatee); |
assertEquals("Bâtiment (ex. : Herbier), Pièce, Réserves", chaineFormatee); |
} |
} |
/trunk/test/org/tela_botanica/client/CoelTestSuite.java |
---|
3,7 → 3,7 |
import junit.framework.Test; |
import junit.framework.TestSuite; |
import org.tela_botanica.client.vues.StructureDetailPanneauVueTest; |
import org.tela_botanica.client.vues.structure.StructureDetailPanneauVueTest; |
import com.google.gwt.junit.tools.GWTTestSuite; |