Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1417 Rev 1513
Line 1... Line 1...
1
package org.tela_botanica.client.vues.collection;
1
package org.tela_botanica.client.vues.collection;
Line 2... Line 2...
2
 
2
 
-
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.HashMap;
Line 4... Line 5...
4
import java.util.List;
5
import java.util.List;
5
 
6
 
-
 
7
import org.tela_botanica.client.Mediateur;
-
 
8
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
6
import org.tela_botanica.client.Mediateur;
9
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable;
-
 
10
import org.tela_botanica.client.composants.GrillePaginable;
-
 
11
import org.tela_botanica.client.composants.InfoLogger;
-
 
12
import org.tela_botanica.client.composants.pagination.ProxyCollectionACommentaire;
-
 
13
import org.tela_botanica.client.composants.pagination.ProxyCollectionAPersonne;
7
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
14
import org.tela_botanica.client.composants.pagination.ProxyCommentaires;
8
import org.tela_botanica.client.composants.InfoLogger;
15
import org.tela_botanica.client.composants.pagination.ProxyPublications;
9
import org.tela_botanica.client.images.Images;
16
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
17
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Information;
18
import org.tela_botanica.client.modeles.Information;
Line 15... Line 22...
15
import org.tela_botanica.client.modeles.collection.Collection;
22
import org.tela_botanica.client.modeles.collection.Collection;
16
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
23
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
17
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
24
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
18
import org.tela_botanica.client.modeles.commentaire.Commentaire;
25
import org.tela_botanica.client.modeles.commentaire.Commentaire;
19
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
26
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
-
 
27
import org.tela_botanica.client.modeles.publication.Publication;
20
import org.tela_botanica.client.synchronisation.Sequenceur;
28
import org.tela_botanica.client.synchronisation.Sequenceur;
21
import org.tela_botanica.client.util.Debug;
29
import org.tela_botanica.client.util.Debug;
22
import org.tela_botanica.client.vues.FenetreForm;
30
import org.tela_botanica.client.vues.FenetreForm;
23
import org.tela_botanica.client.vues.Formulaire;
31
import org.tela_botanica.client.vues.Formulaire;
24
import org.tela_botanica.client.vues.FormulaireBarreValidation;
32
import org.tela_botanica.client.vues.FormulaireBarreValidation;
25
import org.tela_botanica.client.vues.FormulaireOnglet;
33
import org.tela_botanica.client.vues.FormulaireOnglet;
26
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
34
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
Line 27... Line 35...
27
 
35
 
-
 
36
import com.extjs.gxt.ui.client.Style.SortDir;
-
 
37
import com.extjs.gxt.ui.client.data.ModelData;
28
import com.extjs.gxt.ui.client.Style.SortDir;
38
import com.extjs.gxt.ui.client.data.ModelType;
29
import com.extjs.gxt.ui.client.event.BaseEvent;
39
import com.extjs.gxt.ui.client.event.BaseEvent;
30
import com.extjs.gxt.ui.client.event.ButtonEvent;
40
import com.extjs.gxt.ui.client.event.ButtonEvent;
31
import com.extjs.gxt.ui.client.event.ComponentEvent;
41
import com.extjs.gxt.ui.client.event.ComponentEvent;
32
import com.extjs.gxt.ui.client.event.Events;
42
import com.extjs.gxt.ui.client.event.Events;
Line 40... Line 50...
40
import com.extjs.gxt.ui.client.widget.Info;
50
import com.extjs.gxt.ui.client.widget.Info;
41
import com.extjs.gxt.ui.client.widget.Text;
51
import com.extjs.gxt.ui.client.widget.Text;
42
import com.extjs.gxt.ui.client.widget.button.Button;
52
import com.extjs.gxt.ui.client.widget.button.Button;
43
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
53
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
44
import com.extjs.gxt.ui.client.widget.form.ComboBox;
54
import com.extjs.gxt.ui.client.widget.form.ComboBox;
-
 
