Subversion Repositories eFlore/Applications.coel

Rev

Rev 862 | Rev 883 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 862 Rev 875
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.Iterator;
4
import java.util.Iterator;
5
import java.util.List;
5
import java.util.List;
6
 
6
 
7
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
10
import org.tela_botanica.client.modeles.Collection;
-
 
11
import org.tela_botanica.client.modeles.CollectionAPersonne;
-
 
12
import org.tela_botanica.client.modeles.CollectionAPersonneListe;
10
import org.tela_botanica.client.modeles.Information;
13
import org.tela_botanica.client.modeles.Information;
11
import org.tela_botanica.client.modeles.InterneValeur;
14
import org.tela_botanica.client.modeles.InterneValeur;
12
import org.tela_botanica.client.modeles.Personne;
15
import org.tela_botanica.client.modeles.Personne;
13
import org.tela_botanica.client.modeles.PersonneListe;
16
import org.tela_botanica.client.modeles.PersonneListe;
-
 
17
import org.tela_botanica.client.modeles.Publication;
-
 
18
import org.tela_botanica.client.modeles.StructureAPersonne;
14
import org.tela_botanica.client.modeles.UniteBase;
19
import org.tela_botanica.client.modeles.UniteBase;
15
import org.tela_botanica.client.modeles.UniteRangement;
20
import org.tela_botanica.client.modeles.UniteRangement;
16
import org.tela_botanica.client.modeles.Valeur;
21
import org.tela_botanica.client.modeles.Valeur;
17
import org.tela_botanica.client.modeles.ValeurListe;
22
import org.tela_botanica.client.modeles.ValeurListe;
-
 
23
import org.tela_botanica.client.modeles.aDonnee;
18
 
24
 
19
import com.extjs.gxt.ui.client.event.BaseEvent;
25
import com.extjs.gxt.ui.client.event.BaseEvent;
20
import com.extjs.gxt.ui.client.event.ButtonEvent;
26
import com.extjs.gxt.ui.client.event.ButtonEvent;
21
import com.extjs.gxt.ui.client.event.ComponentEvent;
27
import com.extjs.gxt.ui.client.event.ComponentEvent;
22
import com.extjs.gxt.ui.client.event.EventType;
28
import com.extjs.gxt.ui.client.event.EventType;
23
import com.extjs.gxt.ui.client.event.Events;
29
import com.extjs.gxt.ui.client.event.Events;
24
import com.extjs.gxt.ui.client.event.KeyListener;
30
import com.extjs.gxt.ui.client.event.KeyListener;
25
import com.extjs.gxt.ui.client.event.Listener;
31
import com.extjs.gxt.ui.client.event.Listener;
26
import com.extjs.gxt.ui.client.event.SelectionListener;
32
import com.extjs.gxt.ui.client.event.SelectionListener;
27
import com.extjs.gxt.ui.client.store.ListStore;
33
import com.extjs.gxt.ui.client.store.ListStore;
-
 
34
import com.extjs.gxt.ui.client.store.Record;
28
import com.extjs.gxt.ui.client.store.Store;
35
import com.extjs.gxt.ui.client.store.Store;
29
import com.extjs.gxt.ui.client.store.StoreEvent;
36
import com.extjs.gxt.ui.client.store.StoreEvent;
30
import com.extjs.gxt.ui.client.widget.ContentPanel;
37
import com.extjs.gxt.ui.client.widget.ContentPanel;
31
import com.extjs.gxt.ui.client.widget.Info;
38
import com.extjs.gxt.ui.client.widget.Info;
32
import com.extjs.gxt.ui.client.widget.Text;
39
import com.extjs.gxt.ui.client.widget.Text;
33
import com.extjs.gxt.ui.client.widget.button.Button;
40
import com.extjs.gxt.ui.client.widget.button.Button;
34
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
41
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
35
import com.extjs.gxt.ui.client.widget.form.ComboBox;
42
import com.extjs.gxt.ui.client.widget.form.ComboBox;
-
 
43
import com.extjs.gxt.ui.client.widget.form.FormPanel;
36
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
44
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
37
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
45
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
38
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
46
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
-
 
47
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
39
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
48
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
40
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
49
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
41
import com.extjs.gxt.ui.client.widget.grid.Grid;
50
import com.extjs.gxt.ui.client.widget.grid.Grid;
-
 
51
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
42
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
52
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
43
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
53
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
44
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
54
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
45
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
55
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
46
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
56
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
47
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
57
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
48
import com.google.gwt.core.client.GWT;
58
import com.google.gwt.core.client.GWT;
49
import com.google.gwt.event.dom.client.KeyCodes;
59
import com.google.gwt.event.dom.client.KeyCodes;
50
 
60
 
