Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1383 Rev 1470
Line 3... Line 3...
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.List;
4
import java.util.List;
Line 5... Line 5...
5
 
5
 
6
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.Mediateur;
-
 
7
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
7
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
8
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable;
-
 
9
import org.tela_botanica.client.composants.InfoLogger;
-
 
10
import org.tela_botanica.client.composants.pagination.ProxyCommentaires;
8
import org.tela_botanica.client.composants.InfoLogger;
11
import org.tela_botanica.client.composants.pagination.ProxyPublications;
9
import org.tela_botanica.client.images.Images;
12
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Information;
14
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.Valeur;
15
import org.tela_botanica.client.modeles.Valeur;
Line 15... Line 18...
15
import org.tela_botanica.client.modeles.collection.Collection;
18
import org.tela_botanica.client.modeles.collection.Collection;
16
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
19
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
17
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
20
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
18
import org.tela_botanica.client.modeles.commentaire.Commentaire;
21
import org.tela_botanica.client.modeles.commentaire.Commentaire;
19
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
22
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
-
 
23
import org.tela_botanica.client.modeles.publication.Publication;
20
import org.tela_botanica.client.synchronisation.Sequenceur;
24
import org.tela_botanica.client.synchronisation.Sequenceur;
21
import org.tela_botanica.client.util.Debug;
25
import org.tela_botanica.client.util.Debug;
22
import org.tela_botanica.client.vues.FenetreForm;
26
import org.tela_botanica.client.vues.FenetreForm;
23
import org.tela_botanica.client.vues.Formulaire;
27
import org.tela_botanica.client.vues.Formulaire;
24
import org.tela_botanica.client.vues.FormulaireBarreValidation;
28
import org.tela_botanica.client.vues.FormulaireBarreValidation;
25
import org.tela_botanica.client.vues.FormulaireOnglet;
29
import org.tela_botanica.client.vues.FormulaireOnglet;
26
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
30
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
Line 27... Line 31...
27
 
31
 
-
 
32
import com.extjs.gxt.ui.client.Style.SortDir;
-
 
33
import com.extjs.gxt.ui.client.data.ModelData;
28
import com.extjs.gxt.ui.client.Style.SortDir;
34
import com.extjs.gxt.ui.client.data.ModelType;
29
import com.extjs.gxt.ui.client.event.BaseEvent;
35
import com.extjs.gxt.ui.client.event.BaseEvent;
30
import com.extjs.gxt.ui.client.event.ButtonEvent;
36
import com.extjs.gxt.ui.client.event.ButtonEvent;
31
import com.extjs.gxt.ui.client.event.ComponentEvent;
37
import com.extjs.gxt.ui.client.event.ComponentEvent;
32
import com.extjs.gxt.ui.client.event.Events;
38
import com.extjs.gxt.ui.client.event.Events;
Line 40... Line 46...
40
import com.extjs.gxt.ui.client.widget.Info;
46
import com.extjs.gxt.ui.client.widget.Info;
41
import com.extjs.gxt.ui.client.widget.Text;
47
import com.extjs.gxt.ui.client.widget.Text;
42
import com.extjs.gxt.ui.client.widget.button.Button;
48
import com.extjs.gxt.ui.client.widget.button.Button;
43
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
49
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
44
import com.extjs.gxt.ui.client.widget.form.ComboBox;
50
import com.extjs.gxt.ui.client.widget.form.ComboBox;
-
 
51
import com.extjs.gxt.ui.client.widget.form.Field;
45
import com.extjs.gxt.ui.client.widget.form.FormPanel;
52
import com.extjs.gxt.ui.client.widget.form.FormPanel;
-
 
53
import com.extjs.gxt.ui.client.widget.form.Validator;
46
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
54
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
47
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
55
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
48
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
56
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
49
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
57
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
50
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
58
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
Line 70... Line 78...
70
	private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
78
	private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
Line 71... Line 79...
71
	
79
	
72
	private CollectionACommentaireListe commentairesAjoutes = null;
80
	private CollectionACommentaireListe commentairesAjoutes = null;
73
	private CollectionACommentaireListe commentairesModifies = null;
81
	private CollectionACommentaireListe commentairesModifies = null;
74
	private CollectionACommentaireListe commentairesSupprimes = null;
82
	private CollectionACommentaireListe commentairesSupprimes = null;
75
	private ComboBox<Commentaire> commentairesSaisisComboBox = null;
83
	private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null;
76
	private Button commentairesBoutonSupprimer = null;
84
	private Button commentairesBoutonSupprimer = null;
Line 77... Line 85...
77
	private Button commentairesBoutonModifier = null;
85
	private Button commentairesBoutonModifier = null;
78
	
86
	
Line 271... Line 279...
271
			}   
279
			}   
272
		});
280
		});
273
		return bouton;
281
		return bouton;
274
	}
282
	}
Line 275... Line 283...
275
	
283
	
-
 