55
import com.extjs.gxt.ui.client.widget.form.Field;
45
import com.extjs.gxt.ui.client.widget.form.FormPanel;
56
import com.extjs.gxt.ui.client.widget.form.FormPanel;
-
 
57
import com.extjs.gxt.ui.client.widget.form.Validator;
46
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
58
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
47
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
59
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
48
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
60
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
49
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
61
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
50
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
62
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
51
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
63
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
52
import com.extjs.gxt.ui.client.widget.grid.Grid;
64
import com.extjs.gxt.ui.client.widget.grid.Grid;
53
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
65
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
54
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
66
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
-
 
67
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
55
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
68
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
56
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
69
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
57
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
70
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
58
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
71
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
59
import com.google.gwt.core.client.GWT;
72
import com.google.gwt.core.client.GWT;
Line 64... Line 77...
64
	private Collection collection = null;
77
	private Collection collection = null;
65
	private static int idGenere = 1;
78
	private static int idGenere = 1;
Line 66... Line 79...
66
	
79
	
67
	private ContentPanel panneauPrincipal = null;
80
	private ContentPanel panneauPrincipal = null;
68
	private ToolBar barreOutils = null;
81
	private ToolBar barreOutils = null;
69
	private EditorGrid<CollectionACommentaire> grille;
82
	private GrillePaginable<ModelData> grille = null;
Line 70... Line 83...
70
	private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
83
	private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
71
	
84
	
72
	private CollectionACommentaireListe commentairesAjoutes = null;
85
	private CollectionACommentaireListe commentairesAjoutes = null;
73
	private CollectionACommentaireListe commentairesModifies = null;
86
	private CollectionACommentaireListe commentairesModifies = null;
74
	private CollectionACommentaireListe commentairesSupprimes = null;
87
	private CollectionACommentaireListe commentairesSupprimes = null;
75
	private ComboBox<Commentaire> commentairesSaisisComboBox = null;
88
	private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null;
Line 76... Line 89...
76
	private Button commentairesBoutonSupprimer = null;
89
	private Button commentairesBoutonSupprimer = null;
77
	private Button commentairesBoutonModifier = null;
90
	private Button commentairesBoutonModifier = null;
Line 78... Line 91...
78
	
91
	
79
	private static boolean chargementTypesOk = false;
92
	private static boolean chargementTypesOk = false;
Line 80... Line 93...
80
	private static boolean chargementCommentairesOk = false;
93
	private static boolean chargementCommentairesOk = false;
-
 
94
	
81
	
95
	private FenetreForm fenetreFormulaire = null;
-
 
96
	private Sequenceur sequenceur;
82
	private FenetreForm fenetreFormulaire = null;
97
	
83
	private Sequenceur sequenceur;
