Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 935 Rev 957
1
package org.tela_botanica.client.vues.collection;
1
package org.tela_botanica.client.vues.collection;
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.aDonnee;
10
import org.tela_botanica.client.modeles.aDonnee;
11
import org.tela_botanica.client.modeles.collection.Collection;
11
import org.tela_botanica.client.modeles.collection.Collection;
12
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
12
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
13
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe;
13
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe;
14
import org.tela_botanica.client.modeles.publication.Publication;
14
import org.tela_botanica.client.modeles.publication.Publication;
15
import org.tela_botanica.client.modeles.publication.PublicationListe;
15
import org.tela_botanica.client.modeles.publication.PublicationListe;
16
import org.tela_botanica.client.util.Debug;
16
import org.tela_botanica.client.util.Debug;
17
import org.tela_botanica.client.vues.FenetreForm;
17
import org.tela_botanica.client.vues.FenetreForm;
18
import org.tela_botanica.client.vues.Formulaire;
18
import org.tela_botanica.client.vues.Formulaire;
19
import org.tela_botanica.client.vues.FormulaireBarreValidation;
19
import org.tela_botanica.client.vues.FormulaireBarreValidation;
20
import org.tela_botanica.client.vues.FormulaireOnglet;
20
import org.tela_botanica.client.vues.FormulaireOnglet;
21
import org.tela_botanica.client.vues.publication.PublicationForm;
21
import org.tela_botanica.client.vues.publication.PublicationForm;
22
 
22
 
23
import com.extjs.gxt.ui.client.core.XTemplate;
23
import com.extjs.gxt.ui.client.core.XTemplate;
24
import com.extjs.gxt.ui.client.event.BaseEvent;
24
import com.extjs.gxt.ui.client.event.BaseEvent;
25
import com.extjs.gxt.ui.client.event.ButtonEvent;
25
import com.extjs.gxt.ui.client.event.ButtonEvent;
26
import com.extjs.gxt.ui.client.event.ComponentEvent;
26
import com.extjs.gxt.ui.client.event.ComponentEvent;
27
import com.extjs.gxt.ui.client.event.Events;
27
import com.extjs.gxt.ui.client.event.Events;
28
import com.extjs.gxt.ui.client.event.KeyListener;
28
import com.extjs.gxt.ui.client.event.KeyListener;
29
import com.extjs.gxt.ui.client.event.Listener;
29
import com.extjs.gxt.ui.client.event.Listener;
30
import com.extjs.gxt.ui.client.event.SelectionListener;
30
import com.extjs.gxt.ui.client.event.SelectionListener;
31
import com.extjs.gxt.ui.client.store.ListStore;
31
import com.extjs.gxt.ui.client.store.ListStore;
32
import com.extjs.gxt.ui.client.store.Store;
32
import com.extjs.gxt.ui.client.store.Store;
33
import com.extjs.gxt.ui.client.store.StoreEvent;
33
import com.extjs.gxt.ui.client.store.StoreEvent;
34
import com.extjs.gxt.ui.client.widget.ContentPanel;
34
import com.extjs.gxt.ui.client.widget.ContentPanel;
35
import com.extjs.gxt.ui.client.widget.Info;
35
import com.extjs.gxt.ui.client.widget.Info;
36
import com.extjs.gxt.ui.client.widget.Text;
36
import com.extjs.gxt.ui.client.widget.Text;
37
import com.extjs.gxt.ui.client.widget.button.Button;
37
import com.extjs.gxt.ui.client.widget.button.Button;
38
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
38
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
39
import com.extjs.gxt.ui.client.widget.form.ComboBox;
39
import com.extjs.gxt.ui.client.widget.form.ComboBox;
40
import com.extjs.gxt.ui.client.widget.form.FormPanel;
40
import com.extjs.gxt.ui.client.widget.form.FormPanel;
41
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
41
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
42
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
42
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
43
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
43
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
44
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
44
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
45
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
45
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
46
import com.extjs.gxt.ui.client.widget.grid.Grid;
46
import com.extjs.gxt.ui.client.widget.grid.Grid;
47
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
47
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
48
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
48
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
49
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
49
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
50
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
50
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
51
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
51
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
52
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
52
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
53
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
53
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
54
import com.google.gwt.core.client.GWT;
54
import com.google.gwt.core.client.GWT;
55
 
55
 
