Subversion Repositories eFlore/Applications.coel

Rev

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

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