Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 997 Rev 1031
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;
-
 
4
import java.util.HashMap;
-
 
5
import java.util.Iterator;
3
import java.util.ArrayList;
Line 6... Line 4...
6
import java.util.List;
4
import java.util.List;
-
 
5
 
7
 
6
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
9
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Information;
10
import org.tela_botanica.client.modeles.Information;
Line 22... Line 21...
22
import org.tela_botanica.client.vues.Formulaire;
21
import org.tela_botanica.client.vues.Formulaire;
23
import org.tela_botanica.client.vues.FormulaireBarreValidation;
22
import org.tela_botanica.client.vues.FormulaireBarreValidation;
24
import org.tela_botanica.client.vues.FormulaireOnglet;
23
import org.tela_botanica.client.vues.FormulaireOnglet;
25
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
24
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
Line -... Line 25...
-
 
25
 
26
 
26
import com.extjs.gxt.ui.client.Style.SortDir;
27
import com.extjs.gxt.ui.client.event.BaseEvent;
27
import com.extjs.gxt.ui.client.event.BaseEvent;
28
import com.extjs.gxt.ui.client.event.ButtonEvent;
28
import com.extjs.gxt.ui.client.event.ButtonEvent;
29
import com.extjs.gxt.ui.client.event.ComponentEvent;
29
import com.extjs.gxt.ui.client.event.ComponentEvent;
30
import com.extjs.gxt.ui.client.event.Events;
30
import com.extjs.gxt.ui.client.event.Events;
Line 62... Line 62...
62
	private static int idGenere = 1;
62
	private static int idGenere = 1;
Line 63... Line 63...
63
	
63
	
64
	private ContentPanel panneauPrincipal = null;
64
	private ContentPanel panneauPrincipal = null;
65
	private ToolBar barreOutils = null;
65
	private ToolBar barreOutils = null;
66
	private EditorGrid<CollectionACommentaire> grille;
66
	private EditorGrid<CollectionACommentaire> grille;
Line 67... Line 67...
67
	private ComboBox<Valeur> typeCombo = null;
67
	private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
68
	
68
	
69
	private CollectionACommentaireListe commentairesAjoutees = null;
69
	private CollectionACommentaireListe commentairesAjoutees = null;
70
	private CollectionACommentaireListe commentairesSupprimees = null;
70
	private CollectionACommentaireListe commentairesSupprimees = null;
Line 388... Line 388...
388
		
388
		
389
		return grille;
389
		return grille;
Line 390... Line 390...
390
	}
390
	}
391
	
391
	
392
	private ColumnConfig creerColonneType() {
-
 
393
		typeCombo = new ComboBox<Valeur>();
-
 
394
		typeCombo.setForceSelection(true);
392
	private ColumnConfig creerColonneType() {
-
 
393
		typeCombo = new ChampComboBoxMultiSelect<Valeur>();
395
		typeCombo.setTriggerAction(TriggerAction.ALL);
394
		typeCombo.setDisplayField("nom");
396
		typeCombo.setDisplayField("nom");
395
		typeCombo.setValueField("id_valeur");
-
 
396
		typeCombo.setStore(new ListStore<Valeur>());
Line 397... Line 397...
397
		typeCombo.setStore(new ListStore<Valeur>());
397
		typeCombo.setEditable(false);
-
 
398
		typeCombo.setForceSelection(true);
398
		typeCombo.setEditable(false);
399
		
399
		
400
		CellEditor typeEditeur = new CellEditor(typeCombo) {  
400
		CellEditor typeEditeur = new CellEditor(typeCombo) {  
401
			@SuppressWarnings("unchecked")
401
			@Override  
402
			@Override  
402
			public Object preProcessValue(Object valeur) {  
403
			public Object preProcessValue(Object valeur) {  
403
				Valeur retour = null;
-
 
404
				if (valeur != null ) {
-
 
405
					Debug.log(""+valeur.toString());
-
 
406
					if (typeCombo.getStore().findModel("nom", valeur.toString()) != null) {
-
 
407
						retour = typeCombo.getStore().findModel("nom", valeur.toString());
-
 
408
					} else if (typeCombo.getStore().findModel("abr", valeur.toString()) != null) {
404
				Valeur retour = new Valeur();
409
						retour = typeCombo.getStore().findModel("abr", valeur.toString());
405
				if (valeur != null ) {
410
					} else if (typeCombo.getStore().findModel("id_valeur", valeur.toString()) != null) {
406
					if (valeur instanceof String) {
411
						retour = typeCombo.getStore().findModel("id_valeur", valeur.toString());
407
						((ChampComboBoxMultiSelect<Valeur>) getField()).peuplerAvecTexte(valeur.toString());
412
					}
408
					}
Line 413... Line 409...
413
				}
409
				}
414
				return retour;
410
				return retour;
415
			}  
411
			}  
416
 
412
 
417
			@Override  
-
 
418
			public Object postProcessValue(Object valeur) {  
-
 
419
				String retour = null;
413
			@Override  
420
				if (valeur != null ) {
-
 
421
					if (valeur instanceof Valeur) {
-
 
422
						Valeur valeurOntologie = (Valeur) valeur;
414
			public Object postProcessValue(Object valeur) {  
-
 
415
				String retour = null;
423
						retour = valeurOntologie.getNom();
416
				if (getField().getRawValue() != null ) {
424
						Debug.log("Retour:"+retour);
417
					retour = getField().getRawValue();
425
					}
418
				}
426
				}
419
				Debug.log("Post : "+retour);
427
				return retour;  
420
				return retour;  
428
			}  
421
			}  
429
		};
422
		};
430
		
423
 
431
		GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
424
		GridCellRenderer<CollectionACommentaire> typeRendu = new GridCellRenderer<CollectionACommentaire>() {
432
			@Override
425
			@Override
433
			public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
-
 
434
				String typeOrigine = model.get("_type_");
-
 
435
				String type = typeOrigine;
-
 
436
				if (typeCombo.getStore() != null && typeOrigine != null && typeOrigine.matches("[0-9"+aDonnee.SEPARATEUR_VALEURS+"]+")) {
-
 
437
					type = "";
-
 
438
					String[] valeurs = typeOrigine.split(aDonnee.SEPARATEUR_VALEURS);
-
 
439
					int nbreValeurs = valeurs.length;
-
 
440
					int indexAvtDernier = nbreValeurs - 1;
-
 
441
					if (nbreValeurs > 0)	{
-
 
442
						for (int i = 0; i < nbreValeurs; i++)	{
-
 
443
							String valeur = valeurs[i];
426
			public String render(CollectionACommentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<CollectionACommentaire> store, Grid<CollectionACommentaire> grid) {
444
							if (valeur.matches("^[0-9]+$"))	{
-
 
445
								if (valeur.equals("0")) {
-
 
446
									valeur = "";
427
				String type = model.get("_type_");
447
								} else if (typeCombo.getStore() != null) {
428
				Debug.log("Initialisation type origine :"+type);
448
									ListStore<Valeur> ontologie = typeCombo.getStore();
-
 
449
									Valeur valeurOntologie = ontologie.findModel("id_valeur", valeur);
-
 
450
									if (valeurOntologie != null) {
-
 
451
										valeur = valeurOntologie.getNom();
-
 
452
									}
-
 
453
								}
-
 
454
							}
-
 
455
							if (i != indexAvtDernier) {
-
 
456
								type += valeur+", ";
-
 
457
							} else {
-
 
458
								type += valeur;
429
				if (typeCombo.getStore() != null && type != null && (type.matches("[0-9]+") || type.contains(aDonnee.SEPARATEUR_VALEURS))) {
459
							}
-
 
460
						}
430
					type = typeCombo.formaterIdentifiantsEnTexte(type);
461
					}
431
					model.set("_type_", type);
462
				}
432
					Debug.log("Initialisation :"+type);
463
				model.set("_type_", type);
433
				}
464
				return type;
434
				return type;
Line 517... Line 487...
517
		}
487
		}
518
	}
488
	}