56
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
56
public class CollectionFormPublication extends FormulaireOnglet implements Rafraichissable {
57
	
57
	
58
	private Collection collection = null;
58
	private Collection collection = null;
59
	private static int idGenere = 1;
59
	private static int idGenere = 1;
60
	
60
	
61
	private ContentPanel panneauPrincipal = null;
61
	private ContentPanel panneauPrincipal = null;
62
	private ToolBar barreOutils = null;
62
	private ToolBar barreOutils = null;
63
	private EditorGrid<CollectionAPublication> grille;
63
	private EditorGrid<CollectionAPublication> grille;
64
	
64
	
65
	private CollectionAPublicationListe publicationsAjoutees = null;
65
	private CollectionAPublicationListe publicationsAjoutees = null;
66
	private CollectionAPublicationListe publicationsSupprimees = null;
66
	private CollectionAPublicationListe publicationsSupprimees = null;
67
	private ComboBox<Publication> publicationsSaisiesComboBox = null;
67
	private ComboBox<Publication> publicationsSaisiesComboBox = null;
68
	private Button publicationsBoutonSupprimer = null;
68
	private Button publicationsBoutonSupprimer = null;
69
	private Button publicationsBoutonModifier = null;
69
	private Button publicationsBoutonModifier = null;
70
	
70
	
71
	private FenetreForm fenetreFormulaire = null;
71
	private FenetreForm fenetreFormulaire = null;
72
	
72
	
73
	public CollectionFormPublication(Formulaire formulaireCourrant) {
73
	public CollectionFormPublication(Formulaire formulaireCourrant) {
74
		initialiserOnglet(formulaireCourrant);
74
		initialiserOnglet(formulaireCourrant);
75
		setId("publication");
75
		setId("publication");
76
		setText(Mediateur.i18nC.collectionPublication());
76
		setText(Mediateur.i18nC.collectionPublication());
77
		setStyleAttribute("padding", "0");
77
		setStyleAttribute("padding", "0");
78
		
78
		
79
		panneauPrincipal = creerPanneauContenantGrille();
79
		panneauPrincipal = creerPanneauContenantGrille();
80
		barreOutils = creerBarreOutilsGrille();
80
		barreOutils = creerBarreOutilsGrille();
81
		panneauPrincipal.setTopComponent(barreOutils);
81
		panneauPrincipal.setTopComponent(barreOutils);
82
		grille = creerGrille();
82
		grille = creerGrille();
83
  		panneauPrincipal.add(grille);
83
  		panneauPrincipal.add(grille);
84
		add(panneauPrincipal);
84
		add(panneauPrincipal);
85
		
85
		
86
		initialiser();
86
		initialiser();
87
	}
87
	}
88
	
88
	
89
	private void initialiser() {
89
	private void initialiser() {
90
		// Remise à zéro des modification dans la liste des auteurs
90
		// Remise à zéro des modification dans la liste des auteurs
91
		idGenere = 1;
91
		idGenere = 1;
92
		publicationsAjoutees = new CollectionAPublicationListe();
92
		publicationsAjoutees = new CollectionAPublicationListe();
93
		publicationsSupprimees = new CollectionAPublicationListe();
93
		publicationsSupprimees = new CollectionAPublicationListe();
94
		
94
		
95
		// Actualisation de l'état des boutons de la barre d'outils
95
		// Actualisation de l'état des boutons de la barre d'outils
96
		actualiserEtatBoutonsBarreOutils();
96
		actualiserEtatBoutonsBarreOutils();
97
		
97
		
98
		collection = ((CollectionForm) formulaire).collection;
98
		collection = ((CollectionForm) formulaire).collection;
99
	}
99
	}
100
	
100
	
101
	private ContentPanel creerPanneauContenantGrille() {
101
	private ContentPanel creerPanneauContenantGrille() {
102
		ContentPanel panneau = new ContentPanel();
102
		ContentPanel panneau = new ContentPanel();
103
		
103
		
104
		panneau.setHeading(i18nC.collectionPublicationTitre());
104
		panneau.setHeading(i18nC.collectionPublicationTitre());
105
		panneau.setIcon(Images.ICONES.table());
105
		panneau.setIcon(Images.ICONES.table());
106
		panneau.setLayout(new FitLayout());
106
		panneau.setLayout(new FitLayout());
107
		panneau.setFrame(true);
107
		panneau.setFrame(true);
108
		
108
		
109
		return panneau;
109
		return panneau;
110
	}
110
	}
111
 
111
 
112
	private ToolBar creerBarreOutilsGrille() {
112
	private ToolBar creerBarreOutilsGrille() {
113
		ToolBar barreOutils = new ToolBar();  
113
		ToolBar barreOutils = new ToolBar();  
114
		
114
		
115
		Button ajouterBouton = creerBoutonAjouter();
115
		Button ajouterBouton = creerBoutonAjouter();
116
		barreOutils.add(ajouterBouton);
116
		barreOutils.add(ajouterBouton);
117
		
117
		
118
		barreOutils.add(new Text(" ou "));
118
		barreOutils.add(new Text(" ou "));
119
		
119
		
120
		publicationsSaisiesComboBox = creerComboBoxPublicationsSaisis();
120
		publicationsSaisiesComboBox = creerComboBoxPublicationsSaisis();
121
		barreOutils.add(publicationsSaisiesComboBox);
121
		barreOutils.add(publicationsSaisiesComboBox);
122
		
122
		
123
		barreOutils.add(new SeparatorToolItem());
123
		barreOutils.add(new SeparatorToolItem());
124
		
124
		
125
		publicationsBoutonModifier = creerBoutonModifier();
125
		publicationsBoutonModifier = creerBoutonModifier();
126
		barreOutils.add(publicationsBoutonModifier);
126
		barreOutils.add(publicationsBoutonModifier);
127
		
127
		
128
		barreOutils.add(new SeparatorToolItem());
128
		barreOutils.add(new SeparatorToolItem());
129
		
129
		
130
		publicationsBoutonSupprimer = creerBoutonSupprimer();
130
		publicationsBoutonSupprimer = creerBoutonSupprimer();
131
		barreOutils.add(publicationsBoutonSupprimer);		
131
		barreOutils.add(publicationsBoutonSupprimer);		
132
		
132
		
133
		barreOutils.add(new SeparatorToolItem());
133
		barreOutils.add(new SeparatorToolItem());
134
		
134
		
135
		Button rafraichirBouton = creerBoutonRafraichir();
135
		Button rafraichirBouton = creerBoutonRafraichir();
136
		barreOutils.add(rafraichirBouton);
136
		barreOutils.add(rafraichirBouton);
137
		
137
		
138
		return barreOutils;
138
		return barreOutils;
139
	}
139
	}
140
 
140
 
141
	private Button creerBoutonAjouter() {
141
	private Button creerBoutonAjouter() {
142
		Button bouton = new Button(i18nC.ajouter());
142
		Button bouton = new Button(i18nC.ajouter());
143
		bouton.setIcon(Images.ICONES.vcardAjouter());
143
		bouton.setIcon(Images.ICONES.vcardAjouter());
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
				fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER);
147
				fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_AJOUTER);
148
				fenetreFormulaire.show();
148
				fenetreFormulaire.show();
149
			}  