98
	public CollectionFormCommentaire(Formulaire formulaireCourrant) {
84
	
99
		
Line -... Line 100...
-
 
100
		initialiserOnglet(formulaireCourrant);
-
 
101
		setLayout(new FitLayout());
85
	public CollectionFormCommentaire(Formulaire formulaireCourrant) {
102
		setId(ID);
86
		initialiserOnglet(formulaireCourrant);
103
		setText(Mediateur.i18nC.collectionCommentaire());
87
		setId(ID);
104
		setStyleAttribute("padding", "0");
88
		setText(Mediateur.i18nC.collectionCommentaire());
105
		
89
		setStyleAttribute("padding", "0");
106
		initialiser();
Line 90... Line 107...
90
		
107
		
91
		panneauPrincipal = creerPanneauContenantGrille();
108
		panneauPrincipal = creerPanneauContenantGrille();
92
		barreOutils = creerBarreOutilsGrille();
-
 
93
		panneauPrincipal.setTopComponent(barreOutils);
-
 
94
		grille = creerGrille();
109
		barreOutils = creerBarreOutilsGrille();
Line 95... Line 110...
95
  		panneauPrincipal.add(grille);
110
		panneauPrincipal.setTopComponent(barreOutils);
96
		
111
		grille = creerGrille();
97
		mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection", null);
112
  		panneauPrincipal.add(grille);
Line 98... Line -...
98
		add(panneauPrincipal);
-
 
99
		
-
 
100
		initialiser();
-
 
101
	}
113
		
102
	
114
		mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection", null);
Line 103... Line 115...
103
	private void initialiser() {
115
		add(panneauPrincipal);
104
		// Remise à zéro des modification dans la liste des commentaires
116
	}
Line 179... Line 191...
179
		Button bouton = new Button(i18nC.modifier());
191
		Button bouton = new Button(i18nC.modifier());
180
		bouton.setIcon(Images.ICONES.vcardModifier());
192
		bouton.setIcon(Images.ICONES.vcardModifier());
181
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
193
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
182
			@Override  
194
			@Override  
183
			public void componentSelected(ButtonEvent ce) {  
195
			public void componentSelected(ButtonEvent ce) {  
184
				CollectionACommentaire commentaireSaisiSelectionne = grille.getSelectionModel().getSelectedItem();
196
				ModelData commentaireSaisiSelectionne = grille.getGrille().getSelectionModel().getSelectedItem();
185
				if (commentaireSaisiSelectionne == null) {
197
				if (commentaireSaisiSelectionne == null) {
186
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
198
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
187
				} else {
199
				} else {
188
					fenetreFormulaire = creerFenetreModaleAvecFormulaireCommentaire(Formulaire.MODE_MODIFIER);
200
					fenetreFormulaire = creerFenetreModaleAvecFormulaireCommentaire(Formulaire.MODE_MODIFIER);
189
					fenetreFormulaire.show();
201
					fenetreFormulaire.show();
Line 194... Line 206...
194
	}
206
	}
Line 195... Line 207...
195
	
207
	
196
	private FenetreForm creerFenetreModaleAvecFormulaireCommentaire(String mode) {
208
	private FenetreForm creerFenetreModaleAvecFormulaireCommentaire(String mode) {
197
		String commentaireId = null;
209
		String commentaireId = null;
198
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
210
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
-
 
211
			ModelData commentaierSaisieSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
199
			CollectionACommentaire commentaierSaisieSelectionnee = grille.getSelectionModel().getSelectedItem();
212
			CollectionACommentaire cac = new CollectionACommentaire(commentaierSaisieSelectionnee, false);
200
			commentaireId = commentaierSaisieSelectionnee.getIdCommentaire();
213
			commentaireId = cac.getIdCommentaire();
Line 201... Line 214...
201
		}
214
		}
202
		
215
		
203
		final FenetreForm fenetre = new FenetreForm("");
216
		final FenetreForm fenetre = new FenetreForm("");
Line 249... Line 262...
249
	private Button creerBoutonSupprimer() {
262
	private Button creerBoutonSupprimer() {
250
		Button bouton = new Button(i18nC.supprimer());
263
		Button bouton = new Button(i18nC.supprimer());
251
		bouton.setIcon(Images.ICONES.vcardSupprimer());
264
		bouton.setIcon(Images.ICONES.vcardSupprimer());
252
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
265
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
253
			public void componentSelected(ButtonEvent ce) {
266
			public void componentSelected(ButtonEvent ce) {
254
				CollectionACommentaire commentaireSaisiSelectionnee = grille.getSelectionModel().getSelectedItem();
267
				ModelData commentaireSaisiSelectionnee = grille.getGrille().getSelectionModel().getSelectedItem();
-
 
268
				CollectionACommentaire cac = new CollectionACommentaire(commentaireSaisiSelectionnee, false);
255
				if (commentaireSaisiSelectionnee == null) {
269
				if (commentaireSaisiSelectionnee == null) {
256
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
270
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerCommentaire());
257
				} else {
271
				} else {
258
					supprimerDansGrille(commentaireSaisiSelectionnee);
272
					supprimerDansGrille(cac);
259
				}
273
				}
260
			}   
274
			}   
261
		});
275
		});
262
		return bouton;
276
		return bouton;
263
	}
277
	}
Line 271... Line 285...
271
			}   
285
			}   
272
		});
286
		});
273
		return bouton;
