Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1898 Rev 1918
Line 99... Line 99...
99
	private ChampComboBoxListeValeurs etatGeneralCombo = null;
99
	private ChampComboBoxListeValeurs etatGeneralCombo = null;
100
	private ChampComboBoxListeValeurs determinationCombo = null;
100
	private ChampComboBoxListeValeurs determinationCombo = null;
101
	private ChampMultiValeursMultiTypes specimenDegradationChp = null;
101
	private ChampMultiValeursMultiTypes specimenDegradationChp = null;
102
	private ChampMultiValeursMultiTypes presentationDegradationChp = null;
102
	private ChampMultiValeursMultiTypes presentationDegradationChp = null;
103
	private Text labelPresentationDegradationChp = null;
103
	private Text labelPresentationDegradationChp = null;
-
 
104
	private ChampNombre planchesHerbier = null;
-
 
105
	private ChampNombre nbEspeces = null;
Line 104... Line 106...
104
		
106
		
105
	public CollectionFormDescription(Formulaire formulaireCourrant) {
107
	public CollectionFormDescription(Formulaire formulaireCourrant) {
106
		initialiserOnglet(formulaireCourrant);
108
		initialiserOnglet(formulaireCourrant);
107
		setId(ID);
109
		setId(ID);
Line 444... Line 446...
444
			}   
446
			}   
445
		});
447
		});
446
		return bouton;
448
		return bouton;
447
	}
449
	}
Line 448... Line -...
448
	
-
 
449
	private ContentPanel creerUniteBase() {
-
 
450
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteBaseTitre());
-
 
451
		
-
 
452
		uniteBaseGrille  = creerGrilleUniteBase();
-
 
453
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteBase", null);
-
 
454
		panneauGrille.add(uniteBaseGrille);
-
 
455
		
-
 
456
		ToolBar barreOutils = creerBarreOutilsGrilleUniteBase();
-
 
457
		panneauGrille.setTopComponent(barreOutils);
-
 
458
		
-
 
459
		return panneauGrille;		
-
 
460
	}
-
 
461
	
-
 
462
	private EditorGrid<UniteBase> creerGrilleUniteBase() {
-
 
463
		ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
-
 
464
		
-
 
465
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
-
 
466
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
-
 
467
		
-
 
468
		NumberField champNombre = creerChampNombre();
-
 
469
		champNombre.setFormat(NumberFormat.getFormat("#"));
-
 
470
		CellEditor editeurNombre = new CellEditor(champNombre);
-
 
471
		
-
 
472
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
-
 
473
		nombreColonne.setEditor(editeurNombre);
-
 
474
		nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
-
 
475
		colonnes.add(nombreColonne);
-
 
476
		
-
 
477
		CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {  
-
 
478
			@Override  
-
 
479
			public Object preProcessValue(Object valeur) {  
-
 
480
				InterneValeur retour = null;
-
 
481
				if (valeur != null ) {
-
 
482
					if (precisionStore.findModel("nom", valeur.toString()) != null) {
-
 
483
						retour = precisionStore.findModel("nom", valeur.toString());
-
 
484
					} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
-
 
485
						retour = precisionStore.findModel("abr", valeur.toString());
-
 
486
					}
-
 
487
				}
-
 
488
				return retour;
-
 
489
			}  
-
 
490
 
-
 
491
			@Override  
-
 
492
			public Object postProcessValue(Object valeur) {  
-
 
493
				String retour = null;
-
 
494
				if (valeur != null ) {
-
 
495
					if (valeur instanceof InterneValeur) {
-
 
496
						InterneValeur valeurInterne = (InterneValeur) valeur;
-
 
497
						retour = valeurInterne.getNom();
-
 
498
					}
-
 
499
				}
-
 
500
				return retour;
-
 
501
			}  
-
 
502
		};
-
 
503
		
-
 
504
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
-
 
505
		precisionColonne.setEditor(editeurPrecision);
-
 
506
		colonnes.add(precisionColonne);
-
 
507
		
-
 
508
		TextField<String> formatChp = new TextField<String>();
-
 
509
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
-
 