149
			}  
150
		});
150
		});
151
		return bouton;
151
		return bouton;
152
	}
152
	}
153
	
153
	
154
	private Button creerBoutonModifier() {
154
	private Button creerBoutonModifier() {
155
		Button bouton = new Button(i18nC.modifier());
155
		Button bouton = new Button(i18nC.modifier());
156
		bouton.setIcon(Images.ICONES.vcardModifier());
156
		bouton.setIcon(Images.ICONES.vcardModifier());
157
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
157
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
158
			@Override  
158
			@Override  
159
			public void componentSelected(ButtonEvent ce) {  
159
			public void componentSelected(ButtonEvent ce) {  
160
				CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
160
				CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
161
				
161
				
162
				if (publicationSaisieSelectionnee == null) {
162
				if (publicationSaisieSelectionnee == null) {
163
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
163
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
164
				} else {
164
				} else {
165
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
165
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(Formulaire.MODE_MODIFIER);
166
					fenetreFormulaire.show();
166
					fenetreFormulaire.show();
167
				}
167
				}
168
			}  
168
			}  
169
		});
169
		});
170
		return bouton;
170
		return bouton;
171
	}
171
	}
172
	
172
	
173
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
173
	private FenetreForm creerFenetreModaleAvecFormulairePersonne(String mode) {
174
		String publicationId = null;
174
		String publicationId = null;
175
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
175
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
176
			CollectionAPublication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
176
			CollectionAPublication publicationSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
177
			publicationId = publicationSaisiSelectionne.getIdPublication();
177
			publicationId = publicationSaisiSelectionne.getIdPublication();
178
		}
178
		}
179
		
179
		
180
		final FenetreForm fenetre = new FenetreForm("");
180
		final FenetreForm fenetre = new FenetreForm("");
181
		final PublicationForm formulaire = creerFormulairePublication(fenetre, publicationId);
181
		final PublicationForm formulaire = creerFormulairePublication(fenetre, publicationId);
182
		fenetre.add(formulaire);
182
		fenetre.add(formulaire);
183
		return fenetre;
183
		return fenetre;
184
	}
184
	}
185
	
185
	
186
	private PublicationForm creerFormulairePublication(final FenetreForm fenetre, final String publicationId) {
186
	private PublicationForm creerFormulairePublication(final FenetreForm fenetre, final String publicationId) {
187
		PublicationForm formulairePublication = new PublicationForm(mediateur, publicationId, this);
187
		PublicationForm formulairePublication = new PublicationForm(mediateur, publicationId, this);
188
		FormPanel panneauFormulaire = formulairePublication.getFormulaire();
188
		FormPanel panneauFormulaire = formulairePublication.getFormulaire();
189
		fenetre.setHeading(panneauFormulaire.getHeading());
189
		fenetre.setHeading(panneauFormulaire.getHeading());
190
		panneauFormulaire.setHeaderVisible(false);
190
		panneauFormulaire.setHeaderVisible(false);
191
		panneauFormulaire.setTopComponent(null);
191
		panneauFormulaire.setTopComponent(null);
192
 
192
		
193
		// TODO : gérer la barre d'outil avec des évènements spécifique au contexte de fenêtre modale
193
		// FIXME : avec GXT-2.1.0 la redéfinition du bottom component ne marche plus. Nous le cachons et en créeons un dans la fenêtre.
-
 
194
		panneauFormulaire.getBottomComponent().hide();
194
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePublication(fenetre, formulairePublication);
195
		SelectionListener<ButtonEvent> ecouteur = creerEcouteurValidationFormulairePublication(fenetre, formulairePublication);
195
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
196
		final ButtonBar barreValidation = new FormulaireBarreValidation(ecouteur);
196
		panneauFormulaire.setBottomComponent(barreValidation);
197
		fenetre.setBottomComponent(barreValidation);
197
		
198
		
198
		return formulairePublication;
199
		return formulairePublication;
199
	}
200
	}
200
	
201
	
201
	private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePublication(final FenetreForm fenetre, final PublicationForm formulaire) {
202
	private SelectionListener<ButtonEvent> creerEcouteurValidationFormulairePublication(final FenetreForm fenetre, final PublicationForm formulaire) {
202
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
203
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
203
			@Override
204
			@Override
204
			public void componentSelected(ButtonEvent ce) {
205
			public void componentSelected(ButtonEvent ce) {
205
				String code = ((Button) ce.getComponent()).getData("code");
206
				String code = ((Button) ce.getComponent()).getData("code");
206
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
207
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
207
					if (formulaire.soumettreFormulaire()) {
208
					if (formulaire.soumettreFormulaire()) {
208
						fenetre.hide();
209
						fenetre.hide();
209
					}
210
					}
210
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
211
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
211
					formulaire.soumettreFormulaire();
212
					formulaire.soumettreFormulaire();
212
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
213
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
213
					fenetre.hide();
214
					fenetre.hide();
214
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
215
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
215
					fenetreFormulaire.hide();
216
					fenetreFormulaire.hide();
216
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(formulaire.mode);
217
					fenetreFormulaire = creerFenetreModaleAvecFormulairePersonne(formulaire.mode);
217
					fenetreFormulaire.show();
218
					fenetreFormulaire.show();
218
				}
219
				}
219
			}
220
			}
