Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 775 Rev 800
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.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.images.Images;
7
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.Information;
9
import org.tela_botanica.client.modeles.Information;
10
import org.tela_botanica.client.modeles.Personne;
10
import org.tela_botanica.client.modeles.Personne;
11
import org.tela_botanica.client.modeles.PersonneListe;
11
import org.tela_botanica.client.modeles.PersonneListe;
12
import org.tela_botanica.client.modeles.ValeurListe;
12
import org.tela_botanica.client.modeles.ValeurListe;
13
 
13
 
14
import com.extjs.gxt.ui.client.event.BaseEvent;
14
import com.extjs.gxt.ui.client.event.BaseEvent;
15
import com.extjs.gxt.ui.client.event.ButtonEvent;
15
import com.extjs.gxt.ui.client.event.ButtonEvent;
16
import com.extjs.gxt.ui.client.event.ComponentEvent;
16
import com.extjs.gxt.ui.client.event.ComponentEvent;
17
import com.extjs.gxt.ui.client.event.EventType;
17
import com.extjs.gxt.ui.client.event.EventType;
18
import com.extjs.gxt.ui.client.event.Events;
18
import com.extjs.gxt.ui.client.event.Events;
19
import com.extjs.gxt.ui.client.event.KeyListener;
19
import com.extjs.gxt.ui.client.event.KeyListener;
20
import com.extjs.gxt.ui.client.event.Listener;
20
import com.extjs.gxt.ui.client.event.Listener;
21
import com.extjs.gxt.ui.client.event.SelectionListener;
21
import com.extjs.gxt.ui.client.event.SelectionListener;
22
import com.extjs.gxt.ui.client.store.ListStore;
22
import com.extjs.gxt.ui.client.store.ListStore;
23
import com.extjs.gxt.ui.client.store.Store;
23
import com.extjs.gxt.ui.client.store.Store;
24
import com.extjs.gxt.ui.client.store.StoreEvent;
24
import com.extjs.gxt.ui.client.store.StoreEvent;
25
import com.extjs.gxt.ui.client.widget.ContentPanel;
25
import com.extjs.gxt.ui.client.widget.ContentPanel;
26
import com.extjs.gxt.ui.client.widget.Info;
26
import com.extjs.gxt.ui.client.widget.Info;
27
import com.extjs.gxt.ui.client.widget.button.Button;
27
import com.extjs.gxt.ui.client.widget.button.Button;
28
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
28
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
29
import com.extjs.gxt.ui.client.widget.form.ComboBox;
29
import com.extjs.gxt.ui.client.widget.form.ComboBox;
30
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
30
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
31
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
31
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
32
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
32
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
33
import com.extjs.gxt.ui.client.widget.grid.Grid;
33
import com.extjs.gxt.ui.client.widget.grid.Grid;
34
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
34
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
35
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
35
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
36
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
36
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
37
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
37
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
38
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
38
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
39
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
39
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
40
import com.google.gwt.core.client.GWT;
40
import com.google.gwt.core.client.GWT;
41
import com.google.gwt.event.dom.client.KeyCodes;
41
import com.google.gwt.event.dom.client.KeyCodes;
42
 
42
 
