Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1468 → Rev 1513

/trunk/src/org/tela_botanica/client/vues/FenetreForm.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FenetreForm.java:r11-702
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FenetreForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FormulaireOnglet.java:r11-686
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FormulaireOnglet.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/NavigationVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/NavigationVue.java:r11-981
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/NavigationVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureDetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java
3,6 → 3,7
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
 
import org.tela_botanica.client.ComposantClass;
792,14 → 793,7
}
String dateFondation = identification.getAnneeOuDateFondation();
if (!dateFondation.equals("")) {
if (dateFondation.endsWith("00-00")) {
dateFondationChp.setValue(dateFondation.substring(0, 4));
} else {
Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation);
dateFondationChp.setValue(DateTimeFormat.getFormat("dd/MM/yyyy").format(date));
}
}
dateFondationChp.setValue(dateFondation);
descriptionChp.setValue(identification.getDescription());
conditionAccesChp.setValue(identification.getConditionAcces());
2033,8 → 2027,6
}
public void rafraichir(Object nouvellesDonnees) {
try {
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
2052,11 → 2044,10
controlerFermeture();
}
public void rafraichirInformation(Information info) {
public void rafraichirInformation(Information info) {
if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
}
 
if (info.getType().equals("modif_structure")) {
InfoLogger.display("Modification d'une institution", info.toString());
2083,10 → 2074,15
InfoLogger.display("Modification d'une institution", info.toString());
String titre = i18nC.titreModifFormStructurePanneau();
if (info.getDonnee(0) != null) {
identification = (Structure) info.getDonnee(0);
if (onglets.getSelectedItem().equals(identificationOnglet)) {
peuplerStructureIdentification();
try {
identification = (Structure) info.getDonnee(0);
if (onglets.getSelectedItem().equals(identificationOnglet)) {
peuplerStructureIdentification();
}
} catch(Exception e) {
GWT.log("Problème de cast. "+info.getDonnee(0)+" ne peut être casté en Structure", e);
}
// Composition du titre
titre += " - ID : "+identification.getId();
}
2270,4 → 2266,5
private void initialiserGrillePersonnelEnModification() {
mediateur.selectionnerStructureAPersonne(this, identification.getId(), StructureAPersonne.ROLE_EQUIPE, null);
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure/StructureForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure/StructureForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/structure
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/structure:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/structure:r1417-1511
/trunk/src/org/tela_botanica/client/vues/DetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/DetailVue.java:r11-452,929-935
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/DetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java
45,6 → 45,7
private boolean listeIndexationFrequenceChargee = false;
private ValeurListe valeurListeLangue = null;
private boolean listeLangueChargee = false;
private boolean displayUrl = true;
 
private Sequenceur sequenceur;
52,8 → 53,6
super(mediateurCourant);
this.sequenceur = sequenceur;
initialiserTousLesTpl();
panneauPrincipal = new ContentPanel();
panneauPrincipal.setLayout(new FitLayout());
panneauPrincipal.setHeaderVisible(false);
96,8 → 95,12
" <span class='{css_label}'>{i18n_nom} :</span> {nom}<br />"+
" <span class='{css_label}'>{i18n_abreviation} :</span> {abreviation}<br />"+
" <span class='{css_label}'>{i18n_resume} :</span> {resume}<br />"+
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />"+
" <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />"+
" <span class='{css_label}'>{i18n_description} :</span> {description}<br />";
if (projet.getUrl() != null && !UtilString.isEmpty(projet.getUrl()))
contenuTpl += " <span class='{css_label}'>{i18n_url} :</span> <a class='{css_lien_ext}' href='{url}' onclick='window.open(this.href); return false;'>{url}</a><br />";
contenuTpl +=
" </div>"+
" <div class='{css_fieldset}'>"+
" <h2>{i18n_titre_complement}</h2>"+
230,6 → 233,9
if (Mediateur.DEBUG) System.out.println("|| ProjetDetailVue > Réception d'un Projet");
projet = (Projet) nouvellesDonnees;
projetChargementOk = true;
initialiserTousLesTpl();
} else if (nouvellesDonnees instanceof ProjetListe) {
if (Mediateur.DEBUG) System.out.println("|| ProjetDetailVue > Réception d'une ProjetListe");
projets = (ProjetListe) nouvellesDonnees;
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetDetailVue.java:r11-934
/trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/projet
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/projet:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/projet:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireDetailVue.java:r11-984
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire/CommentaireForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/commentaire
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/commentaire:r11-984
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/commentaire:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FenetreJournal.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FenetreJournal.java:r11-1208
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FenetreJournal.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/MenuVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/MenuVue.java:r11-443
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/MenuVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java:r11-593
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/BarrePaginationVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/accueil
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/accueil:r11-911
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/accueil:r1417-1511
/trunk/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;
176,7 → 182,6
if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
mediateurCourrant.selectionnerPublication(this, publicationId, sequenceur);
mediateurCourrant.selectionnerPublicationAPersonne(this, publicationId, null, PublicationAPersonne.ROLE_AUTEUR, sequenceur);
sequenceur.enfilerRafraichissement(this, new Information("chargement_modifier_ok"));
}
}
244,26 → 249,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 → 290,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 → 336,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 → 352,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 → 406,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 → 460,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 → 534,103
}
}
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
// ATTENTION : le constructure de cette grille est à vérifier!
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+=", ";
1110,12 → 1121,17
return valeur;
}
private void setValeurComboProjets() {
if (projetsCombo.getStore() != null ) {
if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) {
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", publication.getIdProjet()));
} else if (mode.equals(Formulaire.MODE_AJOUTER)) {
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId()));
if (mode.equals(Formulaire.MODE_MODIFIER) && publication != null) {
if (projetsCombo.getCombo().getStore() != null
&& publication != null
&& publication.getIdProjet() != null
&& !UtilString.isEmpty(publication.getIdProjet())) {
projetsCombo.chargerValeurInitiale(publication.getIdProjet(), "cpr_id_projet");
}
} else if (mode.equals(Formulaire.MODE_AJOUTER)) {
projetsCombo.getCombo().setValue(projetsCombo.getStore().findModel("cpr_id_projet", mediateur.getProjetId()));
} else {
projetsCombo.getCombo().setValue(null);
}
}
1125,8 → 1141,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 → 1148,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 → 1179,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 → 1199,7
} else {
InfoLogger.display("Ajout d'une publication", info.toString());
}
}
}
}
private void repandreRafraichissement() {
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication/PublicationDetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/publication
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/publication:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/publication:r11-934
/trunk/src/org/tela_botanica/client/vues/ContenuVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/ContenuVue.java:r11-443,923-935
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/ContenuVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java:r11-774
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FormulaireBarreValidation.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/PopupChargement.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/PopupChargement.java:r11-334
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/PopupChargement.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/EnteteVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/EnteteVue.java:r11-443
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/EnteteVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/StatutVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/StatutVue.java:r11-442
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/StatutVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/Formulaire.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/Formulaire.java:r11-636,649-686
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/Formulaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/FiltreVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/FiltreVue.java:r11-981
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/FiltreVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java
1,6 → 1,7
package org.tela_botanica.client.vues.personne;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
7,7 → 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.ProxyCollectionAPublication;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.composants.pagination.ProxyPublicationsAPersonne;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
29,6 → 35,8
import org.tela_botanica.client.vues.publication.PublicationForm;
 
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;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
45,7 → 53,9
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Validator;
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;
70,16 → 80,18
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<PublicationAPersonne> grille;
private GrillePaginable<ModelData> grille;
private PublicationAPersonneListe publicationsAjoutees = null;
private PublicationAPersonneListe publicationsSupprimees = null;
private ComboBox<Publication> publicationsSaisiesComboBox = null;
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null;
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
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;
86,56 → 98,36
public PersonneFormPublication(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
setId("publication");
setText(Mediateur.i18nC.collectionPublication());
setText(Mediateur.i18nC.personneOngletPublication());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
setLayout(new FitLayout());
barreOutils = creerBarreOutilsGrille();
panneauPrincipal.setTopComponent(barreOutils);
panneauPrincipal.setLayout(new FitLayout());
grille = creerGrille();
panneauPrincipal.add(grille);
add(panneauPrincipal);
initialiser();
}
private void initialiser() {
 
// Remise à zéro des modification dans la liste des auteurs
idGenere = 1;
publicationsAjoutees = new PublicationAPersonneListe();
publicationsSupprimees = new PublicationAPersonneListe();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
}
public void mettreAJourPersonne() {
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() {
ContentPanel panneau = new ContentPanel();
panneau.setHeading(i18nC.collectionPublication()+" " + i18nC.personnePublication());
panneau.setHeading(i18nC.personneOngletPublication()+" " + i18nC.personnePublication());
panneau.setIcon(Images.ICONES.table());
panneau.setLayout(new FitLayout());
panneau.setFrame(true);
189,7 → 181,7
bouton.setIcon(Images.ICONES.vcardModifier());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData publicationSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
205,7 → 197,7
private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
String publicationId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
PublicationAPersonne publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
PublicationAPersonne publicationSaisiSelectionne = new PublicationAPersonne(grille.getGrille().getSelectionModel().getSelectedItem(), false);
publicationId = publicationSaisiSelectionne.getIdPublication();
}
259,7 → 251,7
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
PublicationAPersonne publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
PublicationAPersonne publicationSaisieSelectionnee = new PublicationAPersonne(grille.getGrille().getSelectionModel().getSelectedItem(), false);
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
290,35 → 282,62
}
}
private ComboBox<Publication> creerComboBoxPublicationsSaisis() {
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>();
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() {
ComboBox<Publication> comboBox = new ComboBox<Publication>();
comboBox.setWidth(400);
comboBox.setEmptyText(i18nC.chercherPublicationSaisi());
comboBox.setTriggerAction(TriggerAction.ALL);
comboBox.setEditable(true);
comboBox.setDisplayField("fmt_nom_complet");
comboBox.setStore(publicationsSaisiesStore);
comboBox.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) {
if (!ce.isNavKeyPress()) {
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue());
}
ModelType modelTypePublications = new ModelType();
modelTypePublications.setRoot("publications");
modelTypePublications.setTotalName("nbElements");
modelTypePublications.addField("ccapu_id_personne");
modelTypePublications.addField("ccapu_id_publication");
modelTypePublications.addField("cpu_id_publication");
modelTypePublications.addField("cpu_fmt_nom_complet");
modelTypePublications.addField("cpu_titre");
modelTypePublications.addField("cpu_nom");
modelTypePublications.addField("cpu_fmt_auteur");
modelTypePublications.addField("cpu_indication_nvt");
modelTypePublications.addField("cpu_truk_pages");
modelTypePublications.addField("cpu_fascicule");
modelTypePublications.addField("cpu_date_parution");
modelTypePublications.addField("cpu_ce_truk_editeur");
modelTypePublications.addField("cpu_ce_projet");
modelTypePublications.addField("cpu_collection");
String displayNamePublications = "cpu_fmt_nom_complet";
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null);
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications);
publicationsCombo.getCombo().setTabIndex(tabIndex++);
publicationsCombo.getCombo().setForceSelection(true);
 