287
		return bouton;
274
	}
288
	}
Line 275... Line 289...
275
	
289
	
-
 
290
	private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() {
-
 
291
		
276
	private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() {
292
		ModelType modelTypeCommentaires = new ModelType();
-
 
293
		modelTypeCommentaires.setRoot("commentaires");
277
		ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>();
294
		modelTypeCommentaires.setTotalName("nbElements");
-
 
295
		modelTypeCommentaires.addField("ccm_id_commentaire");
-
 
296
		modelTypeCommentaires.addField("ccm_ce_pere");
-
 
297
		modelTypeCommentaires.addField("ccm_ce_projet");
-
 
298
		modelTypeCommentaires.addField("ccm_titre");
-
 
299
		modelTypeCommentaires.addField("ccm_texte");
-
 
300
		modelTypeCommentaires.addField("ccm_ponderation");
278
		commentairesSaisiesStore.add(new ArrayList<Commentaire>());
301
		modelTypeCommentaires.addField("ccm_mark_public");
279
		
302
		
280
		ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>();
303
		String displayNameCommentaires = "ccm_titre";
-
 
304
		ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null);
-
 
305
		
281
		comboBox.setWidth(200);
306
		final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires);
282
		comboBox.setEmptyText(i18nC.chercherCommentaireSaisi());
307
		commentairesCombo.getCombo().setTabIndex(tabIndex++);
-
 
308
		commentairesCombo.getCombo().setForceSelection(true);
283
		comboBox.setTriggerAction(TriggerAction.ALL);  
309
		
284
		comboBox.setEditable(true);
310
		commentairesCombo.getCombo().setValidator(new Validator() {
285
		comboBox.setDisplayField("titre");
311
			public String validate(Field<?> field, String value) {
286
		comboBox.setStore(commentairesSaisiesStore);
312
				String retour = null;
287
		comboBox.addKeyListener(new KeyListener() {
313
				if (field.getRawValue().equals("")) {
288
			public void componentKeyUp(ComponentEvent ce) {
314
					field.setValue(null);
-
 
315
				} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) {
289
				if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) {
316
					String contenuBrut = field.getRawValue();
-
 
317
					field.setValue(null);
290
					if (!ce.isNavKeyPress()) {
318
					field.setRawValue(contenuBrut);
291
						obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue());
-
 
292
					}
319
					retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
-
 
320
				}
293
				}
321
				return retour;
294
			}
322
			}
-
 
323
		});
295
		});
324
		
296
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
325
		commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
297
			public void handleEvent(BaseEvent be) {
326
			public void handleEvent(BaseEvent be) {
298
				if (commentairesSaisisComboBox.getValue() instanceof Commentaire) {
327
				if (commentairesSaisisComboBox.getValeur() instanceof ModelData) {
299
					Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue();
328
					Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur());
300
					ajouterDansGrille(commentaireSaisiSelectionnee);
329
					ajouterDansGrille(commentaireSaisiSelectionnee);
301
					commentairesSaisisComboBox.setValue(null);
330
					commentairesSaisisComboBox.getCombo().setValue(null);
302
				}
331
				}
303
			}
332
			}
-
 
333
		});
304
		});
334
		
305
		return comboBox;
335
		return commentairesCombo;
Line 306... Line 336...
306
	}
336
	}
307
	
337
	
308
	private void ajouterDansGrille(Commentaire commentaire) {
338
	private void ajouterDansGrille(Commentaire commentaire) {
Line 323... Line 353...
323
			}
353
			}
324
			relationCollectionACommentaire.set("_etat_", aDonnee.ETAT_AJOUTE);
354
			relationCollectionACommentaire.set("_etat_", aDonnee.ETAT_AJOUTE);
325
			corrigerChampsGrille(relationCollectionACommentaire);
355
			corrigerChampsGrille(relationCollectionACommentaire);
Line 326... Line 356...
326
			
356
			
327
			// Ajout à la grille
357
			// Ajout à la grille
328
			grille.stopEditing();
358
			grille.getGrille().stopEditing();