43
public class CollectionFormAuteur extends FormulaireOnglet implements Rafraichissable {
43
public class CollectionFormAuteur extends FormulaireOnglet implements Rafraichissable {
44
	
44
	
45
	private ContentPanel panneauPrincipal = null;
45
	private ContentPanel panneauPrincipal = null;
46
	private ToolBar barreOutils = null;
46
	private ToolBar barreOutils = null;
47
	private Grid<Personne> grille;
47
	private Grid<Personne> grille;
48
	
48
	
49
	private PersonneListe auteurs = null;
49
	private PersonneListe auteurs = null;
50
	private PersonneListe auteursAjoutes = null;
50
	private PersonneListe auteursAjoutes = null;
51
	private PersonneListe auteursSupprimes = null;
51
	private PersonneListe auteursSupprimes = null;
52
	private ComboBox<Personne> auteursSaisisComboBox = null;
52
	private ComboBox<Personne> auteursSaisisComboBox = null;
53
	private Button auteursBoutonSupprimer = null;
53
	private Button auteursBoutonSupprimer = null;
54
	private Button auteursBoutonModifier = null;
54
	private Button auteursBoutonModifier = null;
55
	private Button ajouterAuteurSaisiBouton = null;
55
	private Button ajouterAuteurSaisiBouton = null;
56
	
56
	
57
	private static final String ETAT_AJOUTE = "A";
57
	private static final String ETAT_AJOUTE = "A";
58
	private static final String ETAT_SUPPRIME = "S";
58
	private static final String ETAT_SUPPRIME = "S";
59
	
59
	
60
	public CollectionFormAuteur(Formulaire formulaireCourrant) {
60
	public CollectionFormAuteur(Formulaire formulaireCourrant) {
61
		initialiserOnglet(formulaireCourrant);
61
		initialiserOnglet(formulaireCourrant);
62
		setId("auteur");
62
		setId("auteur");
63
		setText(Mediateur.i18nC.collectionAuteur());
63
		setText(Mediateur.i18nC.collectionAuteur());
64
		setStyleAttribute("padding", "0");
64
		setStyleAttribute("padding", "0");
65
		
65
		
66
		panneauPrincipal = creerPanneauContenantGrille();
66
		panneauPrincipal = creerPanneauContenantGrille();
67
		barreOutils = creerBarreOutilsGrille();
67
		barreOutils = creerBarreOutilsGrille();
68
		panneauPrincipal.setTopComponent(barreOutils);
68
		panneauPrincipal.setTopComponent(barreOutils);
69
		grille = creerGrille();
69
		grille = creerGrille();
70
  		panneauPrincipal.add(grille);
70
  		panneauPrincipal.add(grille);
71
		add(panneauPrincipal);
71
		add(panneauPrincipal);
72
		
72
		
73
		initialiser();
73
		initialiser();
74
	}
74
	}
75
	
75
	
76
	private void initialiser() {
76
	private void initialiser() {
77
		// Remise à zéro des modification dans la liste des auteurs
77
		// Remise à zéro des modification dans la liste des auteurs
78
		auteursAjoutes = new PersonneListe();
78
		auteursAjoutes = new PersonneListe();
79
		auteursSupprimes = new PersonneListe();
79
		auteursSupprimes = new PersonneListe();
80
		
80
		
81
		// Actualisation de l'état des boutons de la barre d'outils
81
		// Actualisation de l'état des boutons de la barre d'outils
82
		actualiserEtatBoutonsBarreOutils();
82
		actualiserEtatBoutonsBarreOutils();
83
	}
83
	}
84
		
84
		
85
	private ContentPanel creerPanneauContenantGrille() {
85
	private ContentPanel creerPanneauContenantGrille() {
86
		ContentPanel panneau = new ContentPanel();
86
		ContentPanel panneau = new ContentPanel();
87
		
87
		
88
		panneau.setHeading(i18nC.collectionAuteurTitre());
88
		panneau.setHeading(i18nC.collectionAuteurTitre());
89
		panneau.setIcon(Images.ICONES.table());
89
		panneau.setIcon(Images.ICONES.table());
90
		panneau.setLayout(new FitLayout());
90
		panneau.setLayout(new FitLayout());
91
		panneau.setFrame(true);
91
		panneau.setFrame(true);
92
		
92
		
93
		return panneau;
93
		return panneau;
94
	}
94
	}
95
 
95
 
96
	private ToolBar creerBarreOutilsGrille() {
96
	private ToolBar creerBarreOutilsGrille() {
97
		ToolBar barreOutils = new ToolBar();  
97
		ToolBar barreOutils = new ToolBar();  
98
		
98
		
99
		Button ajouterPersonneBouton = creerBoutonAjouter();
99
		Button ajouterPersonneBouton = creerBoutonAjouter();
100
		barreOutils.add(ajouterPersonneBouton);
100
		barreOutils.add(ajouterPersonneBouton);
101
		
101
		
102
		barreOutils.add(new SeparatorToolItem());
102
		barreOutils.add(new SeparatorToolItem());
103
		
103
		
104
		auteursBoutonModifier = creerBoutonModifier();
104
		auteursBoutonModifier = creerBoutonModifier();
105
		barreOutils.add(auteursBoutonModifier);
105
		barreOutils.add(auteursBoutonModifier);
106
		
106
		
107
		barreOutils.add(new SeparatorToolItem());
107
		barreOutils.add(new SeparatorToolItem());
108
		
108
		
109
		auteursBoutonSupprimer = creerBoutonSupprimer();
109
		auteursBoutonSupprimer = creerBoutonSupprimer();
110
		barreOutils.add(auteursBoutonSupprimer);		
110
		barreOutils.add(auteursBoutonSupprimer);		
111
		
111
		
112
		barreOutils.add(new SeparatorToolItem());
112
		barreOutils.add(new SeparatorToolItem());
113
		
113
		
114
		Button rafraichirPersonneBouton = creerBoutonRafraichir();
114
		Button rafraichirPersonneBouton = creerBoutonRafraichir();
115
		barreOutils.add(rafraichirPersonneBouton);
115
		barreOutils.add(rafraichirPersonneBouton);
116
		
116
		
117
		barreOutils.add(new SeparatorToolItem());
117
		barreOutils.add(new SeparatorToolItem());
118
		
118
		
119
		auteursSaisisComboBox = creerComboBoxAuteursSaisis();
119
		auteursSaisisComboBox = creerComboBoxAuteursSaisis();
120
		barreOutils.add(auteursSaisisComboBox);
120
		barreOutils.add(auteursSaisisComboBox);
121
		
121
		
122
		ajouterAuteurSaisiBouton = creerBoutonAjouterAuteurSaisi();
122
		ajouterAuteurSaisiBouton = creerBoutonAjouterAuteurSaisi();
123
		barreOutils.add(ajouterAuteurSaisiBouton);
123
		barreOutils.add(ajouterAuteurSaisiBouton);
124
		
124
		
125
		return barreOutils;
125
		return barreOutils;
126
	}
126
	}
127
 
127
 
128
	private Button creerBoutonAjouter() {
128
	private Button creerBoutonAjouter() {
129
		Button bouton = new Button(i18nC.ajouter());
129
		Button bouton = new Button(i18nC.ajouter());
130
		bouton.setIcon(Images.ICONES.vcardAjouter());
130
		bouton.setIcon(Images.ICONES.vcardAjouter());
131
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
131
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
132
			@Override  
132
			@Override  
133
			public void componentSelected(ButtonEvent ce) {  
133
			public void componentSelected(ButtonEvent ce) {  
134
				FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER);
134
				FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER);
135
				fenetre.show();
135
				fenetre.show();
136
			}  
136
			}  
137
		});
