Subversion Repositories eFlore/Applications.coel

Rev

Rev 551 | Rev 556 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 551 Rev 553
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.i18n.Constantes;
8
import org.tela_botanica.client.i18n.Constantes;
9
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Information;
11
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.Structure;
12
import org.tela_botanica.client.modeles.Structure;
13
import org.tela_botanica.client.modeles.StructureListe;
13
import org.tela_botanica.client.modeles.StructureListe;
14
import org.tela_botanica.client.modeles.Utilisateur;
14
import org.tela_botanica.client.modeles.Utilisateur;
15
 
15
 
16
import com.extjs.gxt.ui.client.Registry;
16
import com.extjs.gxt.ui.client.Registry;
17
import com.extjs.gxt.ui.client.Style.SortDir;
17
import com.extjs.gxt.ui.client.Style.SortDir;
18
import com.extjs.gxt.ui.client.event.ButtonEvent;
18
import com.extjs.gxt.ui.client.event.ButtonEvent;
19
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
19
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
20
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
20
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
21
import com.extjs.gxt.ui.client.event.SelectionListener;
21
import com.extjs.gxt.ui.client.event.SelectionListener;
22
import com.extjs.gxt.ui.client.store.ListStore;
22
import com.extjs.gxt.ui.client.store.ListStore;
23
import com.extjs.gxt.ui.client.widget.ContentPanel;
23
import com.extjs.gxt.ui.client.widget.ContentPanel;
24
import com.extjs.gxt.ui.client.widget.Info;
24
import com.extjs.gxt.ui.client.widget.Info;
25
import com.extjs.gxt.ui.client.widget.button.Button;
25
import com.extjs.gxt.ui.client.widget.button.Button;
26
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
26
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
27
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
27
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
28
import com.extjs.gxt.ui.client.widget.grid.Grid;
28
import com.extjs.gxt.ui.client.widget.grid.Grid;
29
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
29
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
30
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
30
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
31
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
31
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
32
import com.google.gwt.core.client.GWT;
32
import com.google.gwt.core.client.GWT;
33
 
33
 
34
public class StructureListeVue extends ContentPanel implements Rafraichissable {
34
public class StructureListeVue extends ContentPanel implements Rafraichissable {
35
	
35
	
36
	private Mediateur mediateur = null ;
36
	private Mediateur mediateur = null;
37
	private Constantes i18nC = null ;
37
	private Constantes i18nC = null;
38
 
-
 
39
	//private Table table = null;
38
 
40
	private Grid<Structure> grille = null;
39
	private Grid<Structure> grille = null;
41
	private ListStore<Structure> store = null;
40
	private ListStore<Structure> store = null;
42
	
41
	
43
	private Button modifier;
42
	private Button modifier;
44
	private Button supprimer;
43
	private Button supprimer;
45
	private Button ajouter;
44
	private Button ajouter;
46
 
45
 
47
	public StructureListeVue(Mediateur mediateurCourant) {
46
	public StructureListeVue(Mediateur mediateurCourant) {
48
		mediateur = mediateurCourant;
47
		mediateur = mediateurCourant;
49
		i18nC = mediateur.i18nC;
48
		i18nC = mediateur.i18nC;
-
 
49
		
50
		
50
		setHeading(i18nC.titreStructureListe());
51
		setLayout(new FitLayout());
51
		setLayout(new FitLayout());
52
		
52
		
53
		ToolBar toolBar = new ToolBar();
53
		ToolBar toolBar = new ToolBar();
54
		ajouter = new Button(i18nC.ajouter());
54
		ajouter = new Button(i18nC.ajouter());
55
		ajouter.setIcon(Images.ICONES.ajouter());
55
		ajouter.setIcon(Images.ICONES.ajouter());
56
		ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() {  
56
		ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() {  
57
			public void componentSelected(ButtonEvent ce) {  
57
			public void componentSelected(ButtonEvent ce) {  
58
				mediateur.clicAjouterStructure();
58
				mediateur.clicAjouterStructure();
59
			}
59
			}
60
		});
60
		});
61
		toolBar.add(ajouter);
61
		toolBar.add(ajouter);
62
 
62
 
63
		modifier = new Button(i18nC.modifier());
63
		modifier = new Button(i18nC.modifier());
64
		modifier.setIcon(Images.ICONES.formModifier());
64
		modifier.setIcon(Images.ICONES.formModifier());
65
		modifier.addSelectionListener(new SelectionListener<ButtonEvent>() {
65
		modifier.addSelectionListener(new SelectionListener<ButtonEvent>() {
66
			public void componentSelected(ButtonEvent ce) {
66
			public void componentSelected(ButtonEvent ce) {
67
				mediateur.clicModifierStructure(grille.getSelectionModel().getSelectedItems());
67
				mediateur.clicModifierStructure(grille.getSelectionModel().getSelectedItems());
68
			}
68
			}
69
		});
69
		});
70
		toolBar.add(modifier);
70
		toolBar.add(modifier);
71
		
71
		
72
		supprimer = new Button(i18nC.supprimer());
72
		supprimer = new Button(i18nC.supprimer());
73
		supprimer.setIcon(Images.ICONES.supprimer());
73
		supprimer.setIcon(Images.ICONES.supprimer());
74
		supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() {
74
		supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() {
75
			public void componentSelected(ButtonEvent ce) {
75
			public void componentSelected(ButtonEvent ce) {
76
				clicSupprimerStructure(grille.getSelectionModel().getSelectedItems());
76
				clicSupprimerStructure(grille.getSelectionModel().getSelectedItems());
77
			}
77
			}
78
		});
78
		});