329
			grille.getStore().insert(relationCollectionACommentaire, index);
359
			grille.getGrille().getStore().insert(relationCollectionACommentaire, index);
330
			grille.startEditing(index, 0);
360
			grille.getGrille().startEditing(index, 0);
331
			grille.getSelectionModel().select(index, false);
361
			grille.getGrille().getSelectionModel().select(index, false);
332
		}
362
		}
Line 333... Line 363...
333
	}
363
	}
334
	
364
	
Line 344... Line 374...
344
			// Suppression de l'enregistrement de la grille
374
			// Suppression de l'enregistrement de la grille
345
			grille.getStore().remove(relationCollectionACommentaire);			
375
			grille.getStore().remove(relationCollectionACommentaire);			
346
		}
376
		}
347
	}
377
	}
Line 348... Line 378...
348
 
378
 
349
	private EditorGrid<CollectionACommentaire> creerGrille() {
-
 
350
		ListStore<CollectionACommentaire> storeGrille = new ListStore<CollectionACommentaire>();
-
 
351
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<CollectionACommentaire>>() {
-
 
352
			public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
-
 
353
				actualiserEtatBoutonsBarreOutils();
-
 
354
			}
-
 
355
		});
-
 
356
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<CollectionACommentaire>>() {
-
 
357
			public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
-
 
358
				actualiserEtatBoutonsBarreOutils();
-
 
359
			}
-
 
360
		});
-
 
361
		storeGrille.addListener(Store.Update, new Listener<StoreEvent<CollectionACommentaire>>() {
-
 
362
			public void handleEvent(StoreEvent<CollectionACommentaire> ce) {
-
 
363
				if (ce.getRecord().isModified("_type_") && !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
-
 
364
					ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
-
 
365
				}
-
 
366
			}
-
 
Line -... Line 379...
-
 
379
	private GrillePaginable<ModelData> creerGrille() {
-
 
380
		
-
 
381
		GrillePaginable<ModelData> grillePaginable = null;
367
		});
382
 
-
 
383
		// ModelType
-
 
384
		ModelType modelTypeCollectionACommentaire = new ModelType();
-
 
385
		modelTypeCollectionACommentaire.setRoot("collectionsACommentaire");
-
 
386
		modelTypeCollectionACommentaire.setTotalName("nbElements");
-
 
387
		modelTypeCollectionACommentaire.addField("ccac_id_commentaire");
-
 
388
		modelTypeCollectionACommentaire.addField("ccac_id_collection");
-
 
389
		modelTypeCollectionACommentaire.addField("ccac_truk_type");
-
 
390
		modelTypeCollectionACommentaire.addField("ccm_id_commentaire");
-
 
391
		modelTypeCollectionACommentaire.addField("ccm_titre");
-
 
392
		modelTypeCollectionACommentaire.addField("ccm_texte");
-
 
393
		modelTypeCollectionACommentaire.addField("ccm_ponderation");
-
 
394
		modelTypeCollectionACommentaire.addField("ccm_mark_public");
-
 
395
		modelTypeCollectionACommentaire.addField("ccm_ce_pere");
-
 
396
		modelTypeCollectionACommentaire.addField("ccm_ce_projet");
-
 
397
		
Line -... Line 398...
-
 
398
		// Proxy
368
		
399
		ProxyCollectionACommentaire<ModelData> proxyCollectionACommentaire = new ProxyCollectionACommentaire<ModelData>(null, collection.getId());
-
 
400
		
-
 
401
		// Colonnes
369
		RowNumberer pluginLigneNumero = new RowNumberer();
402
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
Line 370... Line 403...
370
		
403
		
371
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
404
		RowNumberer pluginLigneNumero = new RowNumberer();
372
		colonnes.add(pluginLigneNumero);
405
		colonnes.add(pluginLigneNumero);		
373
		
406
		
374
		colonnes.add(creerColonneType());
407
		colonnes.add(creerColonneType());
Line 375... Line 408...
375
		colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
408
		colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
376
		colonnes.add(new ColumnConfig("_texte_", i18nC.commentaireTexte(), 75));
409
		colonnes.add(new ColumnConfig("_texte_", i18nC.commentaireTexte(), 75));
-
 
410
		colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 35));