510
		formatColonne.setEditor(new CellEditor(formatChp));
-
 
511
		colonnes.add(formatColonne);
-
 
512
		
-
 
513
		ColumnConfig partNombreColonne = new ColumnConfig("nombre_part", i18nC.collectionUniteNbre(), 50);
-
 
514
		partNombreColonne.setEditor(editeurNombre);
-
 
515
		partNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
-
 
516
		colonnes.add(partNombreColonne);
-
 
517
		
-
 
518
		ColumnConfig partPrecisionColonne = new ColumnConfig("precision_part", i18nC.collectionUnitePrecision(), 50);
-
 
519
		partPrecisionColonne.setEditor(editeurPrecision);
-
 
520
		colonnes.add(partPrecisionColonne);
-
 
521
		
-
 
522
		ColumnConfig spNombreColonne = new ColumnConfig("nombre_sp", i18nC.collectionUniteNbre(), 50);
-
 
523
		spNombreColonne.setEditor(editeurNombre);
-
 
524
		spNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
-
 
525
		colonnes.add(spNombreColonne);
-
 
526
		
-
 
527
		ColumnConfig spPrecisionColonne = new ColumnConfig("precision_sp", i18nC.collectionUnitePrecision(), 50);
-
 
528
		spPrecisionColonne.setEditor(editeurPrecision);
-
 
529
		colonnes.add(spPrecisionColonne);
-
 
530
		
-
 
531
		GridSelectionModel<UniteBase> modeleDeSelection = new GridSelectionModel<UniteBase>();
-
 
532
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
-
 
533
		modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(i18nC.collectionUniteBase(), 1, 4));
-
 
534
		modeleDeColonnes.addHeaderGroup(0, 4, new HeaderGroupConfig(i18nC.collectionUniteBasePart(), 1, 2));
-
 
535
		modeleDeColonnes.addHeaderGroup(0, 6, new HeaderGroupConfig(i18nC.collectionUniteBaseSp(), 1, 2));
-
 
536
		
-
 
537
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
-
 
538
		total.setHtml("type", "TOTAL");
-
 
539
		total.setSummaryType("nombre", SummaryType.SUM);
-
 
540
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
-
 
541
		total.setSummaryType("nombre_part", SummaryType.SUM);
-
 
542
		total.setSummaryFormat("nombre_part", NumberFormat.getFormat("#"));
-
 
543
		total.setSummaryType("nombre_sp", SummaryType.SUM);
-
 
544
		total.setSummaryFormat("nombre_sp", NumberFormat.getFormat("#"));
-
 
545
		modeleDeColonnes.addAggregationRow(total);
-
 
546
		
-
 
547
		EditorGrid<UniteBase> grilleUniteBase = new EditorGrid<UniteBase>(storeGrille, modeleDeColonnes);
-
 
548
		grilleUniteBase.setHeight(200);
-
 
549
		grilleUniteBase.setBorders(true);
-
 
550
		grilleUniteBase.setSelectionModel(modeleDeSelection);
-
 
551
		grilleUniteBase.getView().setForceFit(true);
-
 
552
		grilleUniteBase.getView().setAutoFill(true);
-
 
553
		grilleUniteBase.setAutoExpandColumn("type");
-
 
554
		grilleUniteBase.setStripeRows(true);
-
 
555
		grilleUniteBase.setTrackMouseOver(true);
-
 
556
		
-
 
557
		return grilleUniteBase;
-
 
558
	}
-
 
559
	
-
 
