Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1486 → Rev 1487

/branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
90,6 → 90,8
private ComboBox<Valeur> typeRelationCombo = null;
private List<Valeur> roles = null;
private PublicationAPersonneListe listePublicationsLiees = new PublicationAPersonneListe();
boolean personneRecue = false;
boolean rolesRecus = false;
private FenetreForm fenetreFormulaire = null;
119,25 → 121,7
}
public void mettreAJourPersonne() {
personneSelectionnee = ((PersonneForm) formulaire).personneSelectionnee;
 
//Boucle sur les role pour trouver les publication à personne
 
// FIXME !
//-------------------
// Author : Cyprien
//-------------------
// J'ai rajouté le test (toString()!="") parce que bien que l'objet personneSelectionne soit vide, (personneSelectionnee!=null) retournait
// tout de meme VRAI
// Mais le vrai problème, c'est que personneSelectionne puisse être nul ! personneSelectionne devrait toujours etre affecté à quelqu'un.
// De plus, il y a un étrange comportement lorsque l'on clique sur "modifier" une personne : je ne sais pas pourquoi mais les opérations
// s'effectuent deux fois au lieu d'une, c-a-d que le formulaire lance deux fois l'operation rafraichir au lieu d'une ... et l'opération
// rafraichir lance à son tour de nombreuses opérations qui en conséquence sont effectuées deux fois au lieu d'une
if ((roles != null) && (personneSelectionnee!=null) && (!personneSelectionnee.toString().equals(""))) {
 
mediateur.selectionnerPublicationAPersonne(this, null, personneSelectionnee.getId(), roles, null);
}
}
private ContentPanel creerPanneauContenantGrille() {
346,15 → 330,8
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) {
Debug.log("modeldata = "+publicationsSaisiesComboBox.getValeur().getProperties().toString());
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false);
Debug.log("publicationSaisieSelectionne="+publicationSaisieSelectionne.toString());
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false);
ajouterDansGrille(publicationSaisieSelectionne);
publicationsSaisiesComboBox.getCombo().setValue(null);
}
}
377,8 → 354,6
 
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
listePublicationsLiees.put(publication.getId(), publicationLiee);
 