Line 377... Line 411...
377
		colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 35));
411
		colonnes.add(creerColonneAcces());
-
 
412
		
-
 
413
		// Modèle de colonnes
-
 
414
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
-
 
415
		GridSelectionModel<ModelData> modeleDeSelection = new GridSelectionModel<ModelData>();
-
 
416
		
378
		colonnes.add(creerColonneAcces());
417
		HashMap<String, String> virtualFields = new HashMap<String, String>();
-
 
418
		virtualFields.put("_titre_", "ccm_titre");
-
 
419
		virtualFields.put("_texte_", "ccm_texte");
-
 
420
		virtualFields.put("_ponderation_", "ccm_ponderation");
379
		
421
		virtualFields.put("_type_", "ccac_truk_type");
380
		GridSelectionModel<CollectionACommentaire> modeleDeSelection = new GridSelectionModel<CollectionACommentaire>();
422
		virtualFields.put("_public_", "ccm_mark_public");
381
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
423
		virtualFields.put("_etat_", "");
382
		
424
		
383
		EditorGrid<CollectionACommentaire> grille = new EditorGrid<CollectionACommentaire>(storeGrille, modeleDeColonnes);
425
		// Grille
384
		grille.setHeight("100%");
426
		grillePaginable = new GrillePaginable<ModelData>(modelTypeCollectionACommentaire, virtualFields, proxyCollectionACommentaire, colonnes, modeleDeColonnes);
385
		grille.setBorders(true);
427
		grillePaginable.getGrille().setBorders(true);
-
 
428
		grillePaginable.getGrille().setSelectionModel(modeleDeSelection);
-
 
429
		grillePaginable.getGrille().addPlugin(pluginLigneNumero);
-
 
430
		grillePaginable.getGrille().getView().setForceFit(true);
-
 
431
		grillePaginable.getGrille().setAutoExpandColumn("_titre_");
-
 
432
		grillePaginable.getGrille().setStripeRows(true);
-
 
433
		grillePaginable.getGrille().setTrackMouseOver(true);
-
 
434
		
-
 
435
		// Rajouter des écouteurs
-
 
436
		grillePaginable.getStore().addListener(Store.Update, new Listener<StoreEvent<ModelData>>() {
Line 386... Line 437...
386
		grille.setSelectionModel(modeleDeSelection);
437
			public void handleEvent(StoreEvent<ModelData> ce) {
387
		grille.addPlugin(pluginLigneNumero);
438
				if (ce.getRecord().isModified("_type_") && ce.getModel().get("_etat_") == null || !ce.getModel().get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
Line 388... Line 439...
388
		grille.getView().setForceFit(true);
439
					ce.getModel().set("_etat_", aDonnee.ETAT_MODIFIE);
389
		grille.setAutoExpandColumn("_titre_");
440
				}
390
		grille.setStripeRows(true);
441
			}
Line 422... Line 473...
422
				}
473
				}
423
				return retour;  
474
				return retour;  
424
			}  
475
			}  
425
		};
476
		};
Line 426... Line 477...
426
 
477
 
427
		GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
478
		GridCellRenderer<ModelData> typeRendu = new GridCellRenderer<ModelData>() {
428
			public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
479
			public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
429
				String type = model.get("_type_");
480
				String type = model.get("_type_");
430
				if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
481
				if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
431
					type = typeCombo.formaterIdentifiantsEnTexte(type);
482
					type = typeCombo.formaterIdentifiantsEnTexte(type);
432
					model.set("_type_", type);
483
					model.set("_type_", type);
Line 439... Line 490...
439
		typeColonne.setRenderer(typeRendu);
490
		typeColonne.setRenderer(typeRendu);
440
		return typeColonne;
491
		return typeColonne;
441
	}
492
	}
Line 442... Line 493...
442
	
493
	
