Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 997 → Rev 1031

/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java
1,11 → 1,10
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
24,6 → 23,7
import org.tela_botanica.client.vues.FormulaireOnglet;
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
 
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
64,7 → 64,7
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<CollectionACommentaire> grille;
private ComboBox<Valeur> typeCombo = null;
private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
private CollectionACommentaireListe commentairesAjoutees = null;
private CollectionACommentaireListe commentairesSupprimees = null;
390,25 → 390,21
}
private ColumnConfig creerColonneType() {
typeCombo = new ComboBox<Valeur>();
typeCombo.setForceSelection(true);
typeCombo.setTriggerAction(TriggerAction.ALL);
typeCombo = new ChampComboBoxMultiSelect<Valeur>();
typeCombo.setDisplayField("nom");
typeCombo.setValueField("id_valeur");
typeCombo.setStore(new ListStore<Valeur>());
typeCombo.setEditable(false);
typeCombo.setForceSelection(true);
CellEditor typeEditeur = new CellEditor(typeCombo) {
@SuppressWarnings("unchecked")
@Override
public Object preProcessValue(Object valeur) {
Valeur retour = null;
Valeur retour = new Valeur();
if (valeur != null ) {
Debug.log(""+valeur.toString());
if (typeCombo.getStore().findModel("nom", valeur.toString()) != null) {
retour = typeCombo.getStore().findModel("nom", valeur.toString());
} else if (typeCombo.getStore().findModel("abr", valeur.toString()) != null) {
retour = typeCombo.getStore().findModel("abr", valeur.toString());
} else if (typeCombo.getStore().findModel("id_valeur", valeur.toString()) != null) {
retour = typeCombo.getStore().findModel("id_valeur", valeur.toString());
if (valeur instanceof String) {
((ChampComboBoxMultiSelect<Valeur>) getField()).peuplerAvecTexte(valeur.toString());
}
}
return retour;
417,50 → 413,24
@Override
public Object postProcessValue(Object valeur) {
String retour = null;
if (valeur != null ) {
if (valeur instanceof Valeur) {
Valeur valeurOntologie = (Valeur) valeur;
retour = valeurOntologie.getNom();
Debug.log("Retour:"+retour);
}
if (getField().getRawValue() != null ) {
retour = getField().getRawValue();
}
Debug.log("Post : "+retour);
return retour;
}
};
 
GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
@Override
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
String typeOrigine = model.get("_type_");
String type = typeOrigine;
if (typeCombo.getStore() != null && typeOrigine != null && typeOrigine.matches("[0-9"+aDonnee.SEPARATEUR_VALEURS+"]+")) {
type = "";
String[] valeurs = typeOrigine.split(aDonnee.SEPARATEUR_VALEURS);
int nbreValeurs = valeurs.length;
int indexAvtDernier = nbreValeurs - 1;
if (nbreValeurs > 0) {
for (int i = 0; i < nbreValeurs; i++) {
String valeur = valeurs[i];
if (valeur.matches("^[0-9]+$")) {
if (valeur.equals("0")) {
valeur = "";
} else if (typeCombo.getStore() != null) {
ListStore<Valeur> ontologie = typeCombo.getStore();
Valeur valeurOntologie = ontologie.findModel("id_valeur", valeur);
if (valeurOntologie != null) {
valeur = valeurOntologie.getNom();
}
}
}
if (i != indexAvtDernier) {
type += valeur+", ";
} else {
type += valeur;
}
}
}
String type = model.get("_type_");
Debug.log("Initialisation type origine :"+type);
if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
type = typeCombo.formaterIdentifiantsEnTexte(type);
model.set("_type_", type);
Debug.log("Initialisation :"+type);
}
model.set("_type_", type);
return type;
}
};
519,7 → 489,14
private void rafraichirValeurListe(ValeurListe listeValeurs) {
if (listeValeurs.getId().equals(config.getListeId("typeCommentaireCollection"))) {
Formulaire.rafraichirComboBox(listeValeurs, typeCombo);
List<Valeur> liste = listeValeurs.toList();
if (liste.size() > 0) {
ListStore<Valeur> store = typeCombo.getStore();
store.removeAll();
store.add(liste);
store.sort("nom", SortDir.ASC);
typeCombo.setStore(store);
}
chargementTypesOk = true;
} else {
GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
577,6 → 554,7
public void peupler() {
grille.getStore().removeAll();
grille.getStore().add(collection.getCommentairesLiees().toList());
grille.recalculate();
layout();
Info.display(i18nC.chargementCommentaire(), i18nC.ok());
}
613,14 → 591,8
private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
String type = relationCollectionACommentaire.get("_type_");
String champModele = "nom";
if (type.matches("[0-9]+")) {
champModele = "id_valeur";
}
if (typeCombo.getStore().findModel(champModele, type) != null) {
String idType = typeCombo.getStore().findModel(champModele, type).getId();
relationCollectionACommentaire.setType(idType);
}
typeCombo.peuplerAvecTexte(type);
relationCollectionACommentaire.setType(typeCombo.collecter());
}
 
public void soumettre() {