560
	private String collecterGrilleUniteBase() {
-
 
561
		String truk = "";
-
 
562
		int nbreUnite = uniteBaseGrille.getStore().getCount();
-
 
563
		for (int i = 0; i < nbreUnite; i++) {
-
 
564
			UniteBase unite = uniteBaseGrille.getStore().getAt(i);
-
 
565
			if (unite.getTypeAutre()) {
-
 
566
				truk += unite.getType();
-
 
567
			} else {
-
 
568
				truk += unite.getId();
-
 
569
			}
-
 
570
			truk += aDonnee.SEPARATEUR_TYPE_VALEUR;
-
 
571
			truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
-
 
572
			truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
-
 
573
			truk += unite.getFormat()+aDonnee.SEPARATEUR_DONNEES;
-
 
574
			truk += UtilNombre.formaterEnEntier(unite.getNombrePart())+aDonnee.SEPARATEUR_DONNEES;
-
 
575
			truk += getPrecisionAbr(unite.getPrecisionPart())+aDonnee.SEPARATEUR_DONNEES;
-
 
576
			truk += UtilNombre.formaterEnEntier(unite.getNombreSp())+aDonnee.SEPARATEUR_DONNEES;
-
 
577
			truk += getPrecisionAbr(unite.getPrecisionSp());
-
 
578
			truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
-
 
579
		}
-
 
580
		return truk;
-
 
581
	}
-
 
582
	
-
 
583
	private void peuplerGrilleUniteBase(String valeurTruk) {
-
 
584
		if (!UtilString.isEmpty(valeurTruk)) {
-
 
585
			HashMap<String,UniteBase> unitesEnregistrees = parserValeurUniteBase(valeurTruk);
-
 
586
			
-
 
587
			ArrayList<UniteBase> listeUniteMaj = new ArrayList<UniteBase>();
-
 
588
			int nbreUnite = uniteBaseGrille.getStore().getCount();
-
 
589
			for (int i = 0; i < nbreUnite; i++) {
-
 
590
				UniteBase uniteDansGrille = uniteBaseGrille.getStore().getAt(i);
-
 
591
				UniteBase uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
-
 
592
				if (uniteEnregistree != null) {
-
 
593
					uniteEnregistree.setType(uniteDansGrille.getType());
-
 
594
					listeUniteMaj.add(uniteEnregistree);
-
 
595
				} else {
-
 
596
					listeUniteMaj.add(uniteDansGrille);
-
 
597
				}
-
 
598
			}
-
 
599
			
-
 
600
			Iterator<String> it = unitesEnregistrees.keySet().iterator();
-
 
601
			while (it.hasNext()) {
-
 
602
				String cle = it.next();
-
 
603
				if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) {
-
 
604
					UniteBase uniteAutreEnregistree = unitesEnregistrees.get(cle);
-
 
605
					listeUniteMaj.add(uniteAutreEnregistree);
-
 
606
				}
-
 
607
			}
-
 
608
			
-
 
609
			uniteBaseGrille.getStore().removeAll();
-
 
610
			uniteBaseGrille.getStore().add(listeUniteMaj);
-
 
611
			layout();
-
 
612
		}
-
 
613
	}
-
 
614
	
-
 
615
	public static HashMap<String,UniteBase> parserValeurUniteBase(String valeurTruk) {
-
 
616
		HashMap<String,UniteBase> unitesEnregistrees = new HashMap<String,UniteBase>();
-
 
617
		if (!UtilString.isEmpty(valeurTruk)) {
-
 
618
			String[] unites = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
-
 
619
			for (int i = 0; i < unites.length; i++) {
-
 
620
				String[] uniteTypeIdDonnees = unites[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
-
 
621
				String uniteChaineDonnees = uniteTypeIdDonnees[1];
-
 
622
				String[] uniteDonnees = uniteChaineDonnees.split(Pattern.quote(aDonnee.SEPARATEUR_DONNEES));
-
 
623
				
-
 
624
				UniteBase uniteBase = new UniteBase();
-
 
625
				if (uniteDonnees.length > 0) {
-
 
626
					uniteBase.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
-
 
627
				}
-
 
628
				if (uniteDonnees.length > 1) {
-
 
629
					uniteBase.setPrecision(getPrecisionNom(uniteDonnees[1]));
-
 
630
				}
-
 
631
				if (uniteDonnees.length > 2) {
-
 
632
					uniteBase.setFormat(uniteDonnees[2]);
-
 
633
				}
-
 
634
				if (uniteDonnees.length > 3) {
-
 
635
					uniteBase.setNombrePart(UtilString.formaterEnEntier(uniteDonnees[3]));
-
 
636
				}
-
 
637
				if (uniteDonnees.length > 4) {
-
 
638
					uniteBase.setPrecisionPart(getPrecisionNom(uniteDonnees[4]));
-
 
639
				}
-
 
640
				if (uniteDonnees.length > 5) {
-
 
641
					uniteBase.setNombreSp(UtilString.formaterEnEntier(uniteDonnees[5]));
-
 
642
				}
-
 
643
				if (uniteDonnees.length > 6) {
-
 
644
					uniteBase.setPrecisionSp(getPrecisionNom(uniteDonnees[6]));
-
 
645
				}
-
 
646
				
-
 
647
				if (uniteTypeIdDonnees[0].matches("[0-9]+")) {
-
 
648
					uniteBase.setId(uniteTypeIdDonnees[0]);
-
 
649
					uniteBase.setTypeAutre(false);
-
 
650
					unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteBase);
-
 
651
				} else {
-
 
652
					uniteBase.setType(uniteTypeIdDonnees[0]);
-
 
653
					uniteBase.setTypeAutre(true);
-
 
654
					String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i;
-
 
655
					uniteBase.setId(id);
-
 
656
					unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteBase);					
-
 
657
				}
-
 
658
			}
-
 
659
		}