443
	private ColumnConfig creerColonneAcces() {
494
	private ColumnConfig creerColonneAcces() {
444
		GridCellRenderer<CollectionACommentaire> accesRendu = new GridCellRenderer<CollectionACommentaire>() {
495
		GridCellRenderer<ModelData> accesRendu = new GridCellRenderer<ModelData>() {
-
 
496
			public String render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) {
445
			public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
497
				CollectionACommentaire cac = new CollectionACommentaire(model, true);
446
				String acces = (model.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
498
				String acces = (cac.getCommentaire().etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
447
				model.set("_public_", acces);
499
				model.set("_public_", acces);
448
				return acces;
500
				return acces;
449
			}
501
			}
450
		};
502
		};
Line 471... Line 523...
471
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
523
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
472
			rafraichirValeurListe(listeValeurs);
524
			rafraichirValeurListe(listeValeurs);
473
		} else if (nouvellesDonnees instanceof Information) {
525
		} else if (nouvellesDonnees instanceof Information) {
474
			Information info = (Information) nouvellesDonnees;
526
			Information info = (Information) nouvellesDonnees;
475
			rafraichirInformation(info);
527
			rafraichirInformation(info);
476
		} else if (nouvellesDonnees instanceof CommentaireListe) {
-
 
477
			CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees;
-
 
478
			rafraichirCommentairesListe(listeCommentaires);
-
 
479
		} else {
528
		} else {
480
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
529
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
481
		}
530
		}
Line 482... Line 531...
482
		
531
		
Line 522... Line 571...
522
				mediateur.ajouterCollectionACommentaire(this, collectionId, commentairesAjoutes);
571
				mediateur.ajouterCollectionACommentaire(this, collectionId, commentairesAjoutes);
523
			}
572
			}
524
		} else if (type.equals("commentaire_modifiee")) {
573
		} else if (type.equals("commentaire_modifiee")) {
525
			if (info.getDonnee(0) != null) {
574
			if (info.getDonnee(0) != null) {
526
				Commentaire commentaire = (Commentaire) info.getDonnee(0);
575
				Commentaire commentaire = (Commentaire) info.getDonnee(0);
527
				CollectionACommentaire commentaireDansGrille = grille.getStore().findModel("id_commentaire", commentaire.getId());
576
				ModelData commentaireDansGrille = grille.getStore().findModel("ccm_id_commentaire", commentaire.getId());
528
				int index = grille.getStore().indexOf(commentaireDansGrille);
577
				int index = grille.getStore().indexOf(commentaireDansGrille);
529
				grille.getStore().remove(commentaireDansGrille);
578
				grille.getStore().remove(commentaireDansGrille);
530
				String typeCommentaire = (String) commentaireDansGrille.get("_type_");
579
				String typeCommentaire = (String) commentaireDansGrille.get("_type_");
531
				ajouterDansGrille(commentaire, typeCommentaire, index);
580
				ajouterDansGrille(commentaire, typeCommentaire, index);
532
			}
581
			}
Line 545... Line 594...
545
			InfoLogger.display("Ajout des notes liées à la collection", info.toString());
594
			InfoLogger.display("Ajout des notes liées à la collection", info.toString());
546
			initialiserGestionCommentaires();
595
			initialiserGestionCommentaires();
547
		}
596
		}
548
	}
597
	}
Line 549... Line -...
549
	
-
 
550
	private void rafraichirCommentairesListe(CommentaireListe listeCommentaires) {
-
 
551
		commentairesSaisisComboBox.getStore().removeAll();
-
 
552
		commentairesSaisisComboBox.getStore().add(listeCommentaires.toList());
-
 
553
		commentairesSaisisComboBox.expand();
-
 
554
	}
-
 
555
	
598
	