137
		});
138
		return bouton;
138
		return bouton;
139
	}
139
	}
140
	
140
	
141
	private Button creerBoutonModifier() {
141
	private Button creerBoutonModifier() {
142
		Button bouton = new Button(i18nC.modifier());
142
		Button bouton = new Button(i18nC.modifier());
143
		bouton.setIcon(Images.ICONES.vcardModifier());
143
		bouton.setIcon(Images.ICONES.vcardModifier());
144
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
144
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
145
			@Override  
145
			@Override  
146
			public void componentSelected(ButtonEvent ce) {  
146
			public void componentSelected(ButtonEvent ce) {  
147
				Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
147
				Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
148
				if (auteurSaisiSelectionne == null) {
148
				if (auteurSaisiSelectionne == null) {
149
					Info.display("Info", "Veuillez selectionner un auteur");
149
					Info.display("Info", "Veuillez selectionner un auteur");
150
				} else {
150
				} else {
151
					FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
151
					FenetreForm fenetre = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
152
					fenetre.show();
152
					fenetre.show();
153
				}
153
				}
154
			}  
154
			}  
155
		});
155
		});
156
		return bouton;
156
		return bouton;
157
	}
157
	}
158
	
158
	
159
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
159
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
160
		final FenetreForm fenetre = new FenetreForm("");
160
		final FenetreForm fenetre = new FenetreForm("");
161
		final PersonneForm formulaire = creerFormulairePersonne(fenetre);
161
		final PersonneForm formulaire = creerFormulairePersonne(fenetre);
162
		fenetre.add(formulaire);
162
		fenetre.add(formulaire);
163
		return fenetre;
163
		return fenetre;
164
	}
164
	}
165
	
165
	
