Subversion Repositories eFlore/Applications.coel

Rev

Rev 862 | Rev 883 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 862 Rev 875
Line 5... Line 5...
5
import java.util.List;
5
import java.util.List;
Line 6... Line 6...
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;
-
 
10
import org.tela_botanica.client.modeles.Collection;
-
 
11
import org.tela_botanica.client.modeles.CollectionAPersonne;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
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;
-
 
16
import org.tela_botanica.client.modeles.PersonneListe;
-
 
17
import org.tela_botanica.client.modeles.Publication;
13
import org.tela_botanica.client.modeles.PersonneListe;
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;
-
 
22
import org.tela_botanica.client.modeles.ValeurListe;
Line 17... Line 23...
17
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;
-
 
32
import com.extjs.gxt.ui.client.event.SelectionListener;
26
import com.extjs.gxt.ui.client.event.SelectionListener;
33
import com.extjs.gxt.ui.client.store.ListStore;
27
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;
-
 
41
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
34
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
42
import com.extjs.gxt.ui.client.widget.form.ComboBox;
35
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;
-
 
45
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
37
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
46
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
38
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;
-
 
49
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
40
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
50
import com.extjs.gxt.ui.client.widget.grid.Grid;
41
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;
Line 48... Line 58...
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;
Line 50... Line 60...
50
 
60
 
Line -... Line 61...
-
 
61
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable {
-
 
62
	
-
 
63
	private Collection collection = null;
51
public class CollectionFormPersonne extends FormulaireOnglet implements Rafraichissable {
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;
Line 55... Line 68...
55
	private Grid<Personne> grille;
68
	private Grid<CollectionAPersonne> grille;
56
	private ComboBox<Valeur> typeRelationCombo = null;
69
	private ComboBox<Valeur> typeRelationCombo = null;
-
 
70
	
57
	
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;
-
 
76
	private Button personnesBoutonSupprimer = null;
-
 
77
	private Button personnesBoutonModifier = null;
Line 62... Line 78...
62
	private Button personnesBoutonSupprimer = null;
78
	private ValeurListe listeIon = null;
63
	private Button personnesBoutonModifier = null;
79
	
Line 64... Line 80...
64
	private Button ajouterPersonneSaisiBouton = null;
80
	private FenetreForm fenetreFormulaire = null;
Line 75... Line 91...
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);
Line 82... Line 99...
82
		
99
		
83
		initialiser();
100
		initialiser();
Line 84... Line 101...
84
	}
101
	}
85
	
102
	
86
	private void initialiser() {
103
	private void initialiser() {
-
 
104
		// Remise à zéro des modification dans la liste des auteurs
87
		// Remise à zéro des modification dans la liste des auteurs
105
		personnesAjoutees = new CollectionAPersonneListe();
Line 88... Line 106...
88
		personnesAjoutes = new PersonneListe();
106
		personnesModifiees = new CollectionAPersonneListe();
89
		personnesSupprimes = new PersonneListe();
107
		personnesSupprimees = new CollectionAPersonneListe();
90
		
108
		
-
 
109
		// Actualisation de l'état des boutons de la barre d'outils
-
 
110
		actualiserEtatBoutonsBarreOutils();
-
 
111
	}
-
 
112
	
-
 
113
	private void initialiserCollection() {
Line 91... Line 114...
91
		// Actualisation de l'état des boutons de la barre d'outils
114
		collection = ((CollectionForm) formulaire).collection;
92
		actualiserEtatBoutonsBarreOutils();
115
		collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
Line 93... Line 116...
93
	}
116
	}
Line 109... Line 132...
109
		Button ajouterPersonneBouton = creerBoutonAjouter();
132
		Button ajouterPersonneBouton = creerBoutonAjouter();
110
		barreOutils.add(ajouterPersonneBouton);
133
		barreOutils.add(ajouterPersonneBouton);
Line 111... Line 134...
111
		
134
		
Line 112... Line 135...
112
		barreOutils.add(new Text(" ou "));
135
		barreOutils.add(new Text(" ou "));
113
		
136
		
Line 114... Line 137...
114
		personnesSaisisComboBox = creerComboBoxAuteursSaisis();
137
		personnesSaisisComboBox = creerComboBoxPersonnesSaisies();
Line 115... Line 138...
115
		barreOutils.add(personnesSaisisComboBox);
138
		barreOutils.add(personnesSaisisComboBox);
Line 134... Line 157...
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());
-
 
161
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
138
		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;
Line 149... Line 173...
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
	}
Line 165... Line 189...
165
	
189
	
-
 
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
		}
166
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
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;
Line 171... Line 201...
171
	}