79
		toolBar.add(supprimer);
79
		toolBar.add(supprimer);
80
 
80
 
81
		setTopComponent(toolBar);
81
		setTopComponent(toolBar);
82
 
82
 
83
		List<ColumnConfig> lstColumns = new ArrayList<ColumnConfig>();
83
		List<ColumnConfig> lstColumns = new ArrayList<ColumnConfig>();
84
		
-
 
85
		ColumnConfig ccVille = new ColumnConfig();
-
 
86
		ccVille.setId("ville");
-
 
87
		ccVille.setHeader("Ville");
-
 
88
		ccVille.setWidth(150);
-
 
89
		lstColumns.add(ccVille);
84
		lstColumns.add(new ColumnConfig("ville", "Ville", 150));
90
		
-
 
91
		ColumnConfig ccNom = new ColumnConfig();
85
		lstColumns.add(new ColumnConfig("nom", "Nom", 450));
92
		ccNom.setId("nom");
-
 
93
		ccNom.setHeader("Nom");
-
 
94
		ccNom.setWidth(450);
-
 
95
		lstColumns.add(ccNom);
-
 
96
		
-
 
97
		ColumnModel cmStructure = new ColumnModel(lstColumns);
86
		ColumnModel cmStructure = new ColumnModel(lstColumns);
98
		
87
		
99
		GridSelectionModel<Structure> gsmSelectionStructure = new GridSelectionModel<Structure>();
88
		GridSelectionModel<Structure> gsmSelectionStructure = new GridSelectionModel<Structure>();
100
		gsmSelectionStructure.addSelectionChangedListener(new SelectionChangedListener<Structure>() {
89
		gsmSelectionStructure.addSelectionChangedListener(new SelectionChangedListener<Structure>() {
101
			public void selectionChanged(SelectionChangedEvent<Structure> event) {
90
			public void selectionChanged(SelectionChangedEvent<Structure> event) {
102
				Structure m = (Structure) event.getSelectedItem();
91
				Structure m = (Structure) event.getSelectedItem();
103
				clicListe(m);
92
				clicListe(m);
104
			}
93
			}
105
		});
94
		});
106
		
95
		
107
		store = new ListStore<Structure>();
96
		store = new ListStore<Structure>();
108
		store.sort("ville", SortDir.ASC);
97
		store.sort("ville", SortDir.ASC);
109
 
98
 
110
		grille = new Grid<Structure>(store, cmStructure);
99
		grille = new Grid<Structure>(store, cmStructure);
111
		grille.setWidth("100%");
100
		grille.setWidth("100%");
112
		grille.setAutoExpandColumn("nom");
101
		grille.setAutoExpandColumn("nom");
113
		grille.setSelectionModel(gsmSelectionStructure);
102
		grille.setSelectionModel(gsmSelectionStructure);
114
		add(grille);
103
		add(grille);
115
	}
104
	}
116
 
105
 
117
	private void clicListe(Structure structure) {
106
	private void clicListe(Structure structure) {
118
		if (store.getCount() > 0) {
107
		if (store.getCount() > 0) {
119
			mediateur.clicListeStructure(structure);
108
			mediateur.clicListeStructure(structure);
120
		}
109
		}
121
	}
110
	}
122
	
111
	