166
	private PersonneForm creerFormulairePersonne(final FenetreForm fenetre) {
166
	private PersonneForm creerFormulairePersonne(final FenetreForm fenetre) {
167
		PersonneForm formulaire = new PersonneForm(mode);
167
		PersonneForm formulaire = new PersonneForm(mode);
168
		fenetre.setHeading(formulaire.getHeading());
168
		fenetre.setHeading(formulaire.getHeading());
169
		formulaire.setHeaderVisible(false);
169
		formulaire.setHeaderVisible(false);
170
		formulaire.setTopComponent(null);
170
		formulaire.setTopComponent(null);
171
 
171
 
172
		// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale
172
		// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale
173
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulaire);
173
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePersonne(fenetre, formulaire);
174
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
174
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
175
		formulaire.setBottomComponent(barreValidation);
175
		formulaire.setBottomComponent(barreValidation);
176
		
176
		
177
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
177
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
178
			// 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).
178
			// 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).
179
			Information info = new Information("liste_personne");
179
			Information info = new Information("liste_personne");
180
			PersonneListe personnes = new PersonneListe();
180
			PersonneListe personnes = new PersonneListe();
181
			Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
181
			Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
182
			personnes.put(auteurSaisiSelectionne.getId(), auteurSaisiSelectionne);
182
			personnes.put(auteurSaisiSelectionne.getId(), auteurSaisiSelectionne);
183
			info.setDonnee(0, personnes);
183
			info.setDonnee(0, personnes);
184
			formulaire.rafraichir(info);
184
			formulaire.rafraichir(info);
185
		}
185
		}
186
		
186
		
187
		return formulaire;
187
		return formulaire;
188
	}
188
	}
189
	
189
	
190
	private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePersonne(final FenetreForm fenetre, final PersonneForm formulaire) {
190
	private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePersonne(final FenetreForm fenetre, final PersonneForm formulaire) {
191
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
191
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
192
			@Override
192
			@Override
193
			public void componentSelected(ButtonEvent ce) {
193
			public void componentSelected(ButtonEvent ce) {
194
				String code = ((Button) ce.getComponent()).getData("code");
194
				String code = ((Button) ce.getComponent()).getData("code");
195
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
195
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
196
					Boolean ok = formulaire.enregistrer();
196
					Boolean ok = formulaire.enregistrer();
197
					if (ok == true) {
197
					if (ok == true) {
198
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
198
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
199
					}
199
					}
200
					fenetre.hide();
200
					fenetre.hide();
201
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
201
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
202
					Boolean ok = formulaire.enregistrer();
202
					Boolean ok = formulaire.enregistrer();
203
					if (ok == true) {
203
					if (ok == true) {
204
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
204
						// Fermer fenêtre et ajouter/modifier l'élément dans la liste
205
					}
205
					}
206
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
206
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
207
					fenetre.hide();
207
					fenetre.hide();
208
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
208
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
209
					formulaire.reinitialiser();
209
					formulaire.reinitialiser();
210
				}
210
				}
211
			}
211
			}
212
		};
212
		};
213
		
213
		
214
		return ecouteur;
214
		return ecouteur;
215
	}
215
	}
216
	
216
	
217
	private Button creerBoutonSupprimer() {
217
	private Button creerBoutonSupprimer() {
218
		Button bouton = new Button(i18nC.supprimer());
218
		Button bouton = new Button(i18nC.supprimer());
219
		bouton.setIcon(Images.ICONES.vcardSupprimer());
219
		bouton.setIcon(Images.ICONES.vcardSupprimer());
220
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
220
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
221
			@Override
221
			@Override
222
			public void componentSelected(ButtonEvent ce) {
222
			public void componentSelected(ButtonEvent ce) {
223
				Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
223
				Personne auteurSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
224
				if (auteurSaisiSelectionne == null) {
224
				if (auteurSaisiSelectionne == null) {
225
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerAuteur());
225
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerAuteur());
226
				} else {
226
				} else {
227
					supprimerDansGrille(auteurSaisiSelectionne);
227
					supprimerDansGrille(auteurSaisiSelectionne);
228
				}
228
				}
229
			}   
229
			}   
230
		});
230
		});
231
		return bouton;
231
		return bouton;
232
	}
232
	}