220
		};
221
		};
221
		
222
		
222
		return ecouteur;
223
		return ecouteur;
223
	}
224
	}
224
	
225
	
225
	private Button creerBoutonSupprimer() {
226
	private Button creerBoutonSupprimer() {
226
		Button bouton = new Button(i18nC.supprimer());
227
		Button bouton = new Button(i18nC.supprimer());
227
		bouton.setIcon(Images.ICONES.vcardSupprimer());
228
		bouton.setIcon(Images.ICONES.vcardSupprimer());
228
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
229
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
229
			@Override
230
			@Override
230
			public void componentSelected(ButtonEvent ce) {
231
			public void componentSelected(ButtonEvent ce) {
231
				CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
232
				CollectionAPublication publicationSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
232
				if (publicationSaisieSelectionnee == null) {
233
				if (publicationSaisieSelectionnee == null) {
233
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
234
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerPublication());
234
				} else {
235
				} else {
235
					supprimerDansGrille(publicationSaisieSelectionnee);
236
					supprimerDansGrille(publicationSaisieSelectionnee);
236
				}
237
				}
237
			}   
238
			}   
238
		});
239
		});
239
		return bouton;
240
		return bouton;
240
	}
241
	}
241
	
242
	
242
	private Button creerBoutonRafraichir() {
243
	private Button creerBoutonRafraichir() {
243
		Button bouton = new Button(i18nC.rafraichir());
244
		Button bouton = new Button(i18nC.rafraichir());
244
		bouton.setIcon(Images.ICONES.rafraichir());
245
		bouton.setIcon(Images.ICONES.rafraichir());
245
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
246
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
246
			@Override
247
			@Override
247
			public void componentSelected(ButtonEvent ce) {
248
			public void componentSelected(ButtonEvent ce) {
248
				actualiserGrille();
249
				actualiserGrille();
249
			}   
250
			}   
250
		});
251
		});
251
		return bouton;
252
		return bouton;
252
	}
253
	}
253
	
254
	
254
	private void actualiserGrille() {
255
	private void actualiserGrille() {
255
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
256
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
256
			mediateur.selectionnerCollectionAPublication(this, collection.getId());
257
			mediateur.selectionnerCollectionAPublication(this, collection.getId());
257
		} else {
258
		} else {
258
			grille.getStore().removeAll();
259
			grille.getStore().removeAll();
259
			layout();
260
			layout();
260
		}
261
		}
261
	}
262
	}
262
	
263
	
263
	private ComboBox<Publication> creerComboBoxPublicationsSaisis() {
264
	private ComboBox<Publication> creerComboBoxPublicationsSaisis() {
264
		ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>();
265
		ListStore<Publication> publicationsSaisiesStore = new ListStore<Publication>();
265
		
266
		
266
		ComboBox<Publication> comboBox = new ComboBox<Publication>();
267
		ComboBox<Publication> comboBox = new ComboBox<Publication>();
267
		comboBox.setWidth(400);
268
		comboBox.setWidth(400);
268
		comboBox.setEmptyText(i18nC.chercherPublicationSaisi());
269
		comboBox.setEmptyText(i18nC.chercherPublicationSaisi());
269
		comboBox.setTriggerAction(TriggerAction.ALL);  
270
		comboBox.setTriggerAction(TriggerAction.ALL);  
270
		comboBox.setEditable(true);
271
		comboBox.setEditable(true);
271
		comboBox.setDisplayField("fmt_nom_complet");
272
		comboBox.setDisplayField("fmt_nom_complet");
272
		comboBox.setStore(publicationsSaisiesStore);
273
		comboBox.setStore(publicationsSaisiesStore);
273
		comboBox.addKeyListener(new KeyListener() {
274
		comboBox.addKeyListener(new KeyListener() {
274
			public void componentKeyUp(ComponentEvent ce) {
275
			public void componentKeyUp(ComponentEvent ce) {
275
				if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) {
276
				if (publicationsSaisiesComboBox.getRawValue() != null && publicationsSaisiesComboBox.getRawValue().length() > 0) {
276
					if (!ce.isNavKeyPress()) {
277
					if (!ce.isNavKeyPress()) {
277
						obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue());
278
						obtenirPublicationsSaisies(publicationsSaisiesComboBox.getRawValue());
278
					}
279
					}
279
				}
280
				}
280
			}
281
			}
281
		});
282
		});
282
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
283
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
283
			@Override
284
			@Override
284
			public void handleEvent(BaseEvent be) {
285
			public void handleEvent(BaseEvent be) {
285
				if (publicationsSaisiesComboBox.getValue() instanceof Publication) {
286
				if (publicationsSaisiesComboBox.getValue() instanceof Publication) {
286
					Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue();
287
					Publication publicationSaisieSelectionne = publicationsSaisiesComboBox.getValue();
287
					ajouterDansGrille(publicationSaisieSelectionne);
288
					ajouterDansGrille(publicationSaisieSelectionne);
288
					publicationsSaisiesComboBox.setValue(null);
289
					publicationsSaisiesComboBox.setValue(null);
289
				}
290
				}
290
			}
291
			}