-
 
660
		return unitesEnregistrees;
-
 
661
	}
-
 
662
	
-
 
663
	private ToolBar creerBarreOutilsGrilleUniteBase() {
-
 
664
		ToolBar barreOutils = new ToolBar();  
-
 
665
		
-
 
666
		Button ajouterBouton = creerBoutonAjouterUniteBase();
-
 
667
		barreOutils.add(ajouterBouton);
-
 
668
		
-
 
669
		barreOutils.add(new SeparatorToolItem());
-
 
670
		
-
 
671
		Button supprimerBouton = creerBoutonSupprimerUniteBase();
-
 
672
		barreOutils.add(supprimerBouton);		
-
 
673
		
-
 
674
		return barreOutils;
-
 
675
	}
-
 
676
	
-
 
677
	private Button creerBoutonAjouterUniteBase() {
-
 
678
		Button bouton = new Button(i18nC.ajouter());
-
 
679
		bouton.setIcon(Images.ICONES.ajouter());
-
 
680
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
-
 
681
			@Override
-
 
682
			public void componentSelected(ButtonEvent ce) {
-
 
683
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteBaseSaisirType());
-
 
684
					box.addCallback(new Listener<MessageBoxEvent>() {
-
 
685
					public void handleEvent(MessageBoxEvent be) {
-
 
686
						if (!UtilString.isEmpty(be.getValue()) && !be.getValue().matches("[0-9]+")) {
-
 
687
							final UniteBase unite = new UniteBase();
-
 
688
							unite.setType(be.getValue());
-
 
689
							unite.setTypeAutre(true);
-
 
690
							uniteBaseGrille.getStore().add(unite);
-
 
691
						} else {
-
 
692
							InfoLogger.display("Information", "Vous ne pouvez pas saisir de valeur vide ou numérique");
-
 
693
						}
-
 
694
					}
-
 
695
				});
-
 
696
			}
-
 
697
		});
-
 
698
		return bouton;
-
 
699
	}
-
 
700
	
-
 
701
	private Button creerBoutonSupprimerUniteBase() {
-
 
702
		Button bouton = new Button(i18nC.supprimer());
-
 
703
		bouton.setIcon(Images.ICONES.supprimer());
-
 
704
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
-
 
705
			@Override
-
 
706
			public void componentSelected(ButtonEvent ce) {
-
 
707
				UniteBase uniteBaseSelectionnee = uniteBaseGrille.getSelectionModel().getSelectedItem();
-
 
708
				if (uniteBaseSelectionnee == null) {
-
 
709
					InfoLogger.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteBase()));
-
 
710
				} else if (uniteBaseSelectionnee.getTypeAutre() == false) {
-
 
711
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteBaseAjoute());
-
 
712
				} else {
-
 
713
					uniteBaseGrille.getStore().remove(uniteBaseSelectionnee);
-
 
714
				}
-
 
715
			}   
-
 
716
		});
-
 
717
		return bouton;
-
 
718
	}
-
 