Debug.log("insertion de : "+publicationLiee.toString());
// Ajout à la grille
grille.getGrille().stopEditing();
436,7 → 411,7
modelTypePublicationAPersonne.addField("cpu_indication_nvt");
// Proxy
ProxyPublicationsAPersonne<ModelData> proxyPublicationsAPersonne = new ProxyPublicationsAPersonne<ModelData>(null, null);
ProxyPublicationsAPersonne<ModelData> proxyPublicationsAPersonne = new ProxyPublicationsAPersonne<ModelData>(null, null, null);
 
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
462,7 → 437,6
colonnes.add(new ColumnConfig("cpu_fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("cpu_truk_pages", i18nC.publicationPage(), 50));
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_editeur_", "cpu_ce_truk_editeur");
virtualFields.put("_annee_", "cpu_date_parution");
569,7 → 543,7
}
}
return retour;
}
}
};
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
578,8 → 552,15
String role = modele.get("_role_");
String roleNom = "";
if (typeRelationCombo.getStore() != null && role!=null && role.matches("[0-9]+")) {
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
if (typeRelationCombo.getStore().findModel("id_valeur", role) != null) {
roleNom = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
role = typeRelationCombo.getStore().findModel("id_valeur", role).getId();
} else { Debug.log("role recherche="+role);
Debug.log("typeRelationCombo.getStore().getCount()="+typeRelationCombo.getStore().getCount());
for(int i=0; i<typeRelationCombo.getStore().getCount(); i++) {
Debug.log(""+typeRelationCombo.getStore().getAt(i));
}
}
}
modele.set("_role_", role);
return roleNom;
619,14 → 600,11
if (listeValeurs.getId().equals(config.getListeId("relationPersonnePublication"))) {
Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
roles = listeValeurs.toList();
mettreAJourPersonne();
rolesRecus = true;
((ProxyPublicationsAPersonne)grille.getProxy()).setRolesId(roles);
if (rolesRecus && personneRecue) grille.reload();
}
}
else if (nouvellesDonnees instanceof PublicationListe)
{
/*PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);*/
}
else if (nouvellesDonnees instanceof PublicationAPersonneListe)
{
PublicationAPersonneListe papl = (PublicationAPersonneListe) nouvellesDonnees;
645,12 → 623,6
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
}
/*
private void rafraichirPublicationListe(PublicationListe listePublications) {
publicationsSaisiesComboBox.getStore().removeAll();
publicationsSaisiesComboBox.getStore().add(listePublications.toList());
publicationsSaisiesComboBox.expand();
}*/
public void rafraichirInformation(Information info) {
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
660,7 → 632,8
if (type.equals("personne")) {
mettreAJourPersonne();
((ProxyPublicationsAPersonne)grille.getProxy()).setPersonneId(personneSelectionnee.getId());
grille.reload();
personneRecue = true;
if (rolesRecus && personneRecue) grille.reload();
} else if (type.equals("publication_liees")) {
if (info.getDonnee(0) != null) {
initialiser();
/branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationForm.java
1,6 → 1,7
package org.tela_botanica.client.vues.publication;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
 
7,9 → 8,12
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable;
import org.tela_botanica.client.composants.GrillePaginable;
import org.tela_botanica.client.composants.InfoLogger;
import org.tela_botanica.client.composants.pagination.ProxyPersonnes;
import org.tela_botanica.client.composants.pagination.ProxyPersonnesAPublication;
import org.tela_botanica.client.composants.pagination.ProxyProjets;
import org.tela_botanica.client.composants.pagination.ProxyPublicationsAPersonne;
import org.tela_botanica.client.composants.pagination.ProxyStructures;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
35,6 → 39,7
 
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.core.XTemplate;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.event.BaseEvent;
66,6 → 71,7
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
114,7 → 120,7
private LayoutContainer zoneHaut, zoneBas;
private ToolBar barreOutils = null;
private EditorGrid<PublicationAPersonne> grilleAuteurs;
private GrillePaginable<ModelData> grilleAuteurs;
private ChampComboBoxRechercheTempsReelPaginable personnesSaisiesComboBox = null;
private Button personnesBoutonSupprimer = null;
private Button personnesBoutonModifier = null;
244,26 → 250,30
Button bouton = new Button();
bouton.setIcon(Images.ICONES.arrowUp());
bouton.setEnabled(false);
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) {
if (grilleAuteurs.getGrille().getSelectionModel().getSelectedItem() != null) {
PublicationAPersonne pap = grilleAuteurs.getSelectionModel().getSelectedItem();
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(pap);
int newIndex = index;
newIndex--;
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
int newIndex = index - 1; // l'auteur monte dans dans la liste donc son ordre diminue
int newOrdre = newIndex + 1; // parce que index commence à zéro
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
// déclenchent et posent problème
changeOrderMarker = true;
pap.setOrdreAuteurs(String.valueOf(newIndex+1));
PublicationAPersonne papSwitch = grilleAuteurs.getStore().getAt(index-1);
int newIndexPapSwitch = index + 1;
papSwitch.setOrdreAuteurs(String.valueOf(newIndexPapSwitch));
grilleAuteurs.getStore().update(papSwitch);
grilleAuteurs.getStore().remove(pap);
grilleAuteurs.getStore().insert(pap, newIndex);
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index-1);
int newOrdrePapSwitch = newOrdre + 1;
 
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));
grilleAuteurs.getStore().update(publiAPersonneSwitch);
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
changeOrderMarker = false;
grilleAuteurs.getSelectionModel().select(newIndex, true);
281,22 → 291,26
public void componentSelected(ButtonEvent ce) {
if (grilleAuteurs.getSelectionModel().getSelectedItem() != null) {
PublicationAPersonne pap = grilleAuteurs.getSelectionModel().getSelectedItem();
ModelData publiAPersonneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(pap);
int newIndex = index;
newIndex++;
int index = grilleAuteurs.getStore().indexOf(publiAPersonneSelectionnee);
int newIndex = index + 1; // l'auteur monte dans dans la liste donc son ordre diminue
int newOrdre = newIndex + 1; // parce que index commence à zéro
// le marqueur suivant est obligatoire sinon les évènements liés au magasin se
// déclenchent et posent problème
changeOrderMarker = true;
pap.setOrdreAuteurs(String.valueOf(newIndex+1));
PublicationAPersonne papSwitch = grilleAuteurs.getStore().getAt(index+1);
int newIndexPapSwitch = index + 1;
papSwitch.setOrdreAuteurs(String.valueOf(newIndexPapSwitch));
grilleAuteurs.getStore().update(papSwitch);
grilleAuteurs.getStore().remove(pap);
grilleAuteurs.getStore().insert(pap, newIndex);
publiAPersonneSelectionnee.set("_ordre_", String.valueOf(newOrdre));
ModelData publiAPersonneSwitch = grilleAuteurs.getStore().getAt(index+1);
int newOrdrePapSwitch = index + 1;
 
publiAPersonneSwitch.set("_ordre_", String.valueOf(newOrdrePapSwitch));
grilleAuteurs.getStore().update(publiAPersonneSwitch);
grilleAuteurs.getStore().remove(publiAPersonneSelectionnee);
grilleAuteurs.getStore().insert(publiAPersonneSelectionnee, newIndex);
changeOrderMarker = false;
grilleAuteurs.getSelectionModel().select(newIndex, true);
323,7 → 337,7
bouton.setIcon(Images.ICONES.vcardModifier());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
Personne personneSaisieSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem().getPersonne();
Personne personneSaisieSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false).getPersonne();
if (personneSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
339,7 → 353,7
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
String personneId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
Personne personneSaisieSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem().getPersonne();
Personne personneSaisieSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false).getPersonne();
personneId = personneSaisieSelectionnee.getId();
}
393,7 → 407,7
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne personneSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
PublicationAPersonne personneSelectionnee = new PublicationAPersonne(grilleAuteurs.getSelectionModel().getSelectedItem(), false);
if (personneSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
447,8 → 461,8
if (personnesSaisiesComboBox.getValeur() instanceof ModelData) {
// N'ajouter l'auteur que s'il n'est pas déjà présent dans la grille et dans les valeurs initiales
Personne personneSaisieSelectionnee = new Personne(personnesSaisiesComboBox.getValeur());
PublicationAPersonne pap = new PublicationAPersonne();
pap.setPersonne(personneSaisieSelectionnee);
PublicationAPersonne pap = new PublicationAPersonne(false);
pap.setPersonne(personneSaisieSelectionnee, true);
pap.setOrdreAuteurs(String.valueOf(grilleAuteurs.getStore().getCount()+1));
if (modeDeCreation != Formulaire.MODE_AJOUTER) {
pap.setPublicationLiee(publication);
521,108 → 535,102
}
}
private EditorGrid<PublicationAPersonne> creerGrilleAuteurs() {
private GrillePaginable<ModelData> creerGrilleAuteurs() {
ListStore<PublicationAPersonne> storeGrilleAuteurs = new ListStore<PublicationAPersonne>();
// ModelType
ModelType modelTypePersonnesAPublication = new ModelType();
modelTypePersonnesAPublication.setRoot("publicationsAPersonne");
modelTypePersonnesAPublication.setTotalName("nbElements");
modelTypePersonnesAPublication.addField("cpuap_id_personne");
modelTypePersonnesAPublication.addField("cpuap_id_publication");
modelTypePersonnesAPublication.addField("cpuap_id_role");
modelTypePersonnesAPublication.addField("cpuap_ordre");
modelTypePersonnesAPublication.addField("cp_id_personne");
modelTypePersonnesAPublication.addField("cp_fmt_nom_complet");
modelTypePersonnesAPublication.addField("cp_nom");
modelTypePersonnesAPublication.addField("cp_prenom");
modelTypePersonnesAPublication.addField("cp_id_personne");
modelTypePersonnesAPublication.addField("cp_code_postal");
modelTypePersonnesAPublication.addField("cp_ville");
modelTypePersonnesAPublication.addField("cp_truk_courriel");
// ADD Listener ------------------------------------------------------------------------------------
storeGrilleAuteurs.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
if (!changeOrderMarker) {
// Bug de GXT : Pour récupérer l'élément modifié, j'ai dû faire comme suit
ListStore<PublicationAPersonne> auteursStore = (ListStore<PublicationAPersonne>)ce.getSource();
PublicationAPersonne pap = auteursStore.getAt(ce.getIndex());
// Lorsque l'on reçoit une liste d'auteurs, on leur affecte l'état "modifié", puis
// on les ajoute au magasin mais puisque chaque élément ajouté au magasin déclenche
// l'évènement Store.Add, on est obligé de vérifier si l'objet n'a pas déjà un état
// sinon l'évènement écrase l'état précédent
if (pap.get("_etat_") == null) pap.set("_etat_", aDonnee.ETAT_AJOUTE);
// Proxy
ProxyPersonnesAPublication<ModelData> proxyPersonnesAPublication = new ProxyPersonnesAPublication<ModelData>(null, publicationId);
 
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
ColumnConfig columnOrdre = new ColumnConfig("_ordre_", i18nC.ordre(), 15);
colonnes.add(columnOrdre);
colonnes.add(new ColumnConfig("cp_fmt_nom_complet", i18nC.personneNomComplet(), 150));
colonnes.add(new ColumnConfig("cp_code_postal", i18nC.personneCodePostal(), 150));
colonnes.add(new ColumnConfig("cp_ville", i18nC.personneVille(), 75));
colonnes.add(new ColumnConfig("cp_truk_courriel", i18nC.personneCourriel(), 75));
// Champs de traitement
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_ordre_", "cpuap_ordre");
// Modele de selection
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<ModelData>() {
public void selectionChanged(SelectionChangedEvent<ModelData> se) {
ModelData papSelectionnee = grilleAuteurs.getGrille().getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(papSelectionnee);
if (index >= 1) boutonAuteurUp.setEnabled(true);
else boutonAuteurUp.setEnabled(false);
if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true);
else boutonAuteurDown.setEnabled(false);
}
});
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
// Grille
final GrillePaginable<ModelData> grilleAuteurs = new GrillePaginable<ModelData>(modelTypePersonnesAPublication, virtualFields, proxyPersonnesAPublication, colonnes, modeleDeColonnes);
grilleAuteurs.getGrille().setHeight("100%");
grilleAuteurs.getGrille().setBorders(true);
grilleAuteurs.getGrille().setSelectionModel(modeleDeSelection);
grilleAuteurs.getGrille().getView().setForceFit(true);
grilleAuteurs.getGrille().setAutoExpandColumn("fmt_nom_complet");
grilleAuteurs.getGrille().setStripeRows(true);
grilleAuteurs.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grilleAuteurs.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (!changeOrderMarker) {
actualiserEtatBoutonsBarreOutils();
}
}
});
// REMOVE Listener ------------------------------------------------------------------------------------
storeGrilleAuteurs.addListener(Store.Remove, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
grilleAuteurs.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (!changeOrderMarker) {
actualiserEtatBoutonsBarreOutils();
}
}
});
// UPDATE Listener ------------------------------------------------------------------------------------
storeGrilleAuteurs.addListener(Store.Update, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
grilleAuteurs.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (!changeOrderMarker) {
if (ce.getRecord().isModified("ordre")) {
/** s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin
de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés **/
if (ce.getRecord().isModified("_ordre_")) {
// s'il s'agit d'un auteur que l'on vient d'ajouter à la liste, alors on a pas besoin
// de faire quoique ce soit car l'auteur est déjà dans la liste des auteurs ajoutés
if (ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
// ... do nothing
/** s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut
ajouter cet auteur à la liste des auteurs modifiés **/
// s'il s'agit d'un auteur qui était déjà présent dans la liste initiale, il faut
// ajouter cet auteur à la liste des auteurs modifiés
} else {
if (ce.getModel() instanceof PublicationAPersonne) {
PublicationAPersonne pap = ce.getModel();
auteursModifies.put(pap.getId(), pap);
}
PublicationAPersonne pap = new PublicationAPersonne(ce.getModel(), false);
auteursModifies.put(pap.getId(), pap);
}
}
}
}
});
});
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
ColumnConfig columnOrdre = new ColumnConfig("ordre", i18nC.ordre(), 15);
/*
final TextField<String> ordre = new TextField<String>();
ordre.setValidator(new Validator(){
public String validate(Field<?> field, String value) {
if (value.matches("[0-9]*")) return null;
else return "[Erreur] Le champ 'ordre' doit être un nombre entier.";
}
});
*/
 