Line 519... Line 489...
519
	
489
	
520
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
490
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
521
		if (listeValeurs.getId().equals(config.getListeId("typeCommentaireCollection"))) {
491
		if (listeValeurs.getId().equals(config.getListeId("typeCommentaireCollection"))) {
-
 
492
			List<Valeur> liste = listeValeurs.toList();
-
 
493
			if (liste.size() > 0) {
-
 
494
				ListStore<Valeur> store = typeCombo.getStore();
-
 
495
				store.removeAll();
-
 
496
				store.add(liste);
-
 
497
				store.sort("nom", SortDir.ASC);
-
 
498
				typeCombo.setStore(store);
522
			Formulaire.rafraichirComboBox(listeValeurs, typeCombo);
499
			}
523
			chargementTypesOk = true;
500
			chargementTypesOk = true;
524
		} else {
501
		} else {
525
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
502
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
526
		}
503
		}
Line 575... Line 552...
575
	}
552
	}
Line 576... Line 553...
576
	
553
	
577
	public void peupler() {
554
	public void peupler() {
578
		grille.getStore().removeAll();
555
		grille.getStore().removeAll();
-
 
556
		grille.getStore().add(collection.getCommentairesLiees().toList());
579
		grille.getStore().add(collection.getCommentairesLiees().toList());
557
		grille.recalculate();
580
		layout();
558
		layout();
581
		Info.display(i18nC.chargementCommentaire(), i18nC.ok());
559
		Info.display(i18nC.chargementCommentaire(), i18nC.ok());
Line 582... Line 560...
582
	}
560
	}
Line 611... Line 589...
611
		}
589
		}
612
	}
590
	}
Line 613... Line 591...
613
	
591
	
614
	private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
592
	private void corrigerChampsGrille(CollectionACommentaire relationCollectionACommentaire) {
615
		String type = relationCollectionACommentaire.get("_type_");
-
 
616
		String champModele = "nom";
-
 
617
		if (type.matches("[0-9]+")) {
593
		String type = relationCollectionACommentaire.get("_type_");
618
			champModele = "id_valeur";
-
 
619
		}
-
 
620
		if (typeCombo.getStore().findModel(champModele, type) != null) {
-
 
621
			String idType = typeCombo.getStore().findModel(champModele, type).getId();
594
		typeCombo.peuplerAvecTexte(type);
622
			relationCollectionACommentaire.setType(idType);
-
 
623
		}
595
		relationCollectionACommentaire.setType(typeCombo.collecter());
Line 624... Line 596...
624
	}
596
	}
625
 
597
 
626
	public void soumettre() {
598
	public void soumettre() {