51
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable {
61
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable {
-
 
62
	
-
 
63
	private Collection collection = null;
-
 
64
	private Collection collectionCollectee = null;
52
	
65
	
53
	private ContentPanel panneauPrincipal = null;
66
	private ContentPanel panneauPrincipal = null;
54
	private ToolBar barreOutils = null;
67
	private ToolBar barreOutils = null;
55
	private Grid<Personne> grille;
68
	private Grid<CollectionAPersonne> grille;
56
	private ComboBox<Valeur> typeRelationCombo = null;
69
	private ComboBox<Valeur> typeRelationCombo = null;
57
	
70
	
-
 
71
	private CollectionAPersonneListe personnes = null;
58
	private PersonneListe personnes = null;
72
	private CollectionAPersonneListe personnesAjoutees = null;
59
	private PersonneListe personnesAjoutes = null;
73
	private CollectionAPersonneListe personnesModifiees = null;
60
	private PersonneListe personnesSupprimes = null;
74
	private CollectionAPersonneListe personnesSupprimees = null;
61
	private ComboBox<Personne> personnesSaisisComboBox = null;
75
	private ComboBox<Personne> personnesSaisisComboBox = null;
62
	private Button personnesBoutonSupprimer = null;
76
	private Button personnesBoutonSupprimer = null;
63
	private Button personnesBoutonModifier = null;
77
	private Button personnesBoutonModifier = null;
64
	private Button ajouterPersonneSaisiBouton = null;
78
	private ValeurListe listeIon = null;
-
 
79
	
-
 
80
	private FenetreForm fenetreFormulaire = null;
65
	
81
	
66
	private static final String ETAT_AJOUTE = "A";
82
	private static final String ETAT_AJOUTE = "A";
67
	private static final String ETAT_SUPPRIME = "S";
83
	private static final String ETAT_SUPPRIME = "S";
68
	
84
	
69
	public CollectionFormPersonne(Formulaire formulaireCourrant) {
85
	public CollectionFormPersonne(Formulaire formulaireCourrant) {
70
		initialiserOnglet(formulaireCourrant);
86
		initialiserOnglet(formulaireCourrant);
71
		setId("personne");
87
		setId("personne");
72
		setText(Mediateur.i18nC.collectionPersonne());
88
		setText(Mediateur.i18nC.collectionPersonne());
73
		setStyleAttribute("padding", "0");
89
		setStyleAttribute("padding", "0");
74
		
90
		
75
		panneauPrincipal = creerPanneauContenantGrille();
91
		panneauPrincipal = creerPanneauContenantGrille();
76
		barreOutils = creerBarreOutilsGrille();
92
		barreOutils = creerBarreOutilsGrille();
77
		panneauPrincipal.setTopComponent(barreOutils);
93
		panneauPrincipal.setTopComponent(barreOutils);
78
		grille = creerGrille();
94
		grille = creerGrille();
79
  		panneauPrincipal.add(grille);
95
  		panneauPrincipal.add(grille);
-
 
96
  		mediateur.obtenirListeValeurEtRafraichir(this, "ion");
80
		mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonneCollection");
97
		mediateur.obtenirListeValeurEtRafraichir(this, "relationPersonneCollection");
81
		add(panneauPrincipal);
98
		add(panneauPrincipal);
82
		
99
		
83
		initialiser();
100
		initialiser();
84
	}
101
	}
85
	
102
	
86
	private void initialiser() {
103
	private void initialiser() {
87
		// Remise à zéro des modification dans la liste des auteurs
104
		// Remise à zéro des modification dans la liste des auteurs
88
		personnesAjoutes = new PersonneListe();
105
		personnesAjoutees = new CollectionAPersonneListe();
-
 
106
		personnesModifiees = new CollectionAPersonneListe();
89
		personnesSupprimes = new PersonneListe();
107
		personnesSupprimees = new CollectionAPersonneListe();
90
		
108
		
91
		// Actualisation de l'état des boutons de la barre d'outils
109
		// Actualisation de l'état des boutons de la barre d'outils
92
		actualiserEtatBoutonsBarreOutils();
110
		actualiserEtatBoutonsBarreOutils();
93
	}
111
	}
-
 
112
	
-
 
113
	private void initialiserCollection() {
-
 
114
		collection = ((CollectionForm) formulaire).collection;
-
 
115
		collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
-
 
116
	}
94
		
117
		
95
	private ContentPanel creerPanneauContenantGrille() {
118
	private ContentPanel creerPanneauContenantGrille() {
96
		ContentPanel panneau = new ContentPanel();
119
		ContentPanel panneau = new ContentPanel();
97
		
120
		
98
		panneau.setHeading(i18nC.collectionPersonneTitre());
121
		panneau.setHeading(i18nC.collectionPersonneTitre());
99
		panneau.setIcon(Images.ICONES.table());
122
		panneau.setIcon(Images.ICONES.table());
100
		panneau.setLayout(new FitLayout());
123
		panneau.setLayout(new FitLayout());
101
		panneau.setFrame(true);
124
		panneau.setFrame(true);
102
		
125
		
103
		return panneau;
126
		return panneau;
104
	}
127
	}
105
 
128
 
106
	private ToolBar creerBarreOutilsGrille() {
129
	private ToolBar creerBarreOutilsGrille() {
107
		ToolBar barreOutils = new ToolBar();  
130
		ToolBar barreOutils = new ToolBar();  
108
		
131
		
109
		Button ajouterPersonneBouton = creerBoutonAjouter();
132
		Button ajouterPersonneBouton = creerBoutonAjouter();
110
		barreOutils.add(ajouterPersonneBouton);
133
		barreOutils.add(ajouterPersonneBouton);
111
		
134
		
112
		barreOutils.add(new Text(" ou "));
135
		barreOutils.add(new Text(" ou "));
113
		
136
		
114
		personnesSaisisComboBox = creerComboBoxAuteursSaisis();
137
		personnesSaisisComboBox = creerComboBoxPersonnesSaisies();
115
		barreOutils.add(personnesSaisisComboBox);
138
		barreOutils.add(personnesSaisisComboBox);
116
		
139
		
117
		barreOutils.add(new SeparatorToolItem());
140
		barreOutils.add(new SeparatorToolItem());
118
		
141
		
119
		personnesBoutonModifier = creerBoutonModifier();
142
		personnesBoutonModifier = creerBoutonModifier();
120
		barreOutils.add(personnesBoutonModifier);
143
		barreOutils.add(personnesBoutonModifier);
121
		
144
		
122
		barreOutils.add(new SeparatorToolItem());
145
		barreOutils.add(new SeparatorToolItem());
123
		
146
		
124
		personnesBoutonSupprimer = creerBoutonSupprimer();
147
		personnesBoutonSupprimer = creerBoutonSupprimer();
125
		barreOutils.add(personnesBoutonSupprimer);		
148
		barreOutils.add(personnesBoutonSupprimer);		
126
		
149
		
127
		barreOutils.add(new SeparatorToolItem());
150
		barreOutils.add(new SeparatorToolItem());
128
		
151
		
129
		Button rafraichirPersonneBouton = creerBoutonRafraichir();
152
		Button rafraichirPersonneBouton = creerBoutonRafraichir();
130
		barreOutils.add(rafraichirPersonneBouton);
153
		barreOutils.add(rafraichirPersonneBouton);
131
				
154
				
132
		return barreOutils;
155
		return barreOutils;
133
	}
156
	}
134
 
157
 
135
	private Button creerBoutonAjouter() {
158
	private Button creerBoutonAjouter() {
136
		Button bouton = new Button(i18nC.ajouter());
159
		Button bouton = new Button(i18nC.ajouter());
137
		bouton.setIcon(Images.ICONES.vcardAjouter());
160
		bouton.setIcon(Images.ICONES.vcardAjouter());
138
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
161
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
-
 
162
 
139
			@Override  
163
			@Override  
140
			public void componentSelected(ButtonEvent ce) {  
164
			public void componentSelected(ButtonEvent ce) {  
141
				FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER);
165
				fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER);
142
				fenetre.show();
166
				fenetreFormulaire.show();
143
			}  
167
			}  
144
		});