colonnes.add(columnOrdre);
colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
colonnes.add(new ColumnConfig("code_postal", i18nC.personneCodePostal(), 150));
colonnes.add(new ColumnConfig("ville", i18nC.personneVille(), 75));
colonnes.add(new ColumnConfig("truk_courriel", i18nC.personneCourriel(), 75));
 
GridSelectionModel<PublicationAPersonne> modeleDeSelection = new GridSelectionModel<PublicationAPersonne>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
EditorGrid<PublicationAPersonne> grilleDesAuteurs = new EditorGrid<PublicationAPersonne>(storeGrilleAuteurs, modeleDeColonnes);
modeleDeSelection.addListener(Events.SelectionChange, new SelectionChangedListener<PublicationAPersonne>() {
public void selectionChanged(SelectionChangedEvent<PublicationAPersonne> se) {
PublicationAPersonne papSelectionnee = grilleAuteurs.getSelectionModel().getSelectedItem();
int index = grilleAuteurs.getStore().indexOf(papSelectionnee);
if (index >= 1) boutonAuteurUp.setEnabled(true);
else boutonAuteurUp.setEnabled(false);
if ((index+1) < grilleAuteurs.getStore().getCount()) boutonAuteurDown.setEnabled(true);
else boutonAuteurDown.setEnabled(false);
}
});
grilleDesAuteurs.setHeight("100%");
grilleDesAuteurs.setBorders(true);
grilleDesAuteurs.setSelectionModel(modeleDeSelection);
grilleDesAuteurs.getView().setForceFit(true);
grilleDesAuteurs.setAutoExpandColumn("fmt_nom_complet");
grilleDesAuteurs.setStripeRows(true);
grilleDesAuteurs.setTrackMouseOver(true);
return grilleDesAuteurs;
return grilleAuteurs;
}
private void genererTitreFormulaire() {
754,23 → 762,23
datePublicationChp.addListener(Events.Valid, creerEcouteurChampObligatoire());
editionFieldset.add(datePublicationChp, new FormData(40, 0));
/*****************************/
/** Champ '' **/
/*****************************/
/*********************************/
/** Champ 'Tome' **/
/*********************************/
tomeChp = new TextField<String>();
tomeChp.setFieldLabel("Série de la revue ou tome");
editionFieldset.add(tomeChp, new FormData(75, 0));
 
/*****************************/
/** Champ '' **/
/*****************************/
/*************************************/
/** Champ 'Fascicule' **/
/*************************************/
fasciculeChp = new TextField<String>();
fasciculeChp.setFieldLabel("Fascicule de la revue");
editionFieldset.add(fasciculeChp, new FormData(75, 0));
 
/*****************************/
/** Champ '' **/
/*****************************/
/*********************************/
/** Champ 'Pages' **/
/*********************************/
pagesChp = new TextField<String>();
pagesChp.setFieldLabel("Pages");
pagesChp.setToolTip("Fomat : NBRE ou NBRE-NBRE. ('NBRE' correspond à une suite de chiffres arabes ou romains ou à un point d'interrogation '?' dans le cas d'une donnée inconnue)");
878,15 → 886,18
}
private void formaterOrdreAuteurs() {
ListStore<PublicationAPersonne> store = grilleAuteurs.getStore();
List<PublicationAPersonne> auteurs = grilleAuteurs.getStore().getModels();
ListStore<ModelData> store = grilleAuteurs.getStore();
List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
Iterator<PublicationAPersonne> itAuteurs = auteurs.iterator();
Iterator<ModelData> itAuteurs = auteurs.iterator();
while (itAuteurs.hasNext()) {
PublicationAPersonne pap = itAuteurs.next();
int ordre = store.indexOf(pap) + 1;
ModelData selection = itAuteurs.next();
PublicationAPersonne pap = new PublicationAPersonne(selection, false);
int ordre = store.indexOf(selection) + 1;
if (pap.getOrdreAuteurs() != String.valueOf(ordre)) {
pap.setOrdreAuteurs(String.valueOf(ordre));
pap.setOrdreAuteurs(String.valueOf(ordre));
auteursModifies.put(pap.getId(), pap);
}
}
971,13 → 982,13
private String construireIntituleAuteur() {
String intituleAuteur = "";
// ranger par ordre désigné par le champ 'cpuap_ordre' de la table PublicationAPersonne
grilleAuteurs.getStore().sort("ordre", SortDir.ASC);
List<PublicationAPersonne> auteurs = grilleAuteurs.getStore().getModels();
Iterator<PublicationAPersonne> itAuteurs = auteurs.iterator();
// rangé par ordre désigné par le champ 'cpuap_ordre' de la table PublicationAPersonne
grilleAuteurs.getStore().sort("_ordre_", SortDir.ASC);
List<ModelData> auteurs = grilleAuteurs.getStore().getModels();
Iterator<ModelData> itAuteurs = auteurs.iterator();
while (itAuteurs.hasNext()) {
Personne personneCourante = itAuteurs.next().getPersonne();
Personne personneCourante = new PublicationAPersonne(itAuteurs.next(), false).getPersonne();
intituleAuteur += personneCourante.getNom().toUpperCase() + " " + personneCourante.getPrenom();
if (itAuteurs.hasNext()) {
intituleAuteur+=", ";
1125,8 → 1136,6
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Publication) {
publication = (Publication) nouvellesDonnees;
} else if (nouvellesDonnees instanceof PublicationAPersonneListe) {
rafraichirListeAuteurs((PublicationAPersonneListe) nouvellesDonnees);
} else if (nouvellesDonnees instanceof Information) {
rafraichirInformation((Information) nouvellesDonnees);
} else {
1134,23 → 1143,9
}
}
private void rafraichirListeAuteurs(PublicationAPersonneListe auteurs) {
Iterator<String> it = auteurs.keySet().iterator();
while (it.hasNext()) {
PublicationAPersonne auteur = auteurs.get(it.next());
auteur.set("_etat_", aDonnee.ETAT_MODIFIE);
auteursInitialListe.put(auteur.getId(), auteur);
}
private void rafraichirInformation(Information info) {
grilleAuteurs.getStore().removeAll();
grilleAuteurs.getStore().add(auteursInitialListe.toList());
grilleAuteurs.getStore().sort("ordre", SortDir.ASC);
layout();
}
private void rafraichirInformation(Information info) {
String type = info.getType();
if (type.equals("auteurs_enregistres")) {
miseAJourAuteursInitialListe();
initialiserAuteurs();
1179,7 → 1174,7
if (modeDeCreation != Formulaire.MODE_AJOUTER) pap.setPublicationLiee(publication);
// supprimer l'entrée précédente
PublicationAPersonne personneDansGrille = grilleAuteurs.getStore().findModel("id_personne", personne.getId());
PublicationAPersonne personneDansGrille = new PublicationAPersonne(grilleAuteurs.getStore().findModel("cp_id_personne", personne.getId()), false);
int index = grilleAuteurs.getStore().indexOf(personneDansGrille);
grilleAuteurs.getStore().remove(personneDansGrille);
1199,7 → 1194,7
} else {
InfoLogger.display("Ajout d'une publication", info.toString());
}
}
}
}
private void repandreRafraichissement() {