123
	private void clicSupprimerStructure(List<Structure> structuresASupprimer) {
112
	private void clicSupprimerStructure(List<Structure> structuresASupprimer) {
124
		if (store.getCount() > 0) {
113
		if (store.getCount() > 0) {
125
			mediateur.clicSupprimerStructure(this, structuresASupprimer);
114
			mediateur.clicSupprimerStructure(this, structuresASupprimer);
126
		}
115
		}
127
	}
116
	}
128
 
117
 
129
	private void gererEtatActivationBouton() {
118
	private void gererEtatActivationBouton() {
130
		int nbreElementDuMagazin = store.getCount();
119
		int nbreElementDuMagazin = store.getCount();
131
		if (nbreElementDuMagazin == 0) {
120
		if (nbreElementDuMagazin == 0) {
132
			supprimer.disable();
121
			supprimer.disable();
133
			modifier.disable();
122
			modifier.disable();
134
		} else if (nbreElementDuMagazin > 0) {
123
		} else if (nbreElementDuMagazin > 0) {
135
			modifier.enable();
124
			modifier.enable();
136
			if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) {
125
			if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) {
137
				supprimer.enable();
126
				supprimer.enable();
138
			}
127
			}
139
		}
128
		}
140
	}
129
	}
141
	
130
	
142
	public void rafraichir(Object nouvelleDonnees) {
131
	public void rafraichir(Object nouvelleDonnees) {
143
		if (nouvelleDonnees instanceof StructureListe) {
132
		if (nouvelleDonnees instanceof StructureListe) {
144
			StructureListe structures = (StructureListe) nouvelleDonnees;
133
			StructureListe structures = (StructureListe) nouvelleDonnees;
145
			setHeading(i18nC.titreStructureListe());
-
 
146
			
134
			
147
			List<Structure> liste = (List<Structure>) structures.toList();
135
			List<Structure> liste = (List<Structure>) structures.toList();
148
			store.removeAll();
136
			store.removeAll();
149
			store.add(liste);
137
			store.add(liste);
150
 
138
 
151
			gererEtatActivationBouton();
139
			gererEtatActivationBouton();
152
			
140
			
153
			if (store.getCount() > 0) {
141
			if (store.getCount() > 0) {
154
				grille.getSelectionModel().select(0, false);
142
				grille.getSelectionModel().select(0, false);
155
			}
143
			}
156
			mediateur.actualiserPanneauCentral();
144
			mediateur.actualiserPanneauCentral();
157
 
145
 
158
		} else if (nouvelleDonnees instanceof Information) {
146
		} else if (nouvelleDonnees instanceof Information) {
159
			Information info = (Information) nouvelleDonnees;
147
			Information info = (Information) nouvelleDonnees;
160
			if (info.getType().equals("suppression_structure")) {
148
			if (info.getType().equals("suppression_structure")) {
161
				// Affichage d'un message d'information 
149
				// Affichage d'un message d'information 
162
				//GWT.log(info.toString(), null);
150
				//GWT.log(info.toString(), null);
163
				Info.display(i18nC.suppressionStructure(), info.toString().replaceAll("\n", "<br />"));
151
				Info.display(i18nC.suppressionStructure(), info.toString().replaceAll("\n", "<br />"));
164
 
152
 
165
				// Suppression des structures sélectionnées
153
				// Suppression des structures sélectionnées
166
				List<Structure> selectionStructure = grille.getSelectionModel().getSelectedItems();//table.getSelectedItems();
154
				List<Structure> selectionStructure = grille.getSelectionModel().getSelectedItems();//table.getSelectedItems();
167
				final int taille = selectionStructure.size();
155
				final int taille = selectionStructure.size();
168
				for (int i = 0; i < taille; i++) {
156
				for (int i = 0; i < taille; i++) {
169
					//GWT.log("INDEX :"+table.indexOf(selectionStructure.get(i)), null);
157
					//GWT.log("INDEX :"+table.indexOf(selectionStructure.get(i)), null);
170
					store.remove(selectionStructure.get(i));
158
					store.remove(selectionStructure.get(i));
171
				}
159
				}
172
				
160
				
173
				gererEtatActivationBouton();
161
				gererEtatActivationBouton();
174
			} else if (info.getType().equals("maj_utilisateur")) {
162
			} else if (info.getType().equals("maj_utilisateur")) {
175
				gererEtatActivationBouton();
163
				gererEtatActivationBouton();
176
			}
164
			}
177
		} else {
165
		} else {
178
			GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null);
166
			GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null);
179
		}
167
		}
180
		layout();
168
		layout();
181
	}
169
	}
182
}
170
}