publicationsCombo.getCombo().setValidator(new Validator() {
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (publicationsSaisiesComboBox.getValue() instanceof Publication) {
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue();
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) {
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false);
ajouterDansGrille(publicationSaisieSelectionne);
publicationsSaisiesComboBox.setValue(null);
publicationsSaisiesComboBox.getCombo().setValue(null);
}
}
});
return comboBox;
return publicationsCombo;
}
private void ajouterDansGrille(Publication publication) {
328,7 → 347,7
private void ajouterDansGrille(Publication publication, int index) {
if (publication != null) {
if (!listePublicationsLiees.containsKey(publication.getId())) {
PublicationAPersonne publicationLiee = new PublicationAPersonne();
PublicationAPersonne publicationLiee = new PublicationAPersonne(false);
publicationLiee.setPersonne(personneSelectionnee);
publicationLiee.setPublicationLiee(publication);
publicationLiee.setIdPublication(publication.getId());
335,12 → 354,12
 
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
listePublicationsLiees.put(publication.getId(), publicationLiee);
 
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(publicationLiee, 0);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(publicationLiee, 0);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
} else {
InfoLogger.display("Information", "La publication choisie existe déjà dans la liste.");
}
370,44 → 389,127
}
}
 
private EditorGrid<PublicationAPersonne> creerGrille() {
private GrillePaginable<ModelData> creerGrille() {
ListStore<PublicationAPersonne> storeGrille = new ListStore<PublicationAPersonne>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Update, new Listener<StoreEvent<PublicationAPersonne>>() {
public void handleEvent(StoreEvent<PublicationAPersonne> ce) {
if (ce.getRecord().isModified("_role_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
GrillePaginable<ModelData> grillePublications = null;
// ModelType
ModelType modelTypePublicationAPersonne = new ModelType();
modelTypePublicationAPersonne.setRoot("publicationsAPersonne");
modelTypePublicationAPersonne.setTotalName("nbElements");
modelTypePublicationAPersonne.addField("cpuap_id_personne");
modelTypePublicationAPersonne.addField("cpuap_id_publication");
modelTypePublicationAPersonne.addField("cpuap_id_role");
modelTypePublicationAPersonne.addField("cpu_id_publication");
modelTypePublicationAPersonne.addField("cpu_fmt_auteur");
modelTypePublicationAPersonne.addField("cpu_titre");
modelTypePublicationAPersonne.addField("cpu_collection");
modelTypePublicationAPersonne.addField("cpu_ce_truk_editeur");
modelTypePublicationAPersonne.addField("cpu_date_parution");
modelTypePublicationAPersonne.addField("cpu_fascicule");
modelTypePublicationAPersonne.addField("cpu_truk_pages");
modelTypePublicationAPersonne.addField("cpu_indication_nvt");
// Proxy
ProxyPublicationsAPersonne<ModelData> proxyPublicationsAPersonne = new ProxyPublicationsAPersonne<ModelData>(null, null, null);
 
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
RowNumberer numeroPlugin = new RowNumberer();
numeroPlugin.setHeader("#");
XTemplate infoTpl = XTemplate.create("<p>"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {cpu_fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {cpu_titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {cpu_collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
"</p>");
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(expansionPlugin);
colonnes.add(numeroPlugin);
colonnes.add(creerColonneTypeRelation());
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
colonnes.add(new ColumnConfig("cpu_indication_nvt", i18nC.publicationNvt(), 75));
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");
virtualFields.put("_role_", "cpuap_id_role");
virtualFields.put("_etat_", "");
// Modele de selection
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
// Grille
grillePublications = new GrillePaginable<ModelData>(modelTypePublicationAPersonne, virtualFields, proxyPublicationsAPersonne, colonnes, modeleDeColonnes);
grillePublications.getGrille().setBorders(true);
grillePublications.getGrille().setSelectionModel(modeleDeSelection);
grillePublications.getGrille().addPlugin(expansionPlugin);
grillePublications.getGrille().addPlugin(numeroPlugin);
grillePublications.getGrille().getView().setForceFit(true);
grillePublications.getGrille().setAutoExpandColumn("titre");
grillePublications.getGrille().setStripeRows(true);
grillePublications.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePublications.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
grillePublications.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
grillePublications.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (ce.getModel().get("_role_") != null && ce.getRecord().isModified("_role_") && ce.getModel().get("_etat_") != null && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
return grillePublications;
}
private ColumnConfig creerColonneEditeur() {
GridCellRenderer<ModelData> editeurRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
PublicationAPersonne pap = new PublicationAPersonne(model, true);
String editeur = pap.getPublicationLiee().getNomEditeur();
model.set("_editeur_", editeur);
return editeur;
}
};
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135);
editeurColonne.setRenderer(editeurRendu);
return editeurColonne;
}
private ColumnConfig creerColonneAnneePublication() {
GridCellRenderer<ModelData> datePublicationRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
PublicationAPersonne pap = new PublicationAPersonne(model, true);
String annee = pap.getPublicationLiee().getAnneeParution();
model.set("_annee_", annee);
return annee;
}
};
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75);
datePublicationColonne.setRenderer(datePublicationRendu);
return datePublicationColonne;
}
private ColumnConfig creerColonneTypeRelation() {
typeRelationCombo = new ComboBox<Valeur>();
typeRelationCombo.setForceSelection(true);
typeRelationCombo.setTriggerAction(TriggerAction.ALL);
441,17 → 543,24
}
}
return retour;
}
}
};
GridCellRenderer<PublicationAPersonne> relationRendu = new GridCellRenderer<PublicationAPersonne>() {
public String render(PublicationAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grille) {
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) {
// Gestion du texte afficher dans la cellule
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;
458,65 → 567,12
}
};
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonneCollection(), 75);
ColumnConfig typeRelationColonne = new ColumnConfig("_role_", i18nC.typeRelationPersonne(), 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));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
GridSelectionModel<PublicationAPersonne> modeleDeSelection = new GridSelectionModel<PublicationAPersonne>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
EditorGrid<PublicationAPersonne> grillePublications = new EditorGrid<PublicationAPersonne>(storeGrille, modeleDeColonnes);
grillePublications.setHeight("100%");
grillePublications.setBorders(true);
grillePublications.setSelectionModel(modeleDeSelection);
grillePublications.addPlugin(expansionPlugin);
grillePublications.addPlugin(numeroPlugin);
grillePublications.getView().setForceFit(true);
grillePublications.setAutoExpandColumn("titre");
grillePublications.setStripeRows(true);
grillePublications.setTrackMouseOver(true);
return grillePublications;
return typeRelationColonne;
}
private ColumnConfig creerColonneEditeur() {
GridCellRenderer<PublicationAPersonne> editeurRendu = new GridCellRenderer<PublicationAPersonne>() {
public String render(PublicationAPersonne model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grid) {
String editeur = model.getPublicationLiee().getNomEditeur();
model.set("_editeur_", editeur);
return editeur;
}
};
ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135);
editeurColonne.setRenderer(editeurRendu);
return editeurColonne;
}
private ColumnConfig creerColonneAnneePublication() {
GridCellRenderer<PublicationAPersonne> datePublicationRendu = new GridCellRenderer<PublicationAPersonne>() {
public String render(PublicationAPersonne model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<PublicationAPersonne> store, Grid<PublicationAPersonne> grid) {
String annee = model.getPublicationLiee().getAnneeParution();
model.set("_annee_", annee);
return annee;
}
};
ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75);
datePublicationColonne.setRenderer(datePublicationRendu);
return datePublicationColonne;
}
 