291
		});
292
		});
292
		return comboBox;
293
		return comboBox;
293
	}
294
	}
294
	
295
	
295
	private void ajouterDansGrille(Publication publication) {
296
	private void ajouterDansGrille(Publication publication) {
296
		ajouterDansGrille(publication, 0);
297
		ajouterDansGrille(publication, 0);
297
	}
298
	}
298
	
299
	
299
	private void ajouterDansGrille(Publication publication, int index) {
300
	private void ajouterDansGrille(Publication publication, int index) {
300
		if (publication != null) {
301
		if (publication != null) {
301
			CollectionAPublication publicationLiee = new CollectionAPublication();
302
			CollectionAPublication publicationLiee = new CollectionAPublication();
302
			publicationLiee.setPublication(publication);
303
			publicationLiee.setPublication(publication);
303
			publicationLiee.setIdPublication(publication.getId());
304
			publicationLiee.setIdPublication(publication.getId());
304
			// Gestion de l'id de la collection
305
			// Gestion de l'id de la collection
305
			if (mode.equals(Formulaire.MODE_MODIFIER)) {
306
			if (mode.equals(Formulaire.MODE_MODIFIER)) {
306
				publicationLiee.setIdCollection(collection.getId());
307
				publicationLiee.setIdCollection(collection.getId());
307
			}
308
			}
308
			publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
309
			publicationLiee.set("_etat_", aDonnee.ETAT_AJOUTE);
309
			
310
			
310
			// Ajout à la grille
311
			// Ajout à la grille
311
			grille.stopEditing();
312
			grille.stopEditing();
312
			grille.getStore().insert(publicationLiee, 0);
313
			grille.getStore().insert(publicationLiee, 0);
313
			grille.startEditing(index, 0);
314
			grille.startEditing(index, 0);
314
			grille.getSelectionModel().select(index, false);
315
			grille.getSelectionModel().select(index, false);
315
		}
316
		}
316
	}
317
	}
317
	
318
	
318
	private void supprimerDansGrille(CollectionAPublication publicationLiee) {
319
	private void supprimerDansGrille(CollectionAPublication publicationLiee) {
319
		if (publicationLiee != null) {
320
		if (publicationLiee != null) {
320
			// Ajout de la personne supprimée à la liste
321
			// Ajout de la personne supprimée à la liste
321
			if ((publicationLiee.get("_etat_").equals("") || !publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) 
322
			if ((publicationLiee.get("_etat_").equals("") || !publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) 
322
					&& publicationLiee.getId() != null 
323
					&& publicationLiee.getId() != null 
323
					&& !publicationLiee.getId().equals("")) {
324
					&& !publicationLiee.getId().equals("")) {
324
				Debug.log("Nbre publications supprimées avant:"+publicationsSupprimees.size());
325
				Debug.log("Nbre publications supprimées avant:"+publicationsSupprimees.size());
325
				publicationsSupprimees.put("id"+idGenere++, publicationLiee);
326
				publicationsSupprimees.put("id"+idGenere++, publicationLiee);
326
				GWT.log("Publications supprimée : "+publicationLiee.getPublication().getId()+" "+publicationLiee.getPublication().getNomComplet(), null);
327
				GWT.log("Publications supprimée : "+publicationLiee.getPublication().getId()+" "+publicationLiee.getPublication().getNomComplet(), null);
327
				Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());
328
				Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());
328
			}
329
			}
329
			
330
			
330
			// Suppression de l'enregistrement de la grille
331
			// Suppression de l'enregistrement de la grille
331
			grille.getStore().remove(publicationLiee);
332
			grille.getStore().remove(publicationLiee);
332
		}
333
		}
333
	}
334
	}
334
 
335
 
335
	private EditorGrid<CollectionAPublication> creerGrille() {
336
	private EditorGrid<CollectionAPublication> creerGrille() {
336
		ListStore<CollectionAPublication> storeGrille = new ListStore<CollectionAPublication>();
337
		ListStore<CollectionAPublication> storeGrille = new ListStore<CollectionAPublication>();
337
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPublication>>() {
338
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionAPublication>>() {
338
			public void handleEvent(StoreEvent<CollectionAPublication> ce) {
339
			public void handleEvent(StoreEvent<CollectionAPublication> ce) {
339
				actualiserEtatBoutonsBarreOutils();
340
				actualiserEtatBoutonsBarreOutils();
340
			}
341
			}
341
		});
342
		});
342
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPublication>>() {
343
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionAPublication>>() {
343
			public void handleEvent(StoreEvent<CollectionAPublication> ce) {
344
			public void handleEvent(StoreEvent<CollectionAPublication> ce) {
344
				actualiserEtatBoutonsBarreOutils();
345
				actualiserEtatBoutonsBarreOutils();
345
			}
346
			}
346
		});
347
		});
347
		
348
		
348
		RowNumberer numeroPlugin = new RowNumberer();
349
		RowNumberer numeroPlugin = new RowNumberer();
349
		numeroPlugin.setHeader("#");
350
		numeroPlugin.setHeader("#");
350
		
351
		
