Subversion Repositories eFlore/Applications.coel

Rev

Rev 831 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
806 jpm 1
package org.tela_botanica.client.vues;
2
 
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
 
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.modeles.UniteRangement;
11
import org.tela_botanica.client.modeles.Valeur;
12
import org.tela_botanica.client.modeles.ValeurListe;
13
 
14
import com.extjs.gxt.ui.client.event.Listener;
15
import com.extjs.gxt.ui.client.store.ListStore;
16
import com.extjs.gxt.ui.client.store.Store;
17
import com.extjs.gxt.ui.client.store.StoreEvent;
18
import com.extjs.gxt.ui.client.widget.ContentPanel;
19
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
20
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
21
import com.extjs.gxt.ui.client.widget.grid.Grid;
22
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
23
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
24
import com.google.gwt.core.client.GWT;
25
 
26
public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {
27
 
28
	private Grid<UniteRangement> uniteRangementGrille = null;
29
 
30
	public CollectionFormDescription(Formulaire formulaireCourrant) {
31
		initialiserOnglet(formulaireCourrant);
32
		setId("description");
33
		setText(Mediateur.i18nC.collectionDescription());
34
 
35
		creerRangement();
36
	}
37
 
38
 
39
	private void creerRangement() {
40
		ContentPanel panneauGrille = creerPanneauContenantGrilleRangement();
41
		uniteRangementGrille  = creerGrilleRangement();
42
		panneauGrille.add(uniteRangementGrille);
43
		add(panneauGrille);
44
	}
45
 
46
	private ContentPanel creerPanneauContenantGrilleRangement() {
47
		ContentPanel panneau = new ContentPanel();
48
 
49
		panneau.setHeading(i18nC.collectionUniteRangementTitre());
50
		panneau.setIcon(Images.ICONES.table());
51
		panneau.setLayout(new FitLayout());
52
		panneau.setFrame(true);
53
 
54
		return panneau;
55
	}
56
 
57
	private Grid<UniteRangement> creerGrilleRangement() {
58
		ListStore<UniteRangement> storeGrille = new ListStore<UniteRangement>();
59
		storeGrille.addListener(Store.Add, new Listener<StoreEvent<UniteRangement>>() {
60
			public void handleEvent(StoreEvent<UniteRangement> ce) {
61
				//actualiserEtatBoutonsBarreOutilsRangement();
62
			}
63
		});
64
		storeGrille.addListener(Store.Remove, new Listener<StoreEvent<UniteRangement>>() {
65
			public void handleEvent(StoreEvent<UniteRangement> ce) {
66
				//actualiserEtatBoutonsBarreOutilsRangement();
67
			}
68
		});
69
 
70
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
71
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteRangementType(), 150));
72
		colonnes.add(new ColumnConfig("nombre", i18nC.collectionUniteRangementNbre(), 50));
73
		colonnes.add(new ColumnConfig("precision", i18nC.collectionUniteRangementPrecision(), 50));
74
		colonnes.add(new ColumnConfig("format", i18nC.collectionUniteRangementFormat(), 100));
75
 
76
		GridSelectionModel<UniteRangement> modeleDeSelection = new GridSelectionModel<UniteRangement>();
77
 
78
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
79
 
80
		Grid<UniteRangement> grilleUniteRangement = new Grid<UniteRangement>(storeGrille, modeleDeColonnes);
81
		grilleUniteRangement.setHeight(300);
82
		grilleUniteRangement.setBorders(true);
83
		grilleUniteRangement.setSelectionModel(modeleDeSelection);
84
		grilleUniteRangement.getView().setForceFit(true);
85
		grilleUniteRangement.getView().setAutoFill(true);
86
		grilleUniteRangement.setAutoExpandColumn("type");
87
		grilleUniteRangement.setStripeRows(true);
88
		grilleUniteRangement.setTrackMouseOver(true);
89
 
90
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteRangement");
91
 
92
		return grilleUniteRangement;
93
	}
94
 
95
	public void rafraichir(Object nouvellesDonnees) {
96
		if (nouvellesDonnees instanceof ValeurListe) {
97
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
98
			rafraichirValeurListe(listeValeurs);
99
		} else {
100
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
101
		}
102
	}
103
 
104
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
105
		if (listeValeurs.getId().equals(config.getListeId("typeUniteRangement"))) {
106
			Iterator<String> it = listeValeurs.keySet().iterator();
107
			while (it.hasNext()) {
108
				Valeur valeur = listeValeurs.get(it.next());
109
				UniteRangement unite = new UniteRangement();
110
				unite.setType(valeur.getNom());
111
				uniteRangementGrille.getStore().add(unite);
112
			}
113
		} else {
114
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
115
		}
116
	}
117
}