719
	
450
	
720
	private void creerFieldsetConservation() {
451
	private void creerFieldsetConservation() {
721
		FieldSet conservationFieldSet = new FieldSet();
452
		FieldSet conservationFieldSet = new FieldSet();
722
		conservationFieldSet.setHeadingHtml(i18nC.collectionTitreConservation());
453
		conservationFieldSet.setHeadingHtml(i18nC.collectionTitreConservation());
723
		conservationFieldSet.setCollapsible(true);
454
		conservationFieldSet.setCollapsible(true);
Line 797... Line 528...
797
		etatUniteRangementCombo.setTrie("id_valeur");
528
		etatUniteRangementCombo.setTrie("id_valeur");
798
		etatUniteRangementCombo.setWidth(300);
529
		etatUniteRangementCombo.setWidth(300);
799
		etatTypesUniteFieldSet.add(etatUniteRangementCombo);
530
		etatTypesUniteFieldSet.add(etatUniteRangementCombo);
Line 800... Line 531...
800
		
531
		
-
 
532
		etatTypesUniteFieldSet.add(creerUniteRangement());
-
 
533
				
-
 
534
		planchesHerbier = new ChampNombre();
-
 
535
		planchesHerbier.setFieldLabel(i18nC.collectionNbPlanchesHerbier());
-
 
536
		
-
 
537
		nbEspeces = new ChampNombre();
-
 
538
		nbEspeces.setFieldLabel(i18nC.collectionNbEspeces());
801
		etatTypesUniteFieldSet.add(creerUniteRangement());
539
		
-
 
540
		etatTypesUniteFieldSet.add(planchesHerbier);
Line 802... Line 541...
802
		etatTypesUniteFieldSet.add(creerUniteBase());
541
		etatTypesUniteFieldSet.add(nbEspeces);
Line 803... Line 542...
803
		
542
		
804
		add(etatTypesUniteFieldSet);
543
		add(etatTypesUniteFieldSet);
Line 853... Line 592...
853
			}
592
			}
Line 854... Line 593...
854
			
593
			
855
			peuplerGrilleUniteRangement(collectionBotanique.getUniteRangement());
594
			peuplerGrilleUniteRangement(collectionBotanique.getUniteRangement());
Line -... Line 595...
-
 
595
			etatUniteRangementCombo.peupler(collectionBotanique.getUniteRangementEtat());
-
 
596
			
-
 
597
			
-
 
598
			if(!collectionBotanique.getNbPlanchesHerbiers().isEmpty()) {
-
 
599
				planchesHerbier.setValue((Integer.parseInt(collectionBotanique.getNbPlanchesHerbiers())));
-
 
600
			}
856
			etatUniteRangementCombo.peupler(collectionBotanique.getUniteRangementEtat());
601
			
-
 
602
			if(!collectionBotanique.getNbEspeces().isEmpty()) {
Line 857... Line 603...
857
			
603
				nbEspeces.setValue((Integer.parseInt(collectionBotanique.getNbEspeces())));
858
			peuplerGrilleUniteBase(collectionBotanique.getUniteBase());
604
			}
Line 859... Line 605...
859
			
605
			
Line 887... Line 633...
887
			}
633
			}
Line 888... Line 634...
888
			
634
			
889
			collectionBotaniqueCollectee.setUniteRangement(collecterGrilleUniteRangement());
635
			collectionBotaniqueCollectee.setUniteRangement(collecterGrilleUniteRangement());
Line -... Line 636...
-
 
636
			collectionBotaniqueCollectee.setUniteRangementEtat(etatUniteRangementCombo.getValeur());
890
			collectionBotaniqueCollectee.setUniteRangementEtat(etatUniteRangementCombo.getValeur());
637
			
Line 891... Line 638...
891
			
638
			collectionBotaniqueCollectee.setNbPlanchesHerbiers(planchesHerbier.getValue()+"");
892
			collectionBotaniqueCollectee.setUniteBase(collecterGrilleUniteBase());
639
			collectionBotaniqueCollectee.setNbEspeces(nbEspeces.getValue()+"");
Line 893... Line 640...
893
			
640