168
		});
145
		return bouton;
169
		return bouton;
146
	}
170
	}
147
	
171
	
148
	private Button creerBoutonModifier() {
172
	private Button creerBoutonModifier() {
149
		Button bouton = new Button(i18nC.modifier());
173
		Button bouton = new Button(i18nC.modifier());
150
		bouton.setIcon(Images.ICONES.vcardModifier());
174
		bouton.setIcon(Images.ICONES.vcardModifier());
151
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
175
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
152
			@Override  
176
			@Override  
153
			public void componentSelected(ButtonEvent ce) {  
177
			public void componentSelected(ButtonEvent ce) {  
154
				Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
178
				CollectionAPersonne personneSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
155
				if (auteurSaisiSelectionne == null) {
179
				if (personneSaisiSelectionne == null) {
156
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPersonne());
180
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPersonne());
157
				} else {
181
				} else {
158
					FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
182
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
159
					fenetre.show();
183
					fenetreFormulaire.show();
160
				}
184
				}
161
			}  
185
			}  
162
		});
186
		});
163
		return bouton;
187
		return bouton;
164
	}
188
	}
165
	
189
	
166
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
190
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
-
 
191
		String personneId = null;
-
 
192
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
193
			CollectionAPersonne personneSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
-
 
194
			personneId = personneSaisieSelectionnee.getId();
-
 
195
		}
-
 
196
		
167
		final FenetreForm fenetre = new FenetreForm("");
197
		final FenetreForm fenetre = new FenetreForm("");
168
		final PersonneForm formulaire = creerFormulairePersonne(fenetre);
198
		final PersonneForm formulaire = creerFormulairePersonne(fenetre, personneId);
169
		fenetre.add(formulaire);
199
		fenetre.add(formulaire);
170
		return fenetre;
200
		return fenetre;
171
	}
201
	}
172
	
202
	
173
	private PersonneForm creerFormulairePersonne(final FenetreForm fenetre) {
203
	private PersonneForm creerFormulairePersonne(final FenetreForm fenetre, String personneId) {
-
 
204
		PersonneForm formulaire = new PersonneForm(mediateur, personneId, this);
174
		PersonneForm formulaire = new PersonneForm(mediateur, PersonneForm.MODE_AJOUTER, null);
205
		FormPanel panneauFormulaire = formulaire.getFormulaire();
175
		/*fenetre.setHeading(formulaire.getHeading());
206
		fenetre.setHeading(panneauFormulaire.getHeading());
176
		formulaire.setHeaderVisible(false);
207
		panneauFormulaire.setHeaderVisible(false);
177
		formulaire.setTopComponent(null);*/
208
		panneauFormulaire.setTopComponent(null);
178
 
209
 
179
		// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale
210
		// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale
180
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulaire);
211
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulaire);
181
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
212
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
182
		//formulaire.setBottomComponent(barreValidation);
213
		panneauFormulaire.setBottomComponent(barreValidation);
183
		
-
 
184
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
185
			// TODO : simplifier la gestion de l'ajout des données d'une Personne au form pour la modification... (pas besoin de passer par une liste).
-
 
186
			Information info = new Information("liste_personne");
-
 
187
			PersonneListe personnes = new PersonneListe();
-
 
188
			Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
-
 
189
			personnes.put(auteurSaisiSelectionne.getId(), auteurSaisiSelectionne);
-
 
190
			info.setDonnee(0, personnes);
-
 
191
			formulaire.rafraichir(info);
-
 
192
		}
-
 
193
		
214
		
194
		return formulaire;
