Subversion Repositories eFlore/Applications.coel

Rev

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

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