351
		XTemplate infoTpl = XTemplate.create("<p>"+
352
		XTemplate infoTpl = XTemplate.create("<p>"+
352
			"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
353
			"<span style='font-weight:bold;'>"+i18nC.publicationAuteurs()+" :</span> {fmt_auteur}<br />"+
353
			"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
354
			"<span style='font-weight:bold;'>"+i18nC.publicationTitre()+" :</span> {titre}<br />"+
354
			"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
355
			"<span style='font-weight:bold;'>"+i18nC.publicationRevueCollection()+" :</span> {collection}<br />"+
355
			"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
356
			"<span style='font-weight:bold;'>"+i18nC.publicationEditeur()+" :</span> {_editeur_}"+
356
			"</p>");  
357
			"</p>");  
357
		RowExpander expansionPlugin = new RowExpander();  
358
		RowExpander expansionPlugin = new RowExpander();  
358
		expansionPlugin.setTemplate(infoTpl);
359
		expansionPlugin.setTemplate(infoTpl);
359
		
360
		
360
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
361
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
361
		colonnes.add(expansionPlugin);
362
		colonnes.add(expansionPlugin);
362
		colonnes.add(numeroPlugin);
363
		colonnes.add(numeroPlugin);
363
		colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
364
		colonnes.add(new ColumnConfig("fmt_auteur", i18nC.publicationAuteurs(), 150));
364
		colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
365
		colonnes.add(new ColumnConfig("titre", i18nC.publicationTitre(), 150));
365
		colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
366
		colonnes.add(new ColumnConfig("collection", i18nC.publicationRevueCollection(), 75));
366
		colonnes.add(creerColonneEditeur());
367
		colonnes.add(creerColonneEditeur());
367
		colonnes.add(creerColonneAnneePublication());
368
		colonnes.add(creerColonneAnneePublication());
368
		colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
369
		colonnes.add(new ColumnConfig("indication_nvt", i18nC.publicationNvt(), 75));
369
		colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
370
		colonnes.add(new ColumnConfig("fascicule", i18nC.publicationFascicule(), 75));
370
		colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
371
		colonnes.add(new ColumnConfig("truk_pages", i18nC.publicationPage(), 50));
371
		
372
		
372
		GridSelectionModel<CollectionAPublication> modeleDeSelection = new GridSelectionModel<CollectionAPublication>();
373
		GridSelectionModel<CollectionAPublication> modeleDeSelection = new GridSelectionModel<CollectionAPublication>();
373
		
374
		
374
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
375
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
375
		modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
376
		modeleDeColonnes.getColumn(0).setWidget(Images.ICONES.information().createImage(), "Info");
376
		
377
		
377
		EditorGrid<CollectionAPublication> grillePublications = new EditorGrid<CollectionAPublication>(storeGrille, modeleDeColonnes);
378
		EditorGrid<CollectionAPublication> grillePublications = new EditorGrid<CollectionAPublication>(storeGrille, modeleDeColonnes);
378
		grillePublications.setHeight("100%");
379
		grillePublications.setHeight("100%");
379
		grillePublications.setBorders(true);
380
		grillePublications.setBorders(true);
380
		grillePublications.setSelectionModel(modeleDeSelection);
381
		grillePublications.setSelectionModel(modeleDeSelection);
381
		grillePublications.addPlugin(expansionPlugin);
382
		grillePublications.addPlugin(expansionPlugin);
382
		grillePublications.addPlugin(numeroPlugin);
383
		grillePublications.addPlugin(numeroPlugin);
383
		grillePublications.getView().setForceFit(true);
384
		grillePublications.getView().setForceFit(true);
384
		grillePublications.setAutoExpandColumn("titre");
385
		grillePublications.setAutoExpandColumn("titre");
385
		grillePublications.setStripeRows(true);
386
		grillePublications.setStripeRows(true);
386
		grillePublications.setTrackMouseOver(true);
387
		grillePublications.setTrackMouseOver(true);
387
		
388
		
388
		return grillePublications;
389
		return grillePublications;
389
	}
390
	}
390
	
391
	
391
	private ColumnConfig creerColonneEditeur() {
392
	private ColumnConfig creerColonneEditeur() {
392
		GridCellRenderer<CollectionAPublication> editeurRendu = new GridCellRenderer<CollectionAPublication>() {
393
		GridCellRenderer<CollectionAPublication> editeurRendu = new GridCellRenderer<CollectionAPublication>() {
393
			@Override
394
			@Override
394
			public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
395
			public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
395
				String editeur = model.getPublication().getNomEditeur();
396
				String editeur = model.getPublication().getNomEditeur();
396
				model.set("_editeur_", editeur);
397
				model.set("_editeur_", editeur);
397
				return editeur;
398
				return editeur;
398
			}
399
			}
399
		};
400
		};
400
		ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135);
401
		ColumnConfig editeurColonne = new ColumnConfig("_editeur_", Mediateur.i18nC.publicationEditeur(), 135);
401
		editeurColonne.setRenderer(editeurRendu);
402
		editeurColonne.setRenderer(editeurRendu);
402
		return editeurColonne;
403
		return editeurColonne;
403
	}
404
	}
404
	
405
	
405
	private ColumnConfig creerColonneAnneePublication() {
406
	private ColumnConfig creerColonneAnneePublication() {
406
		GridCellRenderer<CollectionAPublication> datePublicationRendu = new GridCellRenderer<CollectionAPublication>() {
407
		GridCellRenderer<CollectionAPublication> datePublicationRendu = new GridCellRenderer<CollectionAPublication>() {
407
			@Override
408
			@Override
408
			public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
409
			public String render(CollectionAPublication model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionAPublication> store, Grid<CollectionAPublication> grid) {
409
				String annee = model.getPublication().getAnneeParution();
410
				String annee = model.getPublication().getAnneeParution();
410
				model.set("_annee_", annee);
411
				model.set("_annee_", annee);
411
				return annee;
412
				return annee;
412
			}
413
			}
413
		};
414
		};
414
		ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75);