215
		return formulaire;
195
	}
216
	}
196
	
217
	
197
	private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePersonne(final FenetreForm fenetre, final PersonneForm formulaire) {
218
	private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePersonne(final FenetreForm fenetre, final PersonneForm formulaire) {
198
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
219
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
199
			@Override
220
			@Override
200
			public void componentSelected(ButtonEvent ce) {
221
			public void componentSelected(ButtonEvent ce) {
201
				String code = ((Button) ce.getComponent()).getData("code");
222
				String code = ((Button) ce.getComponent()).getData("code");
202
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
223
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
203
					Boolean ok = formulaire.enregistrer();
224
					if (formulaire.soumettreFormulaire()) {
204
					if (ok == true) {
225
						fenetre.hide();
205
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
-
 
206
					}
226
					}
207
					fenetre.hide();
-
 
208
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
227
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
209
					Boolean ok = formulaire.enregistrer();
228
					formulaire.soumettreFormulaire();
210
					if (ok == true) {
-
 
211
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
-
 
212
					}
-
 
213
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
229
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
214
					fenetre.hide();
230
					fenetre.hide();
215
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
231
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
-
 
232
					fenetreFormulaire.hide();
-
 
233
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(formulaire.mode);
216
					formulaire.reinitialiserFormulaire();
234
					fenetreFormulaire.show();
217
				}
235
				}
218
			}
236
			}
219
		};
237
		};
220
		
238
		
221
		return ecouteur;
239
		return ecouteur;
222
	}
240
	}
223
	
241
	
224
	private Button creerBoutonSupprimer() {
242
	private Button creerBoutonSupprimer() {
225
		Button bouton = new Button(i18nC.supprimer());
243
		Button bouton = new Button(i18nC.supprimer());
226
		bouton.setIcon(Images.ICONES.vcardSupprimer());
244
		bouton.setIcon(Images.ICONES.vcardSupprimer());
227
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
245
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
228
			@Override
246
			@Override
229
			public void componentSelected(ButtonEvent ce) {
247
			public void componentSelected(ButtonEvent ce) {
230
				Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
248
				CollectionAPersonne personneSaisiSelectionnee = grille.getSelectionModel().getSelectedItem();
231
				if (auteurSaisiSelectionne == null) {
249
				if (personneSaisiSelectionnee == null) {
232
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPersonne());
250
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPersonne());
233
				} else {
251
				} else {
234
					supprimerDansGrille(auteurSaisiSelectionne);
252
					supprimerDansGrille(personneSaisiSelectionnee);
235
				}
253
				}
236
			}   
254
			}   
237
		});
255
		});
238
		return bouton;
256
		return bouton;
239
	}
257
	}
240
	
258
	
241
	private Button creerBoutonRafraichir() {
259
	private Button creerBoutonRafraichir() {
242
		Button bouton = new Button(i18nC.rafraichir());
260
		Button bouton = new Button(i18nC.rafraichir());
243
		bouton.setIcon(Images.ICONES.rafraichir());
261
		bouton.setIcon(Images.ICONES.rafraichir());
244
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
262
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
245
			@Override
263
			@Override
246
			public void componentSelected(ButtonEvent ce) {
264
			public void componentSelected(ButtonEvent ce) {
247
				// TODO : mettre en place le rafraichissement de la liste
265
				// TODO : mettre en place le rafraichissement de la liste
248
			}   
266
			}   
249
		});
267
		});
250
		return bouton;
268
		return bouton;
251
	}
269
	}
252
	
270
	
253
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
271
	private ComboBox<Personne> creerComboBoxPersonnesSaisies() {
254
		ListStore<Personne> personnesSaisiesStore = new ListStore<Personne>();
272
		ListStore<Personne> personnesSaisiesStore = new ListStore<Personne>();
255
		personnesSaisiesStore.add(new ArrayList<Personne>());
273
		personnesSaisiesStore.add(new ArrayList<Personne>());
256
		
274
		
257
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
275
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
258
		comboBox.setWidth(200);
276
		comboBox.setWidth(200);
259
		comboBox.setEmptyText(i18nC.chercherPersonneSaisi());
277
		comboBox.setEmptyText(i18nC.chercherPersonneSaisi());
260
		comboBox.setTriggerAction(TriggerAction.ALL);  
278
		comboBox.setTriggerAction(TriggerAction.ALL);  
261
		comboBox.setEditable(true);
279
		comboBox.setEditable(true);
262
		comboBox.setDisplayField("fmt_nom_complet");
280
		comboBox.setDisplayField("fmt_nom_complet");
263
		comboBox.setStore(personnesSaisiesStore);
281
		comboBox.setStore(personnesSaisiesStore);
264
		comboBox.addKeyListener(new KeyListener() {
282
		comboBox.addKeyListener(new KeyListener() {
265
			public void componentKeyUp(ComponentEvent ce) {
283
			public void componentKeyUp(ComponentEvent ce) {
266
				if (personnesSaisisComboBox.getRawValue() != null && personnesSaisisComboBox.getRawValue().length() > 0) {
284
				if (personnesSaisisComboBox.getRawValue() != null && personnesSaisisComboBox.getRawValue().length() > 0) {
267
					if (!ce.isNavKeyPress()) {
285
					if (!ce.isNavKeyPress()) {
268
						obtenirPersonnesSaisis(personnesSaisisComboBox.getRawValue());
286
						obtenirPersonnesSaisis(personnesSaisisComboBox.getRawValue());
269
					}
287
					}
270
				}
288
				}
271
			}
289
			}
272
		});
290
		});
273
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
291
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
274
			@Override
292
			@Override
275
			public void handleEvent(BaseEvent be) {
293
			public void handleEvent(BaseEvent be) {
276
				if (personnesSaisisComboBox.getValue() instanceof Personne) {
294
				if (personnesSaisisComboBox.getValue() instanceof Personne) {
277
					Personne auteurSaisiSelectionne = personnesSaisisComboBox.getValue();
295
					Personne personneSaisiSelectionnee = personnesSaisisComboBox.getValue();
278
					ajouterDansGrille(auteurSaisiSelectionne);
296
					ajouterDansGrille(personneSaisiSelectionnee);
279
					personnesSaisisComboBox.setValue(null);
297
					personnesSaisisComboBox.setValue(null);
280
				}
298
				}
281
			}
299
			}
282
		});