233
	
233
	
234
	private Button creerBoutonRafraichir() {
234
	private Button creerBoutonRafraichir() {
235
		Button bouton = new Button(i18nC.rafraichir());
235
		Button bouton = new Button(i18nC.rafraichir());
236
		bouton.setIcon(Images.ICONES.rafraichir());
236
		bouton.setIcon(Images.ICONES.rafraichir());
237
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
237
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
238
			@Override
238
			@Override
239
			public void componentSelected(ButtonEvent ce) {
239
			public void componentSelected(ButtonEvent ce) {
240
				// TODO : mettre en place le rafraichissement de la liste
240
				// TODO : mettre en place le rafraichissement de la liste
241
			}   
241
			}   
242
		});
242
		});
243
		return bouton;
243
		return bouton;
244
	}
244
	}
245
	
245
	
246
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
246
	private ComboBox<Personne> creerComboBoxAuteursSaisis() {
247
		ListStore<Personne> personnesSaisiesStore = new ListStore<Personne>();
247
		ListStore<Personne> personnesSaisiesStore = new ListStore<Personne>();
248
		personnesSaisiesStore.add(new ArrayList<Personne>());
248
		personnesSaisiesStore.add(new ArrayList<Personne>());
249
		
249
		
250
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
250
		ComboBox<Personne> comboBox = new ComboBox<Personne>();
251
		comboBox.setWidth(200);
251
		comboBox.setWidth(200);
252
		comboBox.setEmptyText(i18nC.chercherAuteurSaisi());
252
		comboBox.setEmptyText(i18nC.chercherAuteurSaisi());
253
		comboBox.setTriggerAction(TriggerAction.ALL);  
253
		comboBox.setTriggerAction(TriggerAction.ALL);  
254
		comboBox.setEditable(true);
254
		comboBox.setEditable(true);
255
		comboBox.setDisplayField("fmt_nom_complet");
255
		comboBox.setDisplayField("fmt_nom_complet");
256
		comboBox.setStore(personnesSaisiesStore);
256
		comboBox.setStore(personnesSaisiesStore);
257
		comboBox.addKeyListener(new KeyListener() {
257
		comboBox.addKeyListener(new KeyListener() {
258
			public void componentKeyUp(ComponentEvent ce) {
258
			public void componentKeyUp(ComponentEvent ce) {
259
				if (auteursSaisisComboBox.getRawValue() != null && auteursSaisisComboBox.getRawValue().length() > 0) {
259
				if (auteursSaisisComboBox.getRawValue() != null && auteursSaisisComboBox.getRawValue().length() > 0) {
260
					if (!ce.isNavKeyPress()) {
260
					if (!ce.isNavKeyPress()) {
261
						obtenirAuteursSaisis(auteursSaisisComboBox.getRawValue());
261
						obtenirAuteursSaisis(auteursSaisisComboBox.getRawValue());
262
					}
262
					}
263
				}
263
				}
264
			}
264
			}
265
		});
265
		});
266
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
266
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
267
			@Override
267
			@Override
268
			public void handleEvent(BaseEvent be) {
268
			public void handleEvent(BaseEvent be) {
269
				if (auteursSaisisComboBox.getValue() instanceof Personne) {
269
				if (auteursSaisisComboBox.getValue() instanceof Personne) {
270
					ajouterAuteurSaisiBouton.fireEvent(Events.Select);
270
					ajouterAuteurSaisiBouton.fireEvent(Events.Select);
271
				}
271
				}
272
			}
272
			}
273
		});
273
		});
274
		return comboBox;
274
		return comboBox;
275
	}
275
	}
276
	
276
	
277
	private Button creerBoutonAjouterAuteurSaisi() {
277
	private Button creerBoutonAjouterAuteurSaisi() {
278
		Button bouton = new Button(i18nC.ajouter());
278
		Button bouton = new Button(i18nC.ajouter());
279
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
279
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
280
			@Override  
280
			@Override  
281
			public void componentSelected(ButtonEvent ce) {  
281
			public void componentSelected(ButtonEvent ce) {  
282
				Personne auteurSaisiSelectionne = auteursSaisisComboBox.getValue();
282
				Personne auteurSaisiSelectionne = auteursSaisisComboBox.getValue();
283
				ajouterDansGrille(auteurSaisiSelectionne);
283
				ajouterDansGrille(auteurSaisiSelectionne);
284
				auteursSaisisComboBox.setValue(null);
284
				auteursSaisisComboBox.setValue(null);
285
			}  
285
			}  
286
		});
