Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1002 → Rev 1003

/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
3,11 → 3,15
import java.util.ArrayList;
import java.util.List;
 
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.modeles.publication.Publication;
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
39,6 → 43,7
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
67,6 → 72,7
private ComboBox<Publication> publicationsSaisiesComboBox = null;
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
private ComboBox<Valeur> typeRelationCombo = null;
private FenetreForm fenetreFormulaire = null;
81,6 → 87,7
panneauPrincipal.setTopComponent(barreOutils);
grille = creerGrille();
panneauPrincipal.add(grille);
mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonnePublication");
add(panneauPrincipal);
initialiser();
257,7 → 264,7
private void actualiserGrille() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), PublicationAPersonne.ROLE_SUJET);
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), "%");
} else {
grille.getStore().removeAll();
layout();
371,6 → 378,67
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(expansionPlugin);
colonnes.add(numeroPlugin);
typeRelationCombo = new ComboBox<Valeur>();
typeRelationCombo.setForceSelection(true);
typeRelationCombo.setTriggerAction(TriggerAction.ALL);
typeRelationCombo.setDisplayField("nom");
typeRelationCombo.setStore(new ListStore<Valeur>());
typeRelationCombo.setEditable(false);
typeRelationCombo.addStyleName(ComposantClass.OBLIGATOIRE);
typeRelationCombo.addListener(Events.Select, Formulaire.creerEcouteurChampObligatoire());
CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
@Override
public Object preProcessValue(Object valeur) {
Valeur retour = null;
if (valeur != null ) {
Debug.log(valeur.toString());
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
} else if (typeRelationCombo.getStore().findModel("id_valeur", valeur.toString()) != null) {
retour = typeRelationCombo.getStore().findModel("id_valeur", valeur.toString());
}
}
return retour;
}
 
@Override
public Object postProcessValue(Object valeur) {
String retour = null;
if (valeur != null ) {
if (valeur instanceof Valeur) {
Valeur valeurOntologie = (Valeur) valeur;
retour = valeurOntologie.getId();
}
}
return retour;
}
};
GridCellRenderer<PublicationAPersonne> relationRendu = new GridCellRenderer<PublicationAPersonne>() {
@Override
public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) {
// Gestion du texte afficher dans la cellule
String role = modele.get("_role_");
if (typeRelationCombo.getStore() != null && role.matches("[0-9]+")) {
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
}
modele.set("_role_", role);
return role;
}
};
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
typeRelationColonne.setEditor(editeurRelation);
typeRelationColonne.setRenderer(relationRendu);
colonnes.add(typeRelationColonne);
colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
444,6 → 512,11
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) {
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
}
} else if (nouvellesDonnees instanceof PublicationListe) {
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);
493,7 → 566,6
 
public void peupler() {
grille.getStore().removeAll();
System.out.println("publica lié" + personneSelectionnee.getPublicationsLiees().toList());
grille.getStore().add(personneSelectionnee.getPublicationsLiees().toList());
layout();
Info.display(i18nC.chargementPublication(), i18nC.ok());
534,13 → 606,11
// Ajout des relations CollectionAPublication
if (publicationsAjoutees.size() != 0) {
//TODO : utiliser le role d'une liste déroulante
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), PublicationAPersonne.ROLE_SUJET);
mediateur.ajouterPublicationAPersonne(this, publicationsAjoutees, personneSelectionnee.getId(), null);
}
// Suppression des relations CollectionAPublication
if (publicationsSupprimees.size() != 0) {
// TODO : fix under
mediateur.supprimerPublicationAPersonne(this, publicationsSupprimees);
/*Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());*/
}
}
}