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() { |