286
		});
287
		return bouton;
287
		return bouton;
288
	}
288
	}
289
	
289
	
290
	private void ajouterDansGrille(Personne auteur) {
290
	private void ajouterDansGrille(Personne auteur) {
291
		if (auteur != null) {
291
		if (auteur != null) {
292
			// Ajout de la personne ajoutée à la liste
292
			// Ajout de la personne ajoutée à la liste
293
			if (auteur.getId() != null && !auteur.getId().equals("")) {
293
			if (auteur.getId() != null && !auteur.getId().equals("")) {
294
				auteursAjoutes.put(auteur.getId(), auteur);
294
				auteursAjoutes.put(auteur.getId(), auteur);
295
			}
295
			}
296
			
296
			
297
			// Définition de l'état
297
			// Définition de l'état
298
			auteur.set("etat", ETAT_AJOUTE);
298
			auteur.set("etat", ETAT_AJOUTE);
299
			
299
			
300
			// Ajout à la grille
300
			// Ajout à la grille
301
			grille.getStore().insert(auteur, 0);			
301
			grille.getStore().insert(auteur, 0);
-
 
302
			grille.getSelectionModel().select(0, false);
302
		}
303
		}
303
	}
304
	}
304
	
305
	
305
	private void supprimerDansGrille(Personne auteur) {
306
	private void supprimerDansGrille(Personne auteur) {
306
		if (auteur != null) {
307
		if (auteur != null) {
307
			// Ajout de la personne supprimée à la liste
308
			// Ajout de la personne supprimée à la liste
308
			if ((auteur.get("etat") == null || !auteur.get("etat").equals(ETAT_AJOUTE)) && auteur.getId() != null && !auteur.getId().equals("")) {
309
			if ((auteur.get("etat") == null || !auteur.get("etat").equals(ETAT_AJOUTE)) && auteur.getId() != null && !auteur.getId().equals("")) {
309
				auteursSupprimes.put(auteur.getId(), auteur);
310
				auteursSupprimes.put(auteur.getId(), auteur);
310
			}
311
			}
311
			
312
			
312
			// Suppression de l'enregistrement de la grille
313
			// Suppression de l'enregistrement de la grille
313
			grille.getStore().remove(auteur);			
314
			grille.getStore().remove(auteur);			
314
		}
315
		}
315
	}
316
	}
316
 
317
 
317
	private Grid<Personne> creerGrille() {
318
	private Grid<Personne> creerGrille() {
318
		ListStore<Personne> storeGrille = new ListStore<Personne>();
319
		ListStore<Personne> storeGrille = new ListStore<Personne>();
319
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<Personne>>() {
320
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<Personne>>() {
320
			public void handleEvent(StoreEvent<Personne> ce) {
321
			public void handleEvent(StoreEvent<Personne> ce) {
321
				actualiserEtatBoutonsBarreOutils();
322
				actualiserEtatBoutonsBarreOutils();
322
			}
323
			}
323
		});
324
		});
324
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<Personne>>() {
325
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<Personne>>() {
325
			public void handleEvent(StoreEvent<Personne> ce) {
326
			public void handleEvent(StoreEvent<Personne> ce) {
326
				actualiserEtatBoutonsBarreOutils();
327
				actualiserEtatBoutonsBarreOutils();
327
			}
328
			}
328
		});
329
		});
329
		
330
		
330
		RowNumberer pluginLigneNumero = new RowNumberer();
331
		RowNumberer pluginLigneNumero = new RowNumberer();
331
				
332
				
332
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
333
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
333
		colonnes.add(pluginLigneNumero);
334
		colonnes.add(pluginLigneNumero);
334
		colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
335
		colonnes.add(new ColumnConfig("fmt_nom_complet", i18nC.personneNomComplet(), 150));
335
		colonnes.add(new ColumnConfig("nom", i18nC.personneNom(), 75));
336
		colonnes.add(new ColumnConfig("nom", i18nC.personneNom(), 75));