415
		ColumnConfig datePublicationColonne = new ColumnConfig("_annee_", Mediateur.i18nC.publicationDateParution(), 75);
415
		datePublicationColonne.setRenderer(datePublicationRendu);
416
		datePublicationColonne.setRenderer(datePublicationRendu);
416
		return datePublicationColonne;
417
		return datePublicationColonne;
417
	}
418
	}
418
 
419
 
419
	public void actualiserEtatBoutonsBarreOutils() {
420
	public void actualiserEtatBoutonsBarreOutils() {
420
		// Activation des boutons si la grille contient un élément
421
		// Activation des boutons si la grille contient un élément
421
		if (grille.getStore().getCount() > 0) {  
422
		if (grille.getStore().getCount() > 0) {  
422
			publicationsBoutonSupprimer.enable();
423
			publicationsBoutonSupprimer.enable();
423
			publicationsBoutonModifier.enable();
424
			publicationsBoutonModifier.enable();
424
		}
425
		}
425
		// Désactivation des boutons si la grille ne contient plus d'élément
426
		// Désactivation des boutons si la grille ne contient plus d'élément
426
		if (grille.getStore().getCount() == 0) {  
427
		if (grille.getStore().getCount() == 0) {  
427
			publicationsBoutonSupprimer.disable();
428
			publicationsBoutonSupprimer.disable();
428
			publicationsBoutonModifier.disable();
429
			publicationsBoutonModifier.disable();
429
		}
430
		}
430
	}
431
	}
431
	
432
	
432
	public void rafraichir(Object nouvellesDonnees) {
433
	public void rafraichir(Object nouvellesDonnees) {
433
		if (nouvellesDonnees instanceof Information) {
434
		if (nouvellesDonnees instanceof Information) {
434
			Information info = (Information) nouvellesDonnees;
435
			Information info = (Information) nouvellesDonnees;
435
			rafraichirInformation(info);
436
			rafraichirInformation(info);
436
		} else if (nouvellesDonnees instanceof PublicationListe) {
437
		} else if (nouvellesDonnees instanceof PublicationListe) {
437
			PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
438
			PublicationListe listePublications = (PublicationListe) nouvellesDonnees;
438
			rafraichirPublicationListe(listePublications);
439
			rafraichirPublicationListe(listePublications);
439
		} else {
440
		} else {
440
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
441
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
441
		}
442
		}
442
	}
443
	}
443
		
444
		
444
	private void rafraichirPublicationListe(PublicationListe listePublications) {
445
	private void rafraichirPublicationListe(PublicationListe listePublications) {
445
		publicationsSaisiesComboBox.getStore().removeAll();
446
		publicationsSaisiesComboBox.getStore().removeAll();
446
		publicationsSaisiesComboBox.getStore().add(listePublications.toList());
447
		publicationsSaisiesComboBox.getStore().add(listePublications.toList());
447
		publicationsSaisiesComboBox.expand();
448
		publicationsSaisiesComboBox.expand();
448
	}
449
	}
449
	
450
	
450
	public void rafraichirInformation(Information info) {
451
	public void rafraichirInformation(Information info) {
451
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
452
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
452
			GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
453
			GWT.log("MESSAGES:\n"+info.getMessages().toString(), null);
453
		}
454
		}
454
		String type = info.getType();
455
		String type = info.getType();
455
		if (type.equals("liste_collection_a_publication")) {
456
		if (type.equals("liste_collection_a_publication")) {
456
			if (info.getDonnee(0) != null) {
457
			if (info.getDonnee(0) != null) {
457
				initialiser();
458
				initialiser();
458
				collection.setPublicationsLiees((CollectionAPublicationListe) info.getDonnee(0));
459
				collection.setPublicationsLiees((CollectionAPublicationListe) info.getDonnee(0));
459
				peupler();
460
				peupler();
460
			}
461
			}
461
		} else if (type.equals("publication_modifiee")) {
462
		} else if (type.equals("publication_modifiee")) {
462
			if (info.getDonnee(0) != null) {
463
			if (info.getDonnee(0) != null) {
463
				Publication publication = (Publication) info.getDonnee(0);
464
				Publication publication = (Publication) info.getDonnee(0);
464
				CollectionAPublication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
465
				CollectionAPublication publicationDansGrille = grille.getStore().findModel("id_publication", publication.getId());
465
				int index = grille.getStore().indexOf(publicationDansGrille);
466
				int index = grille.getStore().indexOf(publicationDansGrille);
466
				grille.getStore().remove(publicationDansGrille);
467
				grille.getStore().remove(publicationDansGrille);
467
				ajouterDansGrille(publication, index);
468
				ajouterDansGrille(publication, index);
468
			}
469
			}
469
		} else if (type.equals("publication_ajoutee")) {
470
		} else if (type.equals("publication_ajoutee")) {
470
			if (info.getDonnee(0) != null) {
471
			if (info.getDonnee(0) != null) {
471
				Publication publication = (Publication) info.getDonnee(0);
472
				Publication publication = (Publication) info.getDonnee(0);
472
				ajouterDansGrille(publication);
473
				ajouterDansGrille(publication);
473
			}
474
			}
474
		} else if (type.equals("suppression_collection_a_publication")) {
475
		} else if (type.equals("suppression_collection_a_publication")) {
475
			Info.display("Suppression des publications liées à la collection", info.toString());
476
			Info.display("Suppression des publications liées à la collection", info.toString());
476
		} else if (type.equals("ajout_collection_a_publication")) {
477
		} else if (type.equals("ajout_collection_a_publication")) {
477
			Info.display("Ajout des publications liées à la collection", info.toString());
478
			Info.display("Ajout des publications liées à la collection", info.toString());
478
		} else {
479
		} else {
479
			GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
480
			GWT.log(Mediateur.i18nM.erreurRafraichir(info.getClass(), this.getClass()), null);
480
		}
481
		}