201
	}
172
	
202
	
-
 
203
	private PersonneForm creerFormulairePersonne(final FenetreForm fenetre, String personneId) {
173
	private PersonneForm creerFormulairePersonne(final FenetreForm fenetre) {
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());
Line 176... Line 207...
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);
-
 
181
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
-
 
182
		//formulaire.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);
-
 
Line 190... Line 211...
190
			info.setDonnee(0, personnes);
211
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulaire);
191
			formulaire.rafraichir(info);
212
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
Line 192... Line 213...
192
		}
213
		panneauFormulaire.setBottomComponent(barreValidation);
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) {
-
 
201
				String code = ((Button) ce.getComponent()).getData("code");
221
			public void componentSelected(ButtonEvent ce) {
202
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
-
 
203
					Boolean ok = formulaire.enregistrer();
222
				String code = ((Button) ce.getComponent()).getData("code");
204
					if (ok == true) {
223
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
205
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
-
 
206
					}
-
 
207
					fenetre.hide();
-
 
208
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
224
					if (formulaire.soumettreFormulaire()) {
209
					Boolean ok = formulaire.enregistrer();
225
						fenetre.hide();
210
					if (ok == true) {
226
					}
-
 
227
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
-
 
228
					formulaire.soumettreFormulaire();
211
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
229
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
212
					}
230
					fenetre.hide();
213
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
231
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
214
					fenetre.hide();
232
					fenetreFormulaire.hide();
Line 215... Line 233...
215
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
233
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(formulaire.mode);
Line 225... Line 243...
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
	}
Line 248... Line 266...
248
			}   
266
			}   
249
		});
267
		});
250
		return bouton;
268
		return bouton;
251
	}
269
	}
Line 252... Line 270...
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>();
Line 255... Line 273...
255
		personnesSaisiesStore.add(new ArrayList<Personne>());
273
		personnesSaisiesStore.add(new ArrayList<Personne>());
256
		
274
		
Line 272... Line 290...
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
	}
Line 285... Line 303...
285
	
303
	
286
	private void ajouterDansGrille(Personne personne) {
304
	private void ajouterDansGrille(Personne personne) {
-
 
305
		if (personne != null) {
-
 
306
			CollectionAPersonne relationCollectionPersonne = new CollectionAPersonne();
-
 
307
			relationCollectionPersonne.setPersonne(personne);
287
		if (personne != null) {
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);
Line 291... Line 312...
291
			}
312
			}
292
			
313
			
Line 293... Line 314...
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);
Line 298... Line 319...
298
			grille.getSelectionModel().select(0, false);
319
			grille.getSelectionModel().select(0, false);
299
		}
320
		}
300
	}
321
	}
301
	
322
	
-
 
323
	private void supprimerDansGrille(CollectionAPersonne relationCollectionPersonne) {
-
 
324
		if (relationCollectionPersonne != null) {
302
	private void supprimerDansGrille(Personne personne) {
325
			// Ajout de la personne supprimée à la liste
303
		if (personne != null) {
326
			if ((relationCollectionPersonne.get("etat") == null || !relationCollectionPersonne.get("etat").equals(ETAT_AJOUTE)) 
Line 304... Line 327...
304
			// Ajout de la personne supprimée à la liste
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
			}
Line 308... Line 331...
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
 
Line 361... Line 384...
361
				}
384
				}
362
				return retour;  
385
				return retour;  
363
			}  
386
			}  
364
		};
387
		};
Line 365... Line 388...
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);
Line 368... Line 391...
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));
-
 
372
		colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75));
-
 
373
		colonnes.add(new ColumnConfig("prefixe", i18nC.personnePrefixe(), 50));
394
		colonnes.add(new ColumnConfig("nom", i18nC.personneNom(), 75));
374
		//colonnes.add(new ColumnConfig("truk_nom_autre", i18nC.personneNomAutre(), 200));
395
		colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75));
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());
Line 378... Line 399...
378
		colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75));
399
		colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75));
Line 379... Line 400...
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
		
Line 383... Line 404...
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);
Line 396... Line 417...
396
		grillePersonne.setTrackMouseOver(true);
417
		grillePersonne.setTrackMouseOver(true);
Line 397... Line 418...
397
		
418
		
398
		return grillePersonne;
419
		return grillePersonne;
Line -... Line 420...
-
 
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;
399
	}
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) {  
Line 422... Line 460...
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
	}
Line 425... Line 463...
425
	
463
	
-
 
464
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
-
 
465
		if (listeValeurs.getId().equals(config.getListeId("ion"))) {
426
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
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
		}
Line 450... Line 490...
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
}