300
		});
283
		return comboBox;
301
		return comboBox;
284
	}
302
	}
285
	
303
	
286
	private void ajouterDansGrille(Personne personne) {
304
	private void ajouterDansGrille(Personne personne) {
287
		if (personne != null) {
305
		if (personne != null) {
-
 
306
			CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne();
-
 
307
			relationCollectionPersonne.setPersonne(personne);
-
 
308
			
288
			// Ajout de la personne ajoutée à la liste
309
			// Ajout de la personne ajoutée à la liste
289
			if (personne.getId() != null && !personne.getId().equals("")) {
310
			if (relationCollectionPersonne.getId() != null && !relationCollectionPersonne.getId().equals("")) {
290
				personnesAjoutes.put(personne.getId(), personne);
311
				personnesAjoutees.put(relationCollectionPersonne.getId(), relationCollectionPersonne);
291
			}
312
			}
292
			
313
			
293
			// Définition de l'état
314
			// Définition de l'état
294
			personne.set("etat", ETAT_AJOUTE);
315
			relationCollectionPersonne.set("etat", ETAT_AJOUTE);
295
			
316
			
296
			// Ajout à la grille
317
			// Ajout à la grille
297
			grille.getStore().insert(personne, 0);
318
			grille.getStore().insert(relationCollectionPersonne, 0);
298
			grille.getSelectionModel().select(0, false);
319
			grille.getSelectionModel().select(0, false);
299
		}
320
		}
300
	}
321
	}
301
	
322
	
302
	private void supprimerDansGrille(Personne personne) {
323
	private void supprimerDansGrille(CollectionAPersonne relationCollectionPersonne) {
303
		if (personne != null) {
324
		if (relationCollectionPersonne != null) {
304
			// Ajout de la personne supprimée à la liste
325
			// Ajout de la personne supprimée à la liste
-
 
326
			if ((relationCollectionPersonne.get("etat") == null || !relationCollectionPersonne.get("etat").equals(ETAT_AJOUTE)) 
-
 
327
					&& relationCollectionPersonne.getId() != null 
305
			if ((personne.get("etat") == null || !personne.get("etat").equals(ETAT_AJOUTE)) && personne.getId() != null && !personne.getId().equals("")) {
328
					&& !relationCollectionPersonne.getId().equals("")) {
306
				personnesSupprimes.put(personne.getId(), personne);
329
				personnesSupprimees.put(relationCollectionPersonne.getId(), relationCollectionPersonne);
307
			}
330
			}
308
			
331
			
309
			// Suppression de l'enregistrement de la grille
332
			// Suppression de l'enregistrement de la grille
310
			grille.getStore().remove(personne);			
333
			grille.getStore().remove(relationCollectionPersonne);			
311
		}
334
		}
312
	}
335
	}
313
 
336
 
314
	private Grid<Personne> creerGrille() {
337
	private Grid<CollectionAPersonne> creerGrille() {
315
		ListStore<Personne> storeGrille = new ListStore<Personne>();
338
		ListStore<Personne> storeGrille = new ListStore<Personne>();
316
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<Personne>>() {
339
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<Personne>>() {
317
			public void handleEvent(StoreEvent<Personne> ce) {
340
			public void handleEvent(StoreEvent<Personne> ce) {
318
				actualiserEtatBoutonsBarreOutils();
341
				actualiserEtatBoutonsBarreOutils();
319
			}
342
			}
320
		});
343
		});
321
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<Personne>>() {
344
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<Personne>>() {
322
			public void handleEvent(StoreEvent<Personne> ce) {
345
			public void handleEvent(StoreEvent<Personne> ce) {
323
				actualiserEtatBoutonsBarreOutils();
346
				actualiserEtatBoutonsBarreOutils();
324
			}
347
			}
325
		});
348
		});
326
		
349
		
327
		RowNumberer pluginLigneNumero = new RowNumberer();
350
		RowNumberer pluginLigneNumero = new RowNumberer();
328
		
351
		
329
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
352
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
330
		colonnes.add(pluginLigneNumero);
353
		colonnes.add(pluginLigneNumero);
331
		
354
		
332
		typeRelationCombo = new ComboBox<Valeur>();
355
		typeRelationCombo = new ComboBox<Valeur>();
333
		typeRelationCombo.setForceSelection(true);
356
		typeRelationCombo.setForceSelection(true);
334
		typeRelationCombo.setTriggerAction(TriggerAction.ALL);
357
		typeRelationCombo.setTriggerAction(TriggerAction.ALL);
335
		typeRelationCombo.setDisplayField("nom");
358
		typeRelationCombo.setDisplayField("nom");