336
		colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75));
337
		colonnes.add(new ColumnConfig("prenom", i18nC.personnePrenom(), 75));
337
		colonnes.add(new ColumnConfig("prefixe", i18nC.personnePrefixe(), 50));
338
		colonnes.add(new ColumnConfig("prefixe", i18nC.personnePrefixe(), 50));
338
		//colonnes.add(new ColumnConfig("truk_nom_autre", i18nC.personneNomAutre(), 200));
339
		//colonnes.add(new ColumnConfig("truk_nom_autre", i18nC.personneNomAutre(), 200));
339
		colonnes.add(new ColumnConfig("naissance_date", i18nC.date(), 75));
340
		colonnes.add(new ColumnConfig("naissance_date", i18nC.date(), 75));
340
		colonnes.add(new ColumnConfig("naissance_lieu", i18nC.lieu(), 100));
341
		colonnes.add(new ColumnConfig("naissance_lieu", i18nC.lieu(), 100));
341
		colonnes.add(new ColumnConfig("ce_deces", i18nC.personneDecedeeInterogation(), 50));
342
		colonnes.add(new ColumnConfig("ce_deces", i18nC.personneDecedeeInterogation(), 50));
342
		colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75));
343
		colonnes.add(new ColumnConfig("deces_date", i18nC.date(), 75));
343
		colonnes.add(new ColumnConfig("deces_lieu", i18nC.lieu(), 100));
344
		colonnes.add(new ColumnConfig("deces_lieu", i18nC.lieu(), 100));
344
		
345
		
345
		GridSelectionModel<Personne> modeleDeSelection = new GridSelectionModel<Personne>();
346
		GridSelectionModel<Personne> modeleDeSelection = new GridSelectionModel<Personne>();
346
		
347
		
347
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
348
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
348
		modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
349
		modeleDeColonnes.addHeaderGroup(0, 1, new HeaderGroupConfig(i18nC.personneIdentite(), 1, 4));
349
		modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
350
		modeleDeColonnes.addHeaderGroup(0, 5, new HeaderGroupConfig(i18nC.personneNaissance(), 1, 2));
350
		modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
351
		modeleDeColonnes.addHeaderGroup(0, 7, new HeaderGroupConfig(i18nC.personneDeces(), 1, 3));
351
		
352
		
352
		Grid<Personne> grillePersonne = new Grid<Personne>(storeGrille, modeleDeColonnes);
353
		Grid<Personne> grillePersonne = new Grid<Personne>(storeGrille, modeleDeColonnes);
353
		grillePersonne.setHeight("100%");
354
		grillePersonne.setHeight("100%");
354
		grillePersonne.setBorders(true);
355
		grillePersonne.setBorders(true);
355
		grillePersonne.setSelectionModel(modeleDeSelection);
356
		grillePersonne.setSelectionModel(modeleDeSelection);
356
		grillePersonne.addPlugin(pluginLigneNumero);
357
		grillePersonne.addPlugin(pluginLigneNumero);
357
		grillePersonne.getView().setForceFit(true);
358
		grillePersonne.getView().setForceFit(true);
358
		grillePersonne.setAutoExpandColumn("fmt_nom_complet");
359
		grillePersonne.setAutoExpandColumn("fmt_nom_complet");
359
		grillePersonne.setStripeRows(true);
360
		grillePersonne.setStripeRows(true);
360
		grillePersonne.setTrackMouseOver(true);
361
		grillePersonne.setTrackMouseOver(true);
361
		
362
		
362
		return grillePersonne;
363
		return grillePersonne;
363
	}
364
	}
364
	
365
	
365
	public void actualiserEtatBoutonsBarreOutils() {
366
	public void actualiserEtatBoutonsBarreOutils() {
366
		// Activation des boutons si la grille contient un élément
367
		// Activation des boutons si la grille contient un élément
367
		if (grille.getStore().getCount() > 0) {  
368
		if (grille.getStore().getCount() > 0) {  
368
			auteursBoutonSupprimer.enable();
369
			auteursBoutonSupprimer.enable();
369
			auteursBoutonModifier.enable();
370
			auteursBoutonModifier.enable();
370
		}
371
		}
371
		// Désactivation des boutons si la grille ne contient plus d'élément
372
		// Désactivation des boutons si la grille ne contient plus d'élément
372
		if (grille.getStore().getCount() == 0) {  
373
		if (grille.getStore().getCount() == 0) {  
373
			auteursBoutonSupprimer.disable();
374
			auteursBoutonSupprimer.disable();
374
			auteursBoutonModifier.disable();
375
			auteursBoutonModifier.disable();
375
		}
376
		}
376
	}
377
	}