284
	private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() {
-
 
285
		
276
	private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() {
286
		ModelType modelTypeCommentaires = new ModelType();
-
 
287
		modelTypeCommentaires.setRoot("commentaires");
277
		ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>();
288
		modelTypeCommentaires.setTotalName("nbElements");
-
 
289
		modelTypeCommentaires.addField("ccm_id_commentaire");
-
 
290
		modelTypeCommentaires.addField("ccm_ce_pere");
-
 
291
		modelTypeCommentaires.addField("ccm_ce_projet");
-
 
292
		modelTypeCommentaires.addField("ccm_titre");
-
 
293
		modelTypeCommentaires.addField("ccm_texte");
-
 
294
		modelTypeCommentaires.addField("ccm_ponderation");
278
		commentairesSaisiesStore.add(new ArrayList<Commentaire>());
295
		modelTypeCommentaires.addField("ccm_mark_public");
279
		
296
		
280
		ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>();
297
		String displayNameCommentaires = "ccm_titre";
-
 
298
		ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null);
-
 
299
		
281
		comboBox.setWidth(200);
300
		final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires);
282
		comboBox.setEmptyText(i18nC.chercherCommentaireSaisi());
301
		commentairesCombo.getCombo().setTabIndex(tabIndex++);
-
 
302
		commentairesCombo.getCombo().setForceSelection(true);
283
		comboBox.setTriggerAction(TriggerAction.ALL);  
303
		
284
		comboBox.setEditable(true);
304
		commentairesCombo.getCombo().setValidator(new Validator() {
285
		comboBox.setDisplayField("titre");
305
			public String validate(Field<?> field, String value) {
286
		comboBox.setStore(commentairesSaisiesStore);
306
				String retour = null;
287
		comboBox.addKeyListener(new KeyListener() {
307
				if (field.getRawValue().equals("")) {
288
			public void componentKeyUp(ComponentEvent ce) {
308
					field.setValue(null);
-
 
309
				} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) {
289
				if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) {
310
					String contenuBrut = field.getRawValue();
-
 
311
					field.setValue(null);
290
					if (!ce.isNavKeyPress()) {
312
					field.setRawValue(contenuBrut);
291
						obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue());
-
 
292
					}
313
					retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
-
 
314
				}
293
				}
315
				return retour;
294
			}
316
			}
-
 
317
		});
295
		});
318
		
296
		comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
319
		commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
297
			public void handleEvent(BaseEvent be) {
320
			public void handleEvent(BaseEvent be) {
298
				if (commentairesSaisisComboBox.getValue() instanceof Commentaire) {
321
				if (commentairesSaisisComboBox.getValeur() instanceof ModelData) {
299
					Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue();
322
					Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur());
300
					ajouterDansGrille(commentaireSaisiSelectionnee);
323
					ajouterDansGrille(commentaireSaisiSelectionnee);
301
					commentairesSaisisComboBox.setValue(null);
324
					commentairesSaisisComboBox.getCombo().setValue(null);
302
				}
325
				}
303
			}
326
			}
-
 
327
		});
304
		});
328
		
305
		return comboBox;
329
		return commentairesCombo;
Line 306... Line 330...
306
	}
330
	}
307
	
331
	
308
	private void ajouterDansGrille(Commentaire commentaire) {
332
	private void ajouterDansGrille(Commentaire commentaire) {
Line 471... Line 495...
471
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
495
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
472
			rafraichirValeurListe(listeValeurs);
496
			rafraichirValeurListe(listeValeurs);
473
		} else if (nouvellesDonnees instanceof Information) {
497
		} else if (nouvellesDonnees instanceof Information) {
474
			Information info = (Information) nouvellesDonnees;
498
			Information info = (Information) nouvellesDonnees;
475
			rafraichirInformation(info);
499
			rafraichirInformation(info);
476
		} else if (nouvellesDonnees instanceof CommentaireListe) {
-
 
477
			CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees;
-
 
478
			rafraichirCommentairesListe(listeCommentaires);
-
 
479
		} else {
500
		} else {
480
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
501
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
481
		}
502
		}
Line 482... Line 503...
482
		
503
		
Line 545... Line 566...
545
			InfoLogger.display("Ajout des notes liées à la collection", info.toString());
566
			InfoLogger.display("Ajout des notes liées à la collection", info.toString());
546
			initialiserGestionCommentaires();
567
			initialiserGestionCommentaires();
547
		}
568
		}
548
	}
569
	}
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
	
570
	
556
	public void peupler() {
571
	public void peupler() {
557
		grille.getStore().removeAll();
572
		grille.getStore().removeAll();
558
		grille.getStore().add(collection.getCommentairesLiees().toList());
573
		grille.getStore().add(collection.getCommentairesLiees().toList());
559
		grille.recalculate();
574
		grille.recalculate();
Line 598... Line 613...
598
				mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
613
				mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
599
			}
614
			}
600
		}
615
		}
601
	}
616
	}
Line 602... Line -...
602
	
-
 
603
	private void obtenirCommentairesSaisis(String titre) {
-
 
604
		mediateur.selectionnerCommentaireParTitre(this, titre+"%", null); 
-
 
605
	}
-
 
606
	
617
	
607
	private void actualiserGrille() {
618
	private void actualiserGrille() {
608
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
619
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
609
			mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null);
620
			mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null);
610
		} else {
621
		} else {