336
		typeRelationCombo.setStore(new ListStore<Valeur>());
359
		typeRelationCombo.setStore(new ListStore<Valeur>());
337
		typeRelationCombo.setEditable(false);
360
		typeRelationCombo.setEditable(false);
338
		
361
		
339
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {  
362
		CellEditor editeurRelation = new CellEditor(typeRelationCombo) {  
340
			@Override  
363
			@Override  
341
			public Object preProcessValue(Object valeur) {  
364
			public Object preProcessValue(Object valeur) {  
342
				Valeur retour = null;
365
				Valeur retour = null;
343
				if (valeur != null ) {
366
				if (valeur != null ) {
344
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
367
					if (typeRelationCombo.getStore().findModel("nom", valeur.toString()) != null) {
345
						retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
368
						retour = typeRelationCombo.getStore().findModel("nom", valeur.toString());
346
					} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
369
					} else if (typeRelationCombo.getStore().findModel("abr", valeur.toString()) != null) {
347
						retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
370
						retour = typeRelationCombo.getStore().findModel("abr", valeur.toString());
348
					}
371
					}
349
				}
372
				}
350
				return retour;
373
				return retour;
351
			}  
374
			}  
352
 
375
 
353
			@Override  
376
			@Override  
354
			public Object postProcessValue(Object valeur) {  
377
			public Object postProcessValue(Object valeur) {  
355
				String retour = null;
378
				String retour = null;
356
				if (valeur != null ) {
379
				if (valeur != null ) {
357
					if (valeur instanceof Valeur) {
380
					if (valeur instanceof Valeur) {
358
						Valeur valeurOntologie = (Valeur) valeur;
381
						Valeur valeurOntologie = (Valeur) valeur;
359
						retour = valeurOntologie.getNom();
382
						retour = valeurOntologie.getNom();
360
					}
383
					}
361
				}
384
				}
362
				return retour;  
385
				return retour;  
363
			}  
386
			}  
364
		};
387
		};
365
		
388
		
366
		ColumnConfig typeRelationColonne = new ColumnConfig("type_relation", i18nC.typeRelationPersonneCollection(), 75);
389
		ColumnConfig typeRelationColonne = new ColumnConfig("id_role", i18nC.typeRelationPersonneCollection(), 75);
367
		typeRelationColonne.setEditor(editeurRelation);
390
		typeRelationColonne.setEditor(editeurRelation);
368
		colonnes.add(typeRelationColonne);
391
		colonnes.add(typeRelationColonne);
369
		
392
		
370
		colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
393
		colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
371
		colonnes.add(new ColumnConfig("nom", i18nC.personneNom(), 75));
394
		colonnes.add(new ColumnConfig("nom", i18nC.personneNom(), 75));
372
		colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75));
395
		colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75));
373
		colonnes.add(new ColumnConfig("prefixe", i18nC.personnePrefixe(), 50));
-
 
374
		//colonnes.add(new ColumnConfig("truk_nom_autre", i18nC.personneNomAutre(), 200));
-
 
375
		colonnes.add(new ColumnConfig("naissance_date", i18nC.date(), 75));
396
		colonnes.add(new ColumnConfig("naissance_date", i18nC.date(), 75));
376
		colonnes.add(new ColumnConfig("naissance_lieu", i18nC.lieu(), 100));
397
		colonnes.add(new ColumnConfig("naissance_lieu", i18nC.lieu(), 100));
377
		colonnes.add(new ColumnConfig("ce_deces", i18nC.personneDecedeeInterogation(), 50));
398
		colonnes.add(creerColonneDeces());
378
		colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75));
399
		colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75));
379
		colonnes.add(new ColumnConfig("deces_lieu", i18nC.lieu(), 100));
400
		colonnes.add(new ColumnConfig("deces_lieu", i18nC.lieu(), 100));
380
		
401
		
381
		GridSelectionModel<Personne> modeleDeSelection = new GridSelectionModel<Personne>();
402
		GridSelectionModel<CollectionAPersonne> modeleDeSelection = new GridSelectionModel<CollectionAPersonne>();
382
		
403
		
383
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
404
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
384
		modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
405
		modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
385
		modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
406
		modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
386
		modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
407
		modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
387
		
408
		
388
		EditorGrid<Personne> grillePersonne = new EditorGrid<Personne>(storeGrille, modeleDeColonnes);
409
		EditorGrid<CollectionAPersonne> grillePersonne = new EditorGrid<CollectionAPersonne>(storeGrille, modeleDeColonnes);
389
		grillePersonne.setHeight("100%");
410
		grillePersonne.setHeight("100%");
390
		grillePersonne.setBorders(true);
411
		grillePersonne.setBorders(true);
391
		grillePersonne.setSelectionModel(modeleDeSelection);
412
		grillePersonne.setSelectionModel(modeleDeSelection);
392
		grillePersonne.addPlugin(pluginLigneNumero);
413
		grillePersonne.addPlugin(pluginLigneNumero);
393
		grillePersonne.getView().setForceFit(true);
414
		grillePersonne.getView().setForceFit(true);
394
		grillePersonne.setAutoExpandColumn("fmt_nom_complet");
415
		grillePersonne.setAutoExpandColumn("fmt_nom_complet");
395
		grillePersonne.setStripeRows(true);
416
		grillePersonne.setStripeRows(true);
396
		grillePersonne.setTrackMouseOver(true);
417
		grillePersonne.setTrackMouseOver(true);
397
		