481
	}
482
	}
482
 
483
 
483
	public void peupler() {
484
	public void peupler() {
484
		grille.getStore().removeAll();
485
		grille.getStore().removeAll();
485
		grille.getStore().add(collection.getPublicationsLiees().toList());
486
		grille.getStore().add(collection.getPublicationsLiees().toList());
486
		layout();
487
		layout();
487
		Info.display(i18nC.chargementPublication(), i18nC.ok());
488
		Info.display(i18nC.chargementPublication(), i18nC.ok());
488
	}
489
	}
489
 
490
 
490
	public void collecter() {
491
	public void collecter() {
491
		if (etreAccede()) {
492
		if (etreAccede()) {
492
			int nbrePublication = grille.getStore().getCount();
493
			int nbrePublication = grille.getStore().getCount();
493
			for (int i = 0; i < nbrePublication; i++) {
494
			for (int i = 0; i < nbrePublication; i++) {
494
				CollectionAPublication publicationLiee = grille.getStore().getAt(i);
495
				CollectionAPublication publicationLiee = grille.getStore().getAt(i);
495
				if (publicationLiee.get("_etat_") != null) {
496
				if (publicationLiee.get("_etat_") != null) {
496
					if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
497
					if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
497
						// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
498
						// Comme il est impossible de modifier les relations nous supprimons l'ancien enregistrement et ajoutons un nouveau avec le nouveau id_role
498
						publicationsSupprimees.put("id"+idGenere++, publicationLiee);
499
						publicationsSupprimees.put("id"+idGenere++, publicationLiee);
499
						
500
						
500
						CollectionAPublication relationAAjouter = (CollectionAPublication) publicationLiee.cloner(new CollectionAPublication());
501
						CollectionAPublication relationAAjouter = (CollectionAPublication) publicationLiee.cloner(new CollectionAPublication());
501
						publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
502
						publicationsAjoutees.put("id"+idGenere++, relationAAjouter);
502
						Debug.log(publicationLiee.toString());
503
						Debug.log(publicationLiee.toString());
503
					} 
504
					} 
504
					if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
505
					if (publicationLiee.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
505
						publicationsAjoutees.put("id"+idGenere++, publicationLiee);
506
						publicationsAjoutees.put("id"+idGenere++, publicationLiee);
506
						Debug.log(publicationLiee.toString());
507
						Debug.log(publicationLiee.toString());
507
					}
508
					}
508
					// Initialisation de la grille
509
					// Initialisation de la grille
509
					publicationLiee.set("_etat_", "");
510
					publicationLiee.set("_etat_", "");
510
				}
511
				}
511
			}
512
			}
512
			grille.getStore().commitChanges();
513
			grille.getStore().commitChanges();
513
		}
514
		}
514
	}
515
	}
515
	
516
	
516
	public void soumettre() {
517
	public void soumettre() {
517
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
518
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
518
			if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0) {
519
			if (publicationsAjoutees.size() == 0 && publicationsSupprimees.size() == 0) {
519
				Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
520
				Info.display("Modification des publications liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
520
			} else {
521
			} else {
521
				// Ajout des relations CollectionAPublication
522
				// Ajout des relations CollectionAPublication
522
				if (publicationsAjoutees.size() != 0) {
523
				if (publicationsAjoutees.size() != 0) {
523
					mediateur.ajouterCollectionAPublication(this, collection.getId(), publicationsAjoutees);
524
					mediateur.ajouterCollectionAPublication(this, collection.getId(), publicationsAjoutees);
524
					Debug.log("Nbre publications ajoutées :"+publicationsAjoutees.size());
525
					Debug.log("Nbre publications ajoutées :"+publicationsAjoutees.size());
525
				}
526
				}
526
				// Suppression des relations CollectionAPublication
527
				// Suppression des relations CollectionAPublication
527
				if (publicationsSupprimees.size() != 0) {
528
				if (publicationsSupprimees.size() != 0) {
528
					mediateur.supprimerCollectionAPublication(this, publicationsSupprimees);
529
					mediateur.supprimerCollectionAPublication(this, publicationsSupprimees);
529
					Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());
530
					Debug.log("Nbre publications supprimées :"+publicationsSupprimees.size());
530
				}
531
				}
531
			}
532
			}
532
		}
533
		}
533
	}
534
	}
534
	
535
	
535
	private void obtenirPublicationsSaisies(String nom) {
536
	private void obtenirPublicationsSaisies(String nom) {
536
		mediateur.selectionnerPublicationParNomComplet(this, null, nom+"%"); 
537
		mediateur.selectionnerPublicationParNomComplet(this, null, nom+"%"); 
537
	}
538
	}
538
}
539
}