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); |
} |
} |
} |
} |