418
		
398
		return grillePersonne;
419
		return grillePersonne;
399
	}
420
	}
-
 
421
	
-
 
422
	public ColumnConfig creerColonneDeces() {
-
 
423
		GridCellRenderer<CollectionAPersonne> decesRendu = new GridCellRenderer<CollectionAPersonne>() {
-
 
424
			@Override
-
 
425
			public String render(CollectionAPersonne modele, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPersonne> store, Grid<CollectionAPersonne> grid) {
-
 
426
				String deces = modele.getPersonne().getDeces();
-
 
427
				if (listeIon != null && modele.getPersonne().getDeces().matches("[0-9]+")) {
-
 
428
					deces = listeIon.get(modele.getPersonne().getDeces()).getNom();
-
 
429
				}
-
 
430
				modele.set("_deces_", deces);
-
 
431
				return deces;
-
 
432
			}
-
 
433
		};
-
 
434
		ColumnConfig decesColonne = new ColumnConfig("_deces_", Mediateur.i18nC.personneDecedeeInterogation(), 50);
-
 
435
		decesColonne.setRenderer(decesRendu);
-
 
436
		return decesColonne;
-
 
437
	}
400
	
438
	
401
	public void actualiserEtatBoutonsBarreOutils() {
439
	public void actualiserEtatBoutonsBarreOutils() {
402
		// Activation des boutons si la grille contient un élément
440
		// Activation des boutons si la grille contient un élément
403
		if (grille.getStore().getCount() > 0) {  
441
		if (grille.getStore().getCount() > 0) {  
404
			personnesBoutonSupprimer.enable();
442
			personnesBoutonSupprimer.enable();
405
			personnesBoutonModifier.enable();
443
			personnesBoutonModifier.enable();
406
		}
444
		}
407
		// Désactivation des boutons si la grille ne contient plus d'élément
445
		// Désactivation des boutons si la grille ne contient plus d'élément
408
		if (grille.getStore().getCount() == 0) {  
446
		if (grille.getStore().getCount() == 0) {  
409
			personnesBoutonSupprimer.disable();
447
			personnesBoutonSupprimer.disable();
410
			personnesBoutonModifier.disable();
448
			personnesBoutonModifier.disable();
411
		}
449
		}
412
	}
450
	}
413
	
451
	
414
	public void rafraichir(Object nouvellesDonnees) {
452
	public void rafraichir(Object nouvellesDonnees) {
415
		if (nouvellesDonnees instanceof ValeurListe) {
453
		if (nouvellesDonnees instanceof ValeurListe) {
416
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
454
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
417
			rafraichirValeurListe(listeValeurs);
455
			rafraichirValeurListe(listeValeurs);
418
		} else if (nouvellesDonnees instanceof Information) {
456
		} else if (nouvellesDonnees instanceof Information) {
419
			Information info = (Information) nouvellesDonnees;
457
			Information info = (Information) nouvellesDonnees;
420
			rafraichirInformation(info);
458
			rafraichirInformation(info);
421
		} else {
459
		} else {
422
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
460
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
423
		}
461
		}
424
	}
462
	}
425
	
463
	
426
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
464
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
-
 
465
		if (listeValeurs.getId().equals(config.getListeId("ion"))) {
-
 
466
			listeIon = listeValeurs;
427
		if (listeValeurs.getId().equals(config.getListeId("relationPersonneCollection"))) {
467
		} else if (listeValeurs.getId().equals(config.getListeId("relationPersonneCollection"))) {
428
			Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
468
			Formulaire.rafraichirComboBox(listeValeurs, typeRelationCombo);
429
		} else {
469
		} else {
430
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
470
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
431
		}
471
		}
432
	}
472
	}
433
	
473
	
434
	public void rafraichirInformation(Information info) {
474
	public void rafraichirInformation(Information info) {
435
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
475
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
436
			GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
476
			GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
437
		}
477
		}
438
		String type = info.getType();
478
		String type = info.getType();
439
		if (type.equals("liste_personne")) {
479
		if (type.equals("liste_personne")) {
440
			if (info.getDonnee(0) != null) {
480
			if (info.getDonnee(0) != null) {
441
				PersonneListe personnes = (PersonneListe) info.getDonnee(0);
481
				PersonneListe personnes = (PersonneListe) info.getDonnee(0);
442
				List<Personne> liste = personnes.toList();
482
				List<Personne> liste = personnes.toList();
443
				
483
				
444
				personnesSaisisComboBox.getStore().removeAll();
484
				personnesSaisisComboBox.getStore().removeAll();
445
				personnesSaisisComboBox.getStore().add(liste);
485
				personnesSaisisComboBox.getStore().add(liste);
446
				personnesSaisisComboBox.expand();
486
				personnesSaisisComboBox.expand();
447
			}
487
			}
448
		} else if (type.equals("liste_collection_a_personne")) {
488
		} else if (type.equals("liste_collection_a_personne")) {
449
			if (info.getDonnee(0) != null) {
489
			if (info.getDonnee(0) != null) {
450
				initialiser();
490
				initialiser();
451
				// TODO : passer à la méthode peupler un objet CollectionAPersonneListe et modifier le type de auteurs
491
				// TODO : passer à la méthode peupler un objet CollectionAPersonneListe et modifier le type de auteurs
452
				//auteurs = (CollectionAPersonneListe) info.getDonnee(0);
492
				//auteurs = (CollectionAPersonneListe) info.getDonnee(0);
453
				peupler();
493
				peupler();
454
			}
494
			}
-
 
495
		} else if (info.getType().equals("ajout_collection")) {
-
 
496
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
-
 
497
				String collectionId = (String) info.getDonnee(0);
-
 
498
				
-
 
499
				// Suite à la récupération de l'id de la collection nouvellement ajoutée nous ajoutons les personnes liées
-
 
500
				// En mode AJOUT, il ne peut que y avoir des personnes liées ajoutées
-
 
501
				mediateur.ajouterCollectionAPersonne(this, collectionId, personnesAjoutees);
-
 
502
			} else {
-
 
503
				Info.display("Ajout d'une Institution", info.toString());
-
 
504
			}
-
 
505
		} else if (info.getType().equals("modif_collection_a_personne")) {
-
 
506
			Info.display("Modification des personnes liées à la collection", info.toString());
-
 
507
		} else if (info.getType().equals("suppression_collection_a_personne")) {
-
 
508
			Info.display("Suppression des personnes liées à la collection", info.toString());
-
 
509
		} else if (info.getType().equals("ajout_collection_a_personne")) {
-
 
510
			Info.display("Ajout des personnes liées à la collection", info.toString());
455
		}
