Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 966 → Rev 967

/trunk/src/org/tela_botanica/client/vues/DetailVue.java
15,6 → 15,7
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.projet.Projet;
import org.tela_botanica.client.modeles.projet.ProjetListe;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;
 
import com.extjs.gxt.ui.client.Registry;
221,6 → 222,10
}
public String construireTxtListeOntologie(String chaineAAnalyser) {
return construireTxtListeOntologie(chaineAAnalyser, true, true, false);
}
public String construireTxtListeOntologie(String chaineAAnalyser, boolean valeurEstOntologie, boolean typeEstOntologie, boolean donneeEstOntologie) {
ArrayList<String> termes = new ArrayList<String>();
ArrayList<String> autres = new ArrayList<String>();
if ((chaineAAnalyser != null) && (!chaineAAnalyser.trim().equals(""))) {
228,30 → 233,61
int nbreValeurs = valeurs.length;
if (nbreValeurs > 0) {
for (int i = 0; i < nbreValeurs; i++) {
String id = valeurs[i];
if (id.matches("^(?:"+aDonnee.TYPE_AUTRE+"|[0-9]+)[\\#]{2}.+$")) {
//Chaine truk typé : type##valeur;
String idAutre = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR;
if (id.contains(idAutre)) {
String txt = id.replaceFirst("^"+idAutre, "");
if (!txt.equals("")) {
autres.add(txt);
String valeur = valeurs[i];
// VALEUR SANS TYPE
// La valeur sans type est une entrée de l'ontologie
if (valeurEstOntologie && valeur.matches("^[0-9]+$")) {
if (valeur.equals("0")) {
valeur = "";
} else if (ontologie != null) {
Valeur valeurOntologie = ontologie.get(valeur);
if (valeurOntologie != null) {
valeur = valeurOntologie.getNom();
}
} else {
String type = id.substring(0, id.indexOf(aDonnee.SEPARATEUR_TYPE_VALEUR));
Valeur valeur = ontologie.get(type);
String txt = id.replaceFirst("^" + type + aDonnee.SEPARATEUR_TYPE_VALEUR, 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);
}
// VALEUR AVEC TYPE
// Type : AUTRE
String valeurTypeAutre = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR;
if (valeur.matches("^"+valeurTypeAutre+".+$")) {
String txtAutre = valeur.replaceFirst("^"+valeurTypeAutre, "");
if (!txtAutre.equals("")) {
autres.add(txtAutre);
}
valeur = "";
}
// Type correspondant à une entrée de l'ontologie
if (typeEstOntologie) {
String valeurTypeOntologie = "[0-9]+"+aDonnee.SEPARATEUR_TYPE_VALEUR;
if (valeur.matches("^"+valeurTypeOntologie+".+$")) {
String type = valeur.substring(0, valeur.indexOf(aDonnee.SEPARATEUR_TYPE_VALEUR));
if (ontologie != null && ontologie.get(type) != null) {
Valeur valeurOntologie = ontologie.get(type);
valeur = valeur.replaceFirst("^"+type, valeurOntologie.getNom()+": ");
}
}
}
// Donnée correspondant à une entrée de l'ontologie
if (donneeEstOntologie) {
String donneeOntologie = aDonnee.SEPARATEUR_TYPE_VALEUR+"[0-9]+";
if (valeur.matches("^.+"+donneeOntologie+"$")) {
String donnee = valeur.substring(valeur.indexOf(aDonnee.SEPARATEUR_TYPE_VALEUR), valeur.length());
donnee = donnee.replaceFirst("^"+aDonnee.SEPARATEUR_TYPE_VALEUR, "");
if (ontologie != null && ontologie.get(donnee) != null) {
Valeur valeurOntologie = ontologie.get(donnee);
valeur = valeur.replaceFirst(donnee+"$", valeurOntologie.getNom());
}
}
}
// Nettoyage final
valeur = valeur.replaceFirst(aDonnee.SEPARATEUR_TYPE_VALEUR, "");
if (!UtilString.isEmpty(valeur)) {
termes.add(valeur);
}
}
}
}