556
	public void peupler() {
599
	public void peupler() {
557
		grille.getStore().removeAll();
600
		grille.getStore().removeAll();
558
		grille.getStore().add(collection.getCommentairesLiees().toList());
601
		grille.getStore().add(collection.getCommentairesLiees().toList());
559
		grille.recalculate();
602
		grille.recalculate();
Line 563... Line 606...
563
	
606
	
564
	public void collecter() {
607
	public void collecter() {
565
		if (etreAccede()) {
608
		if (etreAccede()) {
566
			int nbreCommentaire = grille.getStore().getCount();
609
			int nbreCommentaire = grille.getStore().getCount();
567
			for (int i = 0; i < nbreCommentaire; i++) {
610
			for (int i = 0; i < nbreCommentaire; i++) {
-
 
611
				ModelData relationCollectionACommentaire = grille.getStore().getAt(i);
568
				CollectionACommentaire relationCollectionACommentaire = grille.getStore().getAt(i);
612
				CollectionACommentaire cac = new CollectionACommentaire(relationCollectionACommentaire, false);
569
				if (relationCollectionACommentaire.get("_etat_") != null) {
613
				if (relationCollectionACommentaire.get("_etat_") != null) {
570
					if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
614
					if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_MODIFIE)) {
571
						corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
615
						corrigerChampsGrille(cac);// Nous modifions l'id_type
572
						commentairesModifies.put("id"+idGenere++, relationCollectionACommentaire);
616
						commentairesModifies.put("id"+idGenere++, cac);
573
					} 
617
					} 
574
					if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
618
					if (relationCollectionACommentaire.get("_etat_").equals(aDonnee.ETAT_AJOUTE)) {
575
						corrigerChampsGrille(relationCollectionACommentaire);// Nous modifions l'id_type
619
						corrigerChampsGrille(cac);// Nous modifions l'id_type
576
						commentairesAjoutes.put("id"+idGenere++, relationCollectionACommentaire);
620
						commentairesAjoutes.put("id"+idGenere++, cac);
577
					}
621
					}
578
					// Initialisation de la grille
622
					// Initialisation de la grille
579
					relationCollectionACommentaire.set("_etat_", "");
623
					relationCollectionACommentaire.set("_etat_", "");
580
				}
624
				}
Line 584... Line 628...
584
	}
628
	}
Line 585... Line 629...
585
	
629
	
586
	private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
630
	private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
587
		String type = relationCollectionACommentaire.get("_type_");
631
		String type = relationCollectionACommentaire.get("_type_");
-
 
632
		relationCollectionACommentaire.setType(typeCombo.formaterTexteEnIdentifiants(type));
588
		relationCollectionACommentaire.setType(typeCombo.formaterTexteEnIdentifiants(type));
633
		relationCollectionACommentaire.setIdCollection(collection.getId());
Line 589... Line 634...
589
	}
634
	}
590
 
635
 
591
	public void soumettre() {
636
	public void soumettre() {
592
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
637
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
593
			if (commentairesAjoutes.size() == 0 && commentairesModifies.size() == 0 && commentairesSupprimes.size() == 0) {
638
			if (commentairesAjoutes.size() == 0 && commentairesModifies.size() == 0 && commentairesSupprimes.size() == 0) {
594
				InfoLogger.display("Modification des notes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
639
				InfoLogger.display("Modification des notes liées", "Rien n'a été enregistré car le formulaire n'a pas été modifié.");
595
			} else {
640
			} else {
596
				mediateur.ajouterCollectionACommentaire(this, collection.getId(), commentairesAjoutes);
641
				mediateur.ajouterCollectionACommentaire(this, collection.getId(), commentairesAjoutes);
597
				mediateur.modifierCollectionACommentaire(this, commentairesModifies);
642
				mediateur.modifierCollectionACommentaire(this, commentairesModifies);				
598
				mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
643
				mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
599
			}
644
			}
Line 600... Line -...
600
		}
-
 
601
	}
-
 
602
	
-
 
603
	private void obtenirCommentairesSaisis(String titre) {
-
 
604
		mediateur.selectionnerCommentaireParTitre(this, titre+"%", null); 
645
		}
605
	}
646
	}
606
	
647
	
607
	private void actualiserGrille() {
648
	private void actualiserGrille() {
608
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
649
		if (mode.equals(Formulaire.MODE_MODIFIER)) {