511
		}
456
	}
512
	}
457
 
513
	
458
	private void peupler() {
514
	public void peupler() {
-
 
515
		initialiserCollection();
459
		layout();
516
		layout();
460
		Info.display(i18nC.chargementPersonne(), i18nC.ok());
517
		Info.display(i18nC.chargementPersonne(), i18nC.ok());
461
	}
518
	}
-
 
519
	
-
 
520
	public ArrayList<String> verifier() {
-
 
521
		ArrayList<String> messages = new ArrayList<String>();
-
 
522
		String personneNumero = "";
-
 
523
		int nbrePersonne = grille.getStore().getCount();
-
 
524
		
-
 
525
		if (nbrePersonne > 0) {
-
 
526
			for (int i = 0; i < nbrePersonne; i++) {
-
 
527
				CollectionAPersonne personne = grille.getStore().getAt(i);
-
 
528
				if (personne.getIdRole().equals("")) {
-
 
529
					personneNumero += (i != 0 ? ", " : "")+(i+1);
-
 
530
				}
-
 
531
			}
-
 
532
			if (!personneNumero.equals("")) {
-
 
533
				messages.add("Veuillez indiquez le type de relation existant entre la collection et les personnes numéros : "+personneNumero);
-
 
534
			}
-
 
535
		}
-
 
536
		
-
 
537
		return messages;
-
 
538
	}
-
 
539
	
-
 
540
	public void collecter() {
-
 
541
		initialiserCollection();
-
 
542
		if (etreAccede()) {
-
 
543
			int nbrePersonne = grille.getStore().getCount();
-
 
544
			for (int i = 0; i < nbrePersonne; i++) {
-
 
545
				CollectionAPersonne personne = grille.getStore().getAt(i);
-
 
546
				// Seules les lignes ajoutées ou modifiées sont prises en compte.
-
 
547
				Record enregistrement = grille.getStore().getRecord(personne);
-
 
548
				if (grille.getStore().getModifiedRecords().contains(enregistrement) == true 
-
 
549
						|| (personne.get("etat") != null && personne.get("etat").equals(aDonnee.ETAT_AJOUTE) )) {
-
 
550
					
-
 
551
					// Gestion de l'id de la structure
-
 
552
					if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
553
						personne.setIdCollection(collection.getId());
-
 
554
					}
-
 
555
					
-
 
556
					// Ajout de la personne dans la liste correspondant à son état (ajouté ou modifié)
-
 
557
					if (personne.get("etat") != null && personne.get("etat").equals(aDonnee.ETAT_AJOUTE)) {// Une personne ajoutée
-
 
558
						personnesAjoutees.put(""+i, personne);
-
 
559
					} else {// Une personne modifiée
-
 
560
						personnesModifiees.put(personne.getId(), personne);
-
 
561
					}
-
 
562
				} else {
-
 
563
					GWT.log("Personne non modifiées : "+personne.getPersonne().getPrenom()+" "+personne.getPersonne().getNom(), null);
-
 
564
				}
-
 
565
			}
-
 
566
		}
-
 
567
	}
-
 
568
	
-
 
569
	public void soumettre() {
-
 
570
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
571
			if (personnesModifiees.size() == 0 && personnesAjoutees.size() == 0 && personnesSupprimees.size() == 0) {
-
 
572
				Info.display("Modification des personnes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
-
 
573
			} else {
-
 
574
				if (personnesModifiees.size() != 0) {
-
 
575
					mediateur.modifierCollectionAPersonne(this, personnesModifiees);
-
 
576
				}
-
 
577
				// Ajout des relations CollectionAPersonne
-
 
578
				if (personnesAjoutees.size() != 0) {
-
 
579
					mediateur.ajouterCollectionAPersonne(this, collection.getId(), personnesAjoutees);
-
 
580
				}
-
 
581
				// Suppression des relations StructureAPersonne
-
 
582
				if (personnesSupprimees.size() != 0) {
-
 
583
					mediateur.supprimerCollectionAPersonne(this, personnesSupprimees);
-
 
584
				}
-
 
585
			}
-
 
586
		}
-
 
587
	}
462
 
588
	
463
	private void obtenirPersonnesSaisis(String nom) {
589
	private void obtenirPersonnesSaisis(String nom) {
464
		mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); 
590
		mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); 
465
	}
591
	}
466
}
592
}