377
	
378
	
378
	public void rafraichir(Object nouvellesDonnees) {
379
	public void rafraichir(Object nouvellesDonnees) {
379
		if (nouvellesDonnees instanceof Information) {
380
		if (nouvellesDonnees instanceof Information) {
380
			Information info = (Information) nouvellesDonnees;
381
			Information info = (Information) nouvellesDonnees;
381
			rafraichirInformation(info);
382
			rafraichirInformation(info);
382
		} else if (nouvellesDonnees instanceof ValeurListe) {
383
		} else if (nouvellesDonnees instanceof ValeurListe) {
383
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
384
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
384
			rafraichirValeurListe(listeValeurs);
385
			rafraichirValeurListe(listeValeurs);
385
		} else {
386
		} else {
386
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
387
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
387
		}
388
		}
388
	}
389
	}
389
	
390
	
390
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
391
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
391
		if (listeValeurs.getId().equals(config.getListeId(""))) {
392
		if (listeValeurs.getId().equals(config.getListeId(""))) {
392
			Formulaire.rafraichirComboBox(listeValeurs, null, null);
393
			Formulaire.rafraichirComboBox(listeValeurs, null, null);
393
		} else {
394
		} else {
394
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
395
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
395
		}
396
		}
396
	}
397
	}
397
	
398
	
398
	public void rafraichirInformation(Information info) {
399
	public void rafraichirInformation(Information info) {
399
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
400
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
400
			GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
401
			GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
401
		}
402
		}
402
		String type = info.getType();
403
		String type = info.getType();
403
		if (type.equals("liste_personne")) {
404
		if (type.equals("liste_personne")) {
404
			if (info.getDonnee(0) != null) {
405
			if (info.getDonnee(0) != null) {
405
				PersonneListe personnes = (PersonneListe) info.getDonnee(0);
406
				PersonneListe personnes = (PersonneListe) info.getDonnee(0);
406
				List<Personne> liste = personnes.toList();
407
				List<Personne> liste = personnes.toList();
407
				
408
				
408
				auteursSaisisComboBox.getStore().removeAll();
409
				auteursSaisisComboBox.getStore().removeAll();
409
				auteursSaisisComboBox.getStore().add(liste);
410
				auteursSaisisComboBox.getStore().add(liste);
410
				auteursSaisisComboBox.expand();
411
				auteursSaisisComboBox.expand();
411
			}
412
			}
412
		} else if (type.equals("liste_collection_a_personne")) {
413
		} else if (type.equals("liste_collection_a_personne")) {
413
			if (info.getDonnee(0) != null) {
414
			if (info.getDonnee(0) != null) {
414
				initialiser();
415
				initialiser();
415
				// TODO : passer à la méthode peupler un objet CollectionAPersonneListe et modifier le type de auteurs
416
				// TODO : passer à la méthode peupler un objet CollectionAPersonneListe et modifier le type de auteurs
416
				//auteurs = (CollectionAPersonneListe) info.getDonnee(0);
417
				//auteurs = (CollectionAPersonneListe) info.getDonnee(0);
417
				peupler();
418
				peupler();
418
			}
419
			}
419
		}
420
		}
420
	}
421
	}
421
 
422
 
422
	private void peupler() {
423
	private void peupler() {
423
		layout();
424
		layout();
424
		Info.display(i18nC.chargementAuteur(), i18nC.ok());
425
		Info.display(i18nC.chargementAuteur(), i18nC.ok());
425
	}
426
	}
426
 
427
 
427
	private void obtenirAuteursSaisis(String nom) {
428
	private void obtenirAuteursSaisis(String nom) {
428
		mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); 
429
		mediateur.selectionnerPersonneParNomComplet(this, null, nom+"%"); 
429
	}
430
	}
430
}
431
}