public void actualiserEtatBoutonsBarreOutils() {
// Activation des boutons si la grille contient un élément
544,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;
570,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("[]")) {
582,7 → 629,12
GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
}
String type = info.getType();
if (type.equals("publication_liees")) {
if (type.equals("personne")) {
mettreAJourPersonne();
((ProxyPublicationsAPersonne)grille.getProxy()).setPersonneId(personneSelectionnee.getId());
personneRecue = true;
if (rolesRecus && personneRecue) grille.reload();
} else if (type.equals("publication_liees")) {
if (info.getDonnee(0) != null) {
initialiser();
personneSelectionnee.setPublicationsLiees((PublicationAPersonneListe) info.getDonnee(0));
591,7 → 643,7
} else if (type.equals("publication_modifiee")) {
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
PublicationAPersonne publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
ModelData publicationDansGrille = grille.getStore().findModel("cpu_id_publication", publication.getId());
int index = grille.getStore().indexOf(publicationDansGrille);
grille.getStore().remove(publicationDansGrille);
ajouterDansGrille(publication, index);
622,17 → 674,18
if (etreAccede()) {
int nbrePublication = grille.getStore().getCount();
for (int i = 0; i < nbrePublication; i++) {
PublicationAPersonne publicationLiee = grille.getStore().getAt(i);
ModelData publicationLiee = grille.getStore().getAt(i);
PublicationAPersonne pap = new PublicationAPersonne(publicationLiee, false);
if (publicationLiee.get("_etat_") != null) {
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
publicationsSupprimees.put("id"+idGenere++, publicationLiee);
PublicationAPersonne relationAAjouter = (PublicationAPersonne) publicationLiee.cloner(new PublicationAPersonne());
publicationsSupprimees.put("id"+idGenere++, pap);
PublicationAPersonne relationAAjouter = pap;
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, publicationLiee);
publicationsAjoutees.put("id"+idGenere++, pap);
}
// Initialisation de la grille
publicationLiee.set("_etat_", "");
646,14 → 699,14
public List verifier() {
List lstMessageErreur = new LinkedList<String>();
//Vérifier les roles
List<PublicationAPersonne> listePublis = grille.getStore().getModels();
Iterator<PublicationAPersonne> itPublis = listePublis.iterator();
List<ModelData> listePublis = grille.getStore().getModels();
Iterator<ModelData> itPublis = listePublis.iterator();
while (itPublis.hasNext()) {
PublicationAPersonne publi = itPublis.next();
if (UtilString.isEmpty((String) publi.get("_role_"))) {
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + (grille.getStore().indexOf(publi) + 1));
}
}
ModelData publi = itPublis.next();
if (UtilString.isEmpty((String) publi.get("_role_"))) {
lstMessageErreur.add("Vous devez choisir le rôle de la relation " + (grille.getStore().indexOf(publi) + 1));
}
}
return lstMessageErreur;
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java:r11-990
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneFormPublication.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java
120,11 → 120,12
enteteParams.set("nom", (String) personne.get("fmt_nom_complet"));
enteteParams.set("mail", (String) personne.getCourrielPrinc());
 
tabLogos.removeAll();
LinkedList lstLogos = (LinkedList) personne
.getChaineDenormaliseAsMapOrList("truk_logo");
if (lstLogos != null && lstLogos.size() > 0) {
 
tabLogos.removeAll();
String urlLogoPrinc = (String) lstLogos.get(0);
if (!urlLogoPrinc.trim().equals("")) {
tplEntete = "<div id='personne-logo-div'><img src='{image}' alt='logo' /></div>"
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneDetailVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java
915,6 → 915,8
this.personne = personne;
this.personneId = personne.getId();
tiPubli.rafraichirInformation(new Information("personne"));
nouvellesDonnees = null;
} else {
InfoLogger.display("messages", info.getMessages().toString());
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/personne/PersonneForm.java:r11-934
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/personne/PersonneForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormContenu.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java
31,7 → 31,7
 
listeCollectionPanneau = new CollectionListeVue(mediateur);
add(listeCollectionPanneau, new BorderLayoutData(LayoutRegion.CENTER));
 
detailCollectionPanneau = new CollectionDetailVue(mediateur, sequenceur);
BorderLayoutData dispositionSud = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000);
dispositionSud.setSplit(true);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionVue.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java
438,7 → 438,7
return valeur;
}
private void setValeurComboStructures() {
if (structuresCombo.getCombo().getStore() != null
if (structuresCombo.getCombo().getStore() != null
&& collection != null
&& collection.getStructureNom() != null
&& !UtilString.isEmpty(collection.getStructureNom())) {
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormGeneral.java:r11-933
/trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java:r1417-1511
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionDetailVue.java:r11-933
/trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java
70,7 → 70,7
mediateurCourrant.selectionnerCollection(this, collectionId, null, sequenceur);
mediateurCourrant.selectionnerCollectionAPersonne(this, collectionId, null, sequenceur);
mediateurCourrant.selectionnerCollectionAPublication(this, collectionId, sequenceur);
mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur);
//mediateurCourrant.selectionnerCollectionACommentaire(this, collectionId, sequenceur);
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionForm.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionForm.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java
1,11 → 1,18
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
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.ProxyCollectionACommentaire;
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne;
import org.tela_botanica.client.composants.pagination.ProxyCommentaires;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
17,6 → 24,7
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
import org.tela_botanica.client.modeles.commentaire.Commentaire;
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
import org.tela_botanica.client.modeles.publication.Publication;
import org.tela_botanica.client.synchronisation.Sequenceur;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.vues.FenetreForm;
26,6 → 34,8
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
 
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
42,7 → 52,9
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Validator;
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;
52,6 → 64,7
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
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.toolbar.SeparatorToolItem;
66,13 → 79,13
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<CollectionACommentaire> grille;
private GrillePaginable<ModelData> grille = null;
private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
private CollectionACommentaireListe commentairesAjoutes = null;
private CollectionACommentaireListe commentairesModifies = null;
private CollectionACommentaireListe commentairesSupprimes = null;
private ComboBox<Commentaire> commentairesSaisisComboBox = null;
private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null;
private Button commentairesBoutonSupprimer = null;
private Button commentairesBoutonModifier = null;
83,11 → 96,15
private Sequenceur sequenceur;
public CollectionFormCommentaire(Formulaire formulaireCourrant) {
initialiserOnglet(formulaireCourrant);
setLayout(new FitLayout());
setId(ID);
setText(Mediateur.i18nC.collectionCommentaire());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
barreOutils = creerBarreOutilsGrille();
panneauPrincipal.setTopComponent(barreOutils);
96,8 → 113,6
mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection", null);
add(panneauPrincipal);
initialiser();
}
private void initialiser() {
104,9 → 119,6
// Remise à zéro des modification dans la liste des commentaires
initialiserGestionCommentaires();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
collection = ((CollectionForm) formulaire).collection;
}
181,7 → 193,7
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
CollectionACommentaire commentaireSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
ModelData commentaireSaisiSelectionne = grille.getGrille().getSelectionModel().getSelectedItem();
if (commentaireSaisiSelectionne == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
} else {
196,8 → 208,9
private FenetreForm creerFenetreModaleAvecFormulaireCommentaire(String mode) {
String commentaireId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
CollectionACommentaire commentaierSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
commentaireId = commentaierSaisieSelectionnee.getIdCommentaire();
ModelData commentaierSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
CollectionACommentaire cac = new CollectionACommentaire(commentaierSaisieSelectionnee, false);
commentaireId = cac.getIdCommentaire();
}
final FenetreForm fenetre = new FenetreForm("");
251,11 → 264,12
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionACommentaire commentaireSaisiSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData commentaireSaisiSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
CollectionACommentaire cac = new CollectionACommentaire(commentaireSaisiSelectionnee, false);
if (commentaireSaisiSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
} else {
supprimerDansGrille(commentaireSaisiSelectionnee);
supprimerDansGrille(cac);
}
}
});
273,36 → 287,52
return bouton;
}
private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() {
ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>();
commentairesSaisiesStore.add(new ArrayList<Commentaire>());
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() {
ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>();
comboBox.setWidth(200);
comboBox.setEmptyText(i18nC.chercherCommentaireSaisi());
comboBox.setTriggerAction(TriggerAction.ALL);
comboBox.setEditable(true);
comboBox.setDisplayField("titre");
comboBox.setStore(commentairesSaisiesStore);
comboBox.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) {
if (!ce.isNavKeyPress()) {
obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue());
}
ModelType modelTypeCommentaires = new ModelType();
modelTypeCommentaires.setRoot("commentaires");
modelTypeCommentaires.setTotalName("nbElements");
modelTypeCommentaires.addField("ccm_id_commentaire");
modelTypeCommentaires.addField("ccm_ce_pere");
modelTypeCommentaires.addField("ccm_ce_projet");
modelTypeCommentaires.addField("ccm_titre");
modelTypeCommentaires.addField("ccm_texte");
modelTypeCommentaires.addField("ccm_ponderation");
modelTypeCommentaires.addField("ccm_mark_public");
String displayNameCommentaires = "ccm_titre";
ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null);
final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires);
commentairesCombo.getCombo().setTabIndex(tabIndex++);
commentairesCombo.getCombo().setForceSelection(true);
commentairesCombo.getCombo().setValidator(new Validator() {
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (commentairesSaisisComboBox.getValue() instanceof Commentaire) {
Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue();
if (commentairesSaisisComboBox.getValeur() instanceof ModelData) {
Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur());
ajouterDansGrille(commentaireSaisiSelectionnee);
commentairesSaisisComboBox.setValue(null);
commentairesSaisisComboBox.getCombo().setValue(null);
}
}
});
return comboBox;
return commentairesCombo;
}
private void ajouterDansGrille(Commentaire commentaire) {
325,10 → 355,10
corrigerChampsGrille(relationCollectionACommentaire);
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(relationCollectionACommentaire, index);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(relationCollectionACommentaire, index);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
}
}
346,31 → 376,34
}
}
 
private EditorGrid<CollectionACommentaire> creerGrille() {
ListStore<CollectionACommentaire> storeGrille = new ListStore<CollectionACommentaire>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionACommentaire>>() {
public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
if (ce.getRecord().isModified("_type_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
private GrillePaginable<ModelData> creerGrille() {
RowNumberer pluginLigneNumero = new RowNumberer();
GrillePaginable<ModelData> grillePaginable = null;
 
// ModelType
ModelType modelTypeCollectionACommentaire = new ModelType();
modelTypeCollectionACommentaire.setRoot("collectionsACommentaire");
modelTypeCollectionACommentaire.setTotalName("nbElements");
modelTypeCollectionACommentaire.addField("ccac_id_commentaire");
modelTypeCollectionACommentaire.addField("ccac_id_collection");
modelTypeCollectionACommentaire.addField("ccac_truk_type");
modelTypeCollectionACommentaire.addField("ccm_id_commentaire");
modelTypeCollectionACommentaire.addField("ccm_titre");
modelTypeCollectionACommentaire.addField("ccm_texte");
modelTypeCollectionACommentaire.addField("ccm_ponderation");
modelTypeCollectionACommentaire.addField("ccm_mark_public");
modelTypeCollectionACommentaire.addField("ccm_ce_pere");
modelTypeCollectionACommentaire.addField("ccm_ce_projet");
// Proxy
ProxyCollectionACommentaire<ModelData> proxyCollectionACommentaire = new ProxyCollectionACommentaire<ModelData>(null, collection.getId());
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(pluginLigneNumero);
RowNumberer pluginLigneNumero = new RowNumberer();
colonnes.add(pluginLigneNumero);
colonnes.add(creerColonneType());
colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
colonnes.add(new ColumnConfig("_texte_", i18nC.commentaireTexte(), 75));
377,20 → 410,38
colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 35));
colonnes.add(creerColonneAcces());
GridSelectionModel<CollectionACommentaire> modeleDeSelection = new GridSelectionModel<CollectionACommentaire>();
// Modèle de colonnes
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
EditorGrid<CollectionACommentaire> grille = new EditorGrid<CollectionACommentaire>(storeGrille, modeleDeColonnes);
grille.setHeight("100%");
grille.setBorders(true);
grille.setSelectionModel(modeleDeSelection);
grille.addPlugin(pluginLigneNumero);
grille.getView().setForceFit(true);
grille.setAutoExpandColumn("_titre_");
grille.setStripeRows(true);
grille.setTrackMouseOver(true);
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_titre_", "ccm_titre");
virtualFields.put("_texte_", "ccm_texte");
virtualFields.put("_ponderation_", "ccm_ponderation");
virtualFields.put("_type_", "ccac_truk_type");
virtualFields.put("_public_", "ccm_mark_public");
virtualFields.put("_etat_", "");
return grille;
// Grille
grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionACommentaire, virtualFields, proxyCollectionACommentaire, colonnes, modeleDeColonnes);
grillePaginable.getGrille().setBorders(true);
grillePaginable.getGrille().setSelectionModel(modeleDeSelection);
grillePaginable.getGrille().addPlugin(pluginLigneNumero);
grillePaginable.getGrille().getView().setForceFit(true);
grillePaginable.getGrille().setAutoExpandColumn("_titre_");
grillePaginable.getGrille().setStripeRows(true);
grillePaginable.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
if (ce.getRecord().isModified("_type_") && ce.getModel().get("_etat_") == null || !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
}
}
});
return grillePaginable;
}
private ColumnConfig creerColonneType() {
424,8 → 475,8
}
};
 
GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
GridCellRenderer<ModelData> typeRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String type = model.get("_type_");
if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
type = typeCombo.formaterIdentifiantsEnTexte(type);
441,9 → 492,10
}
private ColumnConfig creerColonneAcces() {
GridCellRenderer<CollectionACommentaire> accesRendu = new GridCellRenderer<CollectionACommentaire>() {
public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
String acces = (model.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
GridCellRenderer<ModelData> accesRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
CollectionACommentaire cac = new CollectionACommentaire(model, true);
String acces = (cac.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
model.set("_public_", acces);
return acces;
}
473,9 → 525,6
} else if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof CommentaireListe) {
CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees;
rafraichirCommentairesListe(listeCommentaires);
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
}
524,7 → 573,7
} else if (type.equals("commentaire_modifiee")) {
if (info.getDonnee(0) != null) {
Commentaire commentaire = (Commentaire) info.getDonnee(0);
CollectionACommentaire commentaireDansGrille = grille.getStore().findModel("id_commentaire", commentaire.getId());
ModelData commentaireDansGrille = grille.getStore().findModel("ccm_id_commentaire", commentaire.getId());
int index = grille.getStore().indexOf(commentaireDansGrille);
grille.getStore().remove(commentaireDansGrille);
String typeCommentaire = (String) commentaireDansGrille.get("_type_");
547,12 → 596,6
}
}
private void rafraichirCommentairesListe(CommentaireListe listeCommentaires) {
commentairesSaisisComboBox.getStore().removeAll();
commentairesSaisisComboBox.getStore().add(listeCommentaires.toList());
commentairesSaisisComboBox.expand();
}
public void peupler() {
grille.getStore().removeAll();
grille.getStore().add(collection.getCommentairesLiees().toList());
565,15 → 608,16
if (etreAccede()) {
int nbreCommentaire = grille.getStore().getCount();
for (int i = 0; i < nbreCommentaire; i++) {
CollectionACommentaire relationCollectionACommentaire = grille.getStore().getAt(i);
ModelData relationCollectionACommentaire = grille.getStore().getAt(i);
CollectionACommentaire cac = new CollectionACommentaire(relationCollectionACommentaire, false);
if (relationCollectionACommentaire.get("_etat_") != null) {
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
commentairesModifies.put("id"+idGenere++, relationCollectionACommentaire);
corrigerChampsGrille(cac);// Nous modifions l'id_type
commentairesModifies.put("id"+idGenere++, cac);
}
if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
commentairesAjoutes.put("id"+idGenere++, relationCollectionACommentaire);
corrigerChampsGrille(cac);// Nous modifions l'id_type
commentairesAjoutes.put("id"+idGenere++, cac);
}
// Initialisation de la grille
relationCollectionACommentaire.set("_etat_", "");
586,6 → 630,7
private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
String type = relationCollectionACommentaire.get("_type_");
relationCollectionACommentaire.setType(typeCombo.formaterTexteEnIdentifiants(type));
relationCollectionACommentaire.setIdCollection(collection.getId());
}
 
public void soumettre() {
594,16 → 639,12
InfoLogger.display("Modification des notes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
} else {
mediateur.ajouterCollectionACommentaire(this, collection.getId(), commentairesAjoutes);
mediateur.modifierCollectionACommentaire(this, commentairesModifies);
mediateur.modifierCollectionACommentaire(this, commentairesModifies);
mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
}
}
}
private void obtenirCommentairesSaisis(String titre) {
mediateur.selectionnerCommentaireParTitre(this, titre+"%", null);
}
private void actualiserGrille() {
if (mode.equals(Formulaire.MODE_MODIFIER)) {
mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null);
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java:r11-996
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormCommentaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormInventaire.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java
1,7 → 1,9
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.Mediateur;
409,8 → 411,12
modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_role_", "ccap_id_role");
virtualFields.put("_etat_", "");
// Grille
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
GrillePaginable<ModelData> grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionAPersonne, virtualFields, proxyCollectionAPersonne, colonnes, modeleDeColonnes);
// Rajouter des écouteurs
grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
437,7 → 443,7
CellEditor editeurRelation = new CellEditor(typeRelationCombo) {
// Sert à retourner un ModelData à partir d'une String (la string est passée par le Renderer)
public Object preProcessValue(Object valeur) {
public Object preProcessValue(Object valeur) {
Valeur retour = null;
if (valeur != null ) {
if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
453,7 → 459,7
// Sert à retourner un String à Partir d'une Valeur
// en postProcess on remplace la valeur du champ par l'Id de la valeur au lieu de son Nom
public Object postProcessValue(Object valeur) {
public Object postProcessValue(Object valeur) {
String retour = null;
if (valeur != null ) {
if (valeur instanceof Valeur) {
470,15 → 476,10
GridCellRenderer<ModelData> relationRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grille) {
// Gestion du texte afficher dans la cellule
CollectionAPersonne cap = new CollectionAPersonne(modele);
 
String role = cap.getIdRole();
modele.set("_role_", role);
 
String role = modele.get("_role_");
if (typeRelationCombo.getStore() != null && typeRelationCombo.getStore().getCount() > 0 && role.matches("[0-9]+")) {
role = typeRelationCombo.getStore().findModel("id_valeur", role).getNom();
}
 
return role;
}
};
562,8 → 563,8
}
} else if (type.equals("personne_modifiee")) {
if (info.getDonnee(0) != null) {
Personne personne = (Personne) info.getDonnee(0);
ModelData personneDansGrille = grille.getStore().findModel("id_personne", personne.getId());
Personne personne = (Personne) info.getDonnee(0);
ModelData personneDansGrille = grille.getStore().findModel("ccap_id_personne", personne.getId());
int index = grille.getStore().indexOf(personneDansGrille);
grille.getStore().remove(personneDansGrille);
String role = (String) personneDansGrille.get("_role_");
591,8 → 592,7
if (nbrePersonne > 0) {
for (int i = 0; i < nbrePersonne; i++) {
CollectionAPersonne personne = new CollectionAPersonne(grille.getStore().getAt(i));
if (personne.get("_role_").equals("")) {
if (grille.getStore().getAt(i).get("_role_").equals("")) {
personneNumero += (i != 0 ? ", " : "")+(i+1);
}
}
609,10 → 609,11
int nbrePersonne = grille.getStore().getCount();
for (int i = 0; i < nbrePersonne; i++) {
CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne(grille.getStore().getAt(i));
relationCollectionPersonne.set("_role_", grille.getStore().getAt(i).get("_role_"));
if (relationCollectionPersonne.get("_etat_") != null) {
if (grille.getStore().getAt(i).get("_etat_") != null) {
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
personnesSupprimees.put("id"+idGenere++, relationCollectionPersonne);
620,12 → 621,12
corrigerChampsGrille(relationAAjouter);// Nous modifions l'id_role
personnesAjoutees.put("id"+idGenere++, relationAAjouter);
}
if (relationCollectionPersonne.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
if (grille.getStore().getAt(i).get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
corrigerChampsGrille(relationCollectionPersonne);// Nous modifions l'id_role
personnesAjoutees.put("id"+idGenere++, relationCollectionPersonne);
}
// Initialisation de la grille
relationCollectionPersonne.set("_etat_", "");
grille.getStore().getAt(i).set("_etat_", "");
}
}
grille.getStore().commitChanges();
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPersonne.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java
1,10 → 1,18
package org.tela_botanica.client.vues.collection;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
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.ProxyCollectionAPersonne;
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPublication;
import org.tela_botanica.client.composants.pagination.ProxyProjets;
import org.tela_botanica.client.composants.pagination.ProxyPublications;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
23,6 → 31,8
 
import com.extjs.gxt.ui.client.Style.Scroll;
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;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
39,7 → 49,9
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Validator;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
48,6 → 60,7
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
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;
64,11 → 77,11
private ContentPanel panneauPrincipal = null;
private ToolBar barreOutils = null;
private EditorGrid<CollectionAPublication> grille;
private GrillePaginable<ModelData> grille;
private CollectionAPublicationListe publicationsAjoutees = null;
private CollectionAPublicationListe publicationsSupprimees = null;
private ComboBox<Publication> publicationsSaisiesComboBox = null;
private ChampComboBoxRechercheTempsReelPaginable publicationsSaisiesComboBox = null;
private Button publicationsBoutonSupprimer = null;
private Button publicationsBoutonModifier = null;
80,6 → 93,9
setId(ID);
setText(Mediateur.i18nC.collectionPublication());
setStyleAttribute("padding", "0");
initialiser();
panneauPrincipal = creerPanneauContenantGrille();
setLayout(new FitLayout());
barreOutils = creerBarreOutilsGrille();
88,9 → 104,7
panneauPrincipal.setLayout(new FitLayout());
panneauPrincipal.add(grille);
add(panneauPrincipal);
initialiser();
add(panneauPrincipal);
}
private void initialiser() {
99,9 → 113,6
publicationsAjoutees = new CollectionAPublicationListe();
publicationsSupprimees = new CollectionAPublicationListe();
// Actualisation de l'état des boutons de la barre d'outils
actualiserEtatBoutonsBarreOutils();
collection = ((CollectionForm) formulaire).collection;
}
162,8 → 173,7
bouton.setIcon(Images.ICONES.vcardModifier());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
ModelData publicationSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
178,7 → 188,7
private FenetreForm creerFenetreModaleAvecFormulairePublication(String mode) {
String publicationId = null;
if (mode.equals(Formulaire.MODE_MODIFIER)) {
CollectionAPublication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
CollectionAPublication publicationSaisiSelectionne = new CollectionAPublication(grille.getGrille().getSelectionModel().getSelectedItem(), false);
publicationId = publicationSaisiSelectionne.getIdPublication();
}
232,7 → 242,7
bouton.setIcon(Images.ICONES.vcardSupprimer());
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
CollectionAPublication publicationSaisieSelectionnee = new CollectionAPublication(grille.getGrille().getSelectionModel().getSelectedItem(), false);
if (publicationSaisieSelectionnee == null) {
InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
} else {
249,7 → 259,7
bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
actualiserGrille();
}
}
});
return bouton;
}
263,35 → 273,60
}
}
private ComboBox<Publication> creerComboBoxPublicationsSaisis() {
ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>();
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxPublicationsSaisis() {
ComboBox<Publication> comboBox = new ComboBox<Publication>();
comboBox.setWidth(400);
comboBox.setEmptyText(i18nC.chercherPublicationSaisi());
comboBox.setTriggerAction(TriggerAction.ALL);
comboBox.setEditable(true);
comboBox.setDisplayField("fmt_nom_complet");
comboBox.setStore(publicationsSaisiesStore);
comboBox.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) {
if (!ce.isNavKeyPress()) {
obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue());
}
ModelType modelTypePublications = new ModelType();
modelTypePublications.setRoot("publications");
modelTypePublications.setTotalName("nbElements");
modelTypePublications.addField("ccapu_id_collection");
modelTypePublications.addField("ccapu_id_publication");
modelTypePublications.addField("cc_nom");
modelTypePublications.addField("cc_id_collection");
modelTypePublications.addField("cpu_id_publication");
modelTypePublications.addField("cpu_fmt_nom_complet");
modelTypePublications.addField("cpu_titre");
modelTypePublications.addField("cpu_nom");
modelTypePublications.addField("cpu_fmt_auteur");
modelTypePublications.addField("cpu_indication_nvt");
modelTypePublications.addField("cpu_truk_pages");
modelTypePublications.addField("cpu_fascicule");
modelTypePublications.addField("cpu_date_parution");
modelTypePublications.addField("cpu_ce_truk_editeur");
modelTypePublications.addField("cpu_ce_projet");
String displayNamePublications = "cpu_fmt_nom_complet";
ProxyPublications<ModelData> proxyPublications= new ProxyPublications<ModelData>(null);
final ChampComboBoxRechercheTempsReelPaginable publicationsCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyPublications, modelTypePublications, displayNamePublications);
publicationsCombo.getCombo().setTabIndex(tabIndex++);
publicationsCombo.getCombo().setForceSelection(true);
publicationsCombo.getCombo().setValidator(new Validator() {
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (publicationsCombo.getStore().findModel("cpu_fmt_nom_complet", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
publicationsCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
public void handleEvent(BaseEvent be) {
if (publicationsSaisiesComboBox.getValue() instanceof Publication) {
Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue();
if (publicationsSaisiesComboBox.getValeur() instanceof ModelData) {
Publication publicationSaisieSelectionne = new Publication(publicationsSaisiesComboBox.getValeur(), false);
ajouterDansGrille(publicationSaisieSelectionne);
publicationsSaisiesComboBox.setValue(null);
publicationsSaisiesComboBox.getCombo().setValue(null);
}
}
});
return comboBox;
return publicationsCombo;
}
private void ajouterDansGrille(Publication publication) {
299,10 → 334,11
}
private void ajouterDansGrille(Publication publication, int index) {
if (publication != null) {
CollectionAPublication publicationLiee = new CollectionAPublication();
if (publication != null) {
CollectionAPublication publicationLiee = new CollectionAPublication(false);
publicationLiee.setPublication(publication);
publicationLiee.setIdPublication(publication.getId());
// Gestion de l'id de la collection
if (mode.equals(Formulaire.MODE_MODIFIER)) {
publicationLiee.setIdCollection(collection.getId());
309,11 → 345,10
}
publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
// Ajout à la grille
grille.stopEditing();
grille.getStore().insert(publicationLiee, 0);
grille.startEditing(index, 0);
grille.getSelectionModel().select(index, false);
grille.getGrille().stopEditing();
grille.getGrille().getStore().insert(publicationLiee, 0);
grille.getGrille().startEditing(index, 0);
grille.getGrille().getSelectionModel().select(index, false);
}
}
330,67 → 365,94
grille.getStore().remove(publicationLiee);
}
}
private GrillePaginable<ModelData> creerGrille() {
GrillePaginable<ModelData> grillePublications = null;
// ModelType
ModelType modelTypeCollectionAPublication = new ModelType();
modelTypeCollectionAPublication.setRoot("collectionsAPublication");
modelTypeCollectionAPublication.setTotalName("nbElements");
modelTypeCollectionAPublication.addField("ccapu_id_collection");
modelTypeCollectionAPublication.addField("ccapu_id_publication");
modelTypeCollectionAPublication.addField("ccapu_mark_licence");
modelTypeCollectionAPublication.addField("cpu_id_publication");
modelTypeCollectionAPublication.addField("cpu_fmt_auteur");
modelTypeCollectionAPublication.addField("cpu_titre");
modelTypeCollectionAPublication.addField("cpu_collection");
modelTypeCollectionAPublication.addField("cpu_ce_truk_editeur");
modelTypeCollectionAPublication.addField("cpu_date_parution");
modelTypeCollectionAPublication.addField("cpu_fascicule");
modelTypeCollectionAPublication.addField("cpu_truk_pages");
modelTypeCollectionAPublication.addField("cpu_indication_nvt");
// Proxy
ProxyCollectionAPublication<ModelData> proxyCollectionAPublication = new ProxyCollectionAPublication<ModelData>(null, collection.getId());
 
private EditorGrid<CollectionAPublication> creerGrille() {
ListStore<CollectionAPublication> storeGrille = new ListStore<CollectionAPublication>();
storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPublication>>() {
public void handleEvent(StoreEvent<CollectionAPublication> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPublication>>() {
public void handleEvent(StoreEvent<CollectionAPublication> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
// Colonnes
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
RowNumberer numeroPlugin = new RowNumberer();
numeroPlugin.setHeader("#");
XTemplate infoTpl = XTemplate.create("<p>"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {cpu_fmt_auteur}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {cpu_titre}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {cpu_collection}<br />"+
"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
"</p>");
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(expansionPlugin);
colonnes.add(numeroPlugin);
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));
colonnes.add(new ColumnConfig("cpu_fmt_auteur", i18nC.publicationAuteurs(), 150));
colonnes.add(new ColumnConfig("cpu_titre", i18nC.publicationTitre(), 150));
colonnes.add(new ColumnConfig("cpu_collection", i18nC.publicationRevueCollection(), 75));
colonnes.add(creerColonneEditeur());
colonnes.add(creerColonneAnneePublication());
colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
colonnes.add(new ColumnConfig("cpu_indication_nvt", i18nC.publicationNvt(), 75));
colonnes.add(new ColumnConfig("cpu_fascicule", i18nC.publicationFascicule(), 75));
colonnes.add(new ColumnConfig("cpu_truk_pages", i18nC.publicationPage(), 50));
GridSelectionModel<CollectionAPublication> modeleDeSelection = new GridSelectionModel<CollectionAPublication>();
HashMap<String, String> virtualFields = new HashMap<String, String>();
virtualFields.put("_editeur_", "cpu_ce_truk_editeur");
virtualFields.put("_annee_", "cpu_date_parution");
virtualFields.put("_etat_", "");
// Modele de selection
GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
EditorGrid<CollectionAPublication> grillePublications = new EditorGrid<CollectionAPublication>(storeGrille, modeleDeColonnes);
//grillePublications.setHeight("100%");
grillePublications.setBorders(true);
grillePublications.setSelectionModel(modeleDeSelection);
grillePublications.addPlugin(expansionPlugin);
grillePublications.addPlugin(numeroPlugin);
grillePublications.getView().setForceFit(true);
grillePublications.setAutoExpandColumn("titre");
grillePublications.setStripeRows(true);
grillePublications.setTrackMouseOver(true);
// Grille
grillePublications = new GrillePaginable<ModelData>(modelTypeCollectionAPublication, virtualFields, proxyCollectionAPublication, colonnes, modeleDeColonnes);
grillePublications.getGrille().setBorders(true);
grillePublications.getGrille().setSelectionModel(modeleDeSelection);
grillePublications.getGrille().addPlugin(expansionPlugin);
grillePublications.getGrille().addPlugin(numeroPlugin);
grillePublications.getGrille().getView().setForceFit(true);
grillePublications.getGrille().setAutoExpandColumn("titre");
grillePublications.getGrille().setStripeRows(true);
grillePublications.getGrille().setTrackMouseOver(true);
// Rajouter des écouteurs
grillePublications.getStore().addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
grillePublications.getStore().addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
public void handleEvent(StoreEvent<ModelData> ce) {
actualiserEtatBoutonsBarreOutils();
}
});
return grillePublications;
}
private ColumnConfig creerColonneEditeur() {
GridCellRenderer<CollectionAPublication> editeurRendu = new GridCellRenderer<CollectionAPublication>() {
public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
String editeur = model.getPublication().getNomEditeur();
GridCellRenderer<ModelData> editeurRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String editeur = (new CollectionAPublication(model, false)).getPublication().getNomEditeur();
model.set("_editeur_", editeur);
return editeur;
}
401,9 → 463,9
}
private ColumnConfig creerColonneAnneePublication() {
GridCellRenderer<CollectionAPublication> datePublicationRendu = new GridCellRenderer<CollectionAPublication>() {
public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
String annee = model.getPublication().getAnneeParution();
GridCellRenderer<ModelData> datePublicationRendu = new GridCellRenderer<ModelData>() {
public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
String annee = (new CollectionAPublication(model, false)).getPublication().getAnneeParution();
model.set("_annee_", annee);
return annee;
}
430,19 → 492,10
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
rafraichirInformation(info);
} else if (nouvellesDonnees instanceof PublicationListe) {
PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
rafraichirPublicationListe(listePublications);
} else {
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("[]")) {
464,14 → 517,15
mediateur.ajouterCollectionAPublication(this, collectionId, publicationsAjoutees);
}
} else if (type.equals("publication_modifiee")) {
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
CollectionAPublication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
int index = grille.getStore().indexOf(publicationDansGrille);
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
ModelData publicationDansGrille = null;
publicationDansGrille = grille.getStore().findModel("cpu_id_publication", publication.getId());
int index = grille.getStore().indexOf(publicationDansGrille);
grille.getStore().remove(publicationDansGrille);
ajouterDansGrille(publication, index);
}
} else if (type.equals("publication_ajoutee")) {
} else if (type.equals("publication_ajoutee")) {
if (info.getDonnee(0) != null) {
Publication publication = (Publication) info.getDonnee(0);
ajouterDansGrille(publication);
496,17 → 550,18
if (etreAccede()) {
int nbrePublication = grille.getStore().getCount();
for (int i = 0; i < nbrePublication; i++) {
CollectionAPublication publicationLiee = grille.getStore().getAt(i);
ModelData publicationLiee = grille.getStore().getAt(i);
CollectionAPublication cap = new CollectionAPublication(grille.getStore().getAt(i), false);
if (publicationLiee.get("_etat_") != null) {
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
publicationsSupprimees.put("id"+idGenere++, publicationLiee);
publicationsSupprimees.put("id"+idGenere++, cap);
CollectionAPublication relationAAjouter = (CollectionAPublication) publicationLiee.cloner(new CollectionAPublication());
CollectionAPublication relationAAjouter = (CollectionAPublication) cap.cloner(new CollectionAPublication());
publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
}
if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
publicationsAjoutees.put("id"+idGenere++, publicationLiee);
publicationsAjoutees.put("id"+idGenere++, cap);
}
// Initialisation de la grille
publicationLiee.set("_etat_", "");
532,8 → 587,4
}
}
}
private void obtenirPublicationsSaisies(String nom) {
mediateur.selectionnerPublicationParNomComplet(this, null, "%"+nom+"%");
}
}
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection/CollectionFormPublication.java:r1417-1511
/trunk/src/org/tela_botanica/client/vues/collection
Property changes:
Modified: svn:mergeinfo
Merged /trunk/src/org/tela_botanica/client/vues/collection:r11-933
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/vues/collection:r1417-1511