Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 246 Rev 247
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
 
3
 
4
 
4
 
5
import java.util.HashMap;
5
import java.util.HashMap;
6
import java.util.Iterator;
6
import java.util.Iterator;
7
 
7
 
8
 
8
 
9
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.RegistreId;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Personne;
11
import org.tela_botanica.client.modeles.Personne;
12
import org.tela_botanica.client.modeles.PersonneListe;
12
import org.tela_botanica.client.modeles.PersonneListe;
13
import org.tela_botanica.client.modeles.StructureListe;
13
import org.tela_botanica.client.modeles.StructureListe;
14
 
14
 
15
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Registry;
16
import com.extjs.gxt.ui.client.Style.Scroll;
16
import com.extjs.gxt.ui.client.Style.Scroll;
17
import com.extjs.gxt.ui.client.event.ComponentEvent;
17
import com.extjs.gxt.ui.client.event.ComponentEvent;
18
import com.extjs.gxt.ui.client.event.KeyListener;
18
import com.extjs.gxt.ui.client.event.KeyListener;
19
import com.extjs.gxt.ui.client.util.Params;
19
import com.extjs.gxt.ui.client.util.Params;
20
import com.extjs.gxt.ui.client.widget.ContentPanel;
20
import com.extjs.gxt.ui.client.widget.ContentPanel;
21
import com.extjs.gxt.ui.client.widget.Html;
21
import com.extjs.gxt.ui.client.widget.Html;
22
import com.extjs.gxt.ui.client.widget.LayoutContainer;
22
import com.extjs.gxt.ui.client.widget.LayoutContainer;
23
import com.extjs.gxt.ui.client.widget.PagingToolBar;
23
import com.extjs.gxt.ui.client.widget.PagingToolBar;
24
import com.extjs.gxt.ui.client.widget.TabItem;
24
import com.extjs.gxt.ui.client.widget.TabItem;
25
import com.extjs.gxt.ui.client.widget.TabPanel;
25
import com.extjs.gxt.ui.client.widget.TabPanel;
26
import com.extjs.gxt.ui.client.widget.form.Field;
26
import com.extjs.gxt.ui.client.widget.form.Field;
27
import com.extjs.gxt.ui.client.widget.form.FieldSet;
27
import com.extjs.gxt.ui.client.widget.form.FieldSet;
28
import com.extjs.gxt.ui.client.widget.form.LabelField;
28
import com.extjs.gxt.ui.client.widget.form.LabelField;
29
import com.extjs.gxt.ui.client.widget.form.TextArea;
29
import com.extjs.gxt.ui.client.widget.form.TextArea;
30
import com.extjs.gxt.ui.client.widget.form.TextField;
30
import com.extjs.gxt.ui.client.widget.form.TextField;
31
import com.extjs.gxt.ui.client.widget.layout.CenterLayout;
31
import com.extjs.gxt.ui.client.widget.layout.CenterLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
32
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
33
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
33
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
34
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
34
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
35
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
35
import com.extjs.gxt.ui.client.widget.layout.TableLayout;
36
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
36
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
37
import com.extjs.gxt.ui.client.widget.toolbar.ToolItem;
37
import com.extjs.gxt.ui.client.widget.toolbar.ToolItem;
38
import com.google.gwt.dom.client.LinkElement;
38
import com.google.gwt.dom.client.LinkElement;
39
import com.google.gwt.dom.client.NodeList;
39
import com.google.gwt.dom.client.NodeList;
40
import com.google.gwt.user.client.Window;
40
import com.google.gwt.user.client.Window;
41
import com.google.gwt.user.client.ui.Hyperlink;
41
import com.google.gwt.user.client.ui.Hyperlink;
42
import com.google.gwt.user.client.ui.Image;
42
import com.google.gwt.user.client.ui.Image;
43
import com.google.gwt.user.client.ui.Label;
43
import com.google.gwt.user.client.ui.Label;
44
import com.google.gwt.user.client.ui.Panel;
44
import com.google.gwt.user.client.ui.Panel;
45
import com.google.gwt.user.client.ui.SimplePanel;
45
import com.google.gwt.user.client.ui.SimplePanel;
46
import com.google.gwt.user.client.ui.TextBox;
46
import com.google.gwt.user.client.ui.TextBox;
47
import com.google.gwt.user.client.ui.Widget;
47
import com.google.gwt.user.client.ui.Widget;
48
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
48
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
49
 
49
 
50
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
50
public class PersonneDetailPanneauVue extends TabPanel implements Rafraichissable {
51
 
51
 
52
	// Le panneau détail se compose de formulaires tabulés
52
	// Le panneau détail se compose de formulaires tabulés
53
	
53
	
54
	// Onglet 1 : identite & contact
54
	// Onglet 1 : identite & contact
55
	private TabItem tabIdentite;
55
	private TabItem tabIdentite;
56
	
56
	
57
	private ContentPanel panneauIdentite;
57
	private ContentPanel panneauIdentite;
58
	private ContentPanel panneauImage;
58
	private ContentPanel panneauImage;
59
	
59
	
60
	private FieldSet fsIdentite;
60
	private FieldSet fsIdentite;
61
	private FieldSet fsContact;
61
	private FieldSet fsContact;
62
	
62
	
63
	// Onglet 2 : Adresses
63
	// Onglet 2 : Adresses
64
	private TabItem tabAdresse;
64
	private TabItem tabAdresse;
65
	private FieldSet fsAdressePerso;
65
	private FieldSet fsAdressePerso;
66
		// contient : adresse perso / adresse pro
66
		// contient : adresse perso / adresse pro
67
	
67
	
68
	// Onglet 3 : Informations naturalistes
68
	// Onglet 3 : Informations naturalistes
69
	private TabItem tabInfosNat;
69
	private TabItem tabInfosNat;
70
	
70
	
71
	// > Se baser sur la présentation thunderBird
71
	// > Se baser sur la présentation thunderBird
72
	
72
	
73
	
73
	
74
	public PersonneDetailPanneauVue() {
74
	public PersonneDetailPanneauVue() {
75
		
75
		
76
		//Constructeur de la classe
76
		//Constructeur de la classe
77
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
77
		Registry.register(RegistreId.PANNEAU_PERSONNE_DETAIL, this);
78
		setLayout(new FitLayout());
78
		setLayout(new FitLayout());
79
		
79
		
80
		tabIdentite = new TabItem("Identité");
80
		tabIdentite = new TabItem("Identité");
81
		TableLayout tLayout = new TableLayout(2);
81
		TableLayout tLayout = new TableLayout(2);
82
		tabIdentite.setLayout(tLayout);
82
		tabIdentite.setLayout(tLayout);
83
		tabIdentite.setScrollMode(Scroll.AUTO);
83
		tabIdentite.setScrollMode(Scroll.AUTO);
84
		
84
		
85
		panneauIdentite = new ContentPanel();
85
		panneauIdentite = new ContentPanel();
86
		panneauIdentite.setWidth("400px");
86
		panneauIdentite.setWidth("400px");
87
		panneauIdentite.setHeaderVisible(false);
87
		panneauIdentite.setHeaderVisible(false);
88
		panneauIdentite.setBorders(false);
88
		panneauIdentite.setBorders(false);
89
		panneauIdentite.setBodyBorder(false);
89
		panneauIdentite.setBodyBorder(false);
90
		panneauImage = new ContentPanel();
90
		panneauImage = new ContentPanel();
91
		panneauImage.setWidth("350px");
91
		panneauImage.setWidth("350px");
92
		panneauImage.setBorders(false);
92
		panneauImage.setBorders(false);
93
		panneauImage.setBodyBorder(false);
93
		panneauImage.setBodyBorder(false);
94
		panneauImage.setHeaderVisible(false);
94
		panneauImage.setHeaderVisible(false);
95
		panneauImage.setStyleName("conteneur-image-centre");
95
		panneauImage.setStyleName("conteneur-image-centre");
96
		
96
		
97
		tabIdentite.add(panneauIdentite);
97
		tabIdentite.add(panneauIdentite);
98
		tabIdentite.add(panneauImage);
98
		tabIdentite.add(panneauImage);
99
		
99
		
100
		fsIdentite = new FieldSet();
100
		fsIdentite = new FieldSet();
101
		fsIdentite.setLayout(new FormLayout());
101
		fsIdentite.setLayout(new FormLayout());
102
		
102
		
103
		
103
		
104
		fsContact = new FieldSet();
104
		fsContact = new FieldSet();
105
		fsContact.setLayout(new FormLayout());
105
		fsContact.setLayout(new FormLayout());
106
		
106
		
107
		this.add(tabIdentite);
107
		this.add(tabIdentite);
108
		
108
		
109
		//Onglet Adresse:
109
		//Onglet Adresse:
110
		tabAdresse = new TabItem("Adresse");
110
		tabAdresse = new TabItem("Adresse");
111
		fsAdressePerso = new FieldSet();
111
		fsAdressePerso = new FieldSet();
112
		fsAdressePerso.setLayout(new FormLayout());
112
		fsAdressePerso.setLayout(new FormLayout());
113
		
113
		
114
		this.add(tabAdresse);
114
		this.add(tabAdresse);
115
		
115
		
116
		//Onglet info naturalistes
116
		//Onglet info naturalistes
117
		tabInfosNat = new TabItem("Informations naturalistes");
117
		tabInfosNat = new TabItem("Informations naturalistes");
118
		
118
		
119
		this.add(tabInfosNat);
119
		this.add(tabInfosNat);
120
		
120
		
121
	}
121
	}
122
 
122
 
123
	public void afficherDetailPersonne(Personne personne) {
123
	public void afficherDetailPersonne(Personne personne) {
124
		if (personne != null) {
124
		if (personne != null) {
125
			
125
			
126
			
126
			
127
			//MAJ Identité : Configurer les fieldSet
127
			//MAJ Identité : Configurer les fieldSet
128
			panneauIdentite.removeAll();
128
			panneauIdentite.removeAll();
129
			panneauImage.removeAll();
129
			panneauImage.removeAll();
130
			
130
			
131
			fsIdentite.setHeading("Identité");
131
			fsIdentite.setHeading("Identité");
132
			fsIdentite.setWidth("350px");
132
			fsIdentite.setWidth("350px");
133
			
133
			
134
			fsContact.setHeading("Contact");
134
			fsContact.setHeading("Contact");
135
			fsContact.setWidth("350px");
135
			fsContact.setWidth("350px");
136
			
136
			
137
			
137
			
138
			panneauIdentite.add(fsIdentite);
138
			panneauIdentite.add(fsIdentite);
139
			
139
			
140
			//La personne peut avoir un logo
140
			//La personne peut avoir un logo
141
			String logoUrl = (String) personne.obtenirValeurChamp("truk_logo");
141
			String logoUrl = (String) personne.obtenirValeurChamp("truk_logo");
142
			
142
			
143
			if ((logoUrl!=null)&&(!logoUrl.trim().equals("")))	{
143
			if ((logoUrl!=null)&&(!logoUrl.trim().equals("")))	{
144
				//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
144
				//Si c'est le cas, on l'affiche sur la même ligne que fsIdentité
145
				Image img = new Image();
145
				Image img = new Image();
146
				img.setUrl(logoUrl);
146
				img.setUrl(logoUrl);
147
				img.setStyleName("logo-personne");
147
				img.setStyleName("logo-personne");
148
 
148
 
149
				panneauImage.add(img);			
149
				panneauImage.add(img);			
150
				
150
				
151
				// FIXME : problème avec la taille du panneau > ne se fixe pas automatiquement à la taille de l'image
151
				// FIXME : problème avec la taille du panneau > ne se fixe pas automatiquement à la taille de l'image
152
				
152
				
153
				panneauImage.setBorders(true);
153
				panneauImage.setBorders(true);
154
			}
154
			}
155
			
155
			
156
			panneauIdentite.add(fsContact);
156
			panneauIdentite.add(fsContact);
157
			
157
			
158
			fsIdentite.removeAll();
158
			fsIdentite.removeAll();
159
			fsContact.removeAll();
159
			fsContact.removeAll();
160
			fsAdressePerso.removeAll();
160
			fsAdressePerso.removeAll();
161
			//Ajout des champs Identité
161
			//Ajout des champs Identité
162
			
162
			
163
			
163
			
164
			
164
			
165
			// TODO: projet
165
			// TODO: projet
166
			
166
			
167
			// nom complet
167
			// nom complet
168
			Object nomComplet = personne.obtenirValeurChamp("fmt_nom_complet");
168
			Object nomComplet = personne.obtenirValeurChamp("fmt_nom_complet");
169
			ajouterTextFieldNonEditable(fsIdentite,"Nom", nomComplet);
169
			ajouterTextFieldNonEditable(fsIdentite,"Nom", nomComplet);
170
			
170
			
171
			
171
			
172
			// TODO : nom autre
172
			// TODO : nom autre
173
			
173
			
174
			// abreviation
174
			// abreviation
175
			Object abreviation = personne.obtenirValeurChamp("abreviation");
175
			Object abreviation = personne.obtenirValeurChamp("abreviation");
176
			ajouterTextFieldNonEditable(fsIdentite, "Abreviation", abreviation);
176
			ajouterTextFieldNonEditable(fsIdentite, "Abreviation", abreviation);
177
			
177
			
178
			// date naissance
178
			// date naissance
179
			Object dateNaissance = personne.obtenirValeurChamp("date_naissance");
179
			Object dateNaissance = personne.obtenirValeurChamp("date_naissance");
180
			ajouterTextFieldNonEditable(fsIdentite, "Date de naissance", dateNaissance);
180
			ajouterTextFieldNonEditable(fsIdentite, "Date de naissance", dateNaissance);
181
			
181
			
182
			// lieu naissance
182
			// lieu naissance
183
			Object lieuNaissance = personne.obtenirValeurChamp("lieu_naissance");
183
			Object lieuNaissance = personne.obtenirValeurChamp("lieu_naissance");
184
			ajouterTextFieldNonEditable(fsIdentite, "Lieu de naissance", lieuNaissance);
184
			ajouterTextFieldNonEditable(fsIdentite, "Lieu de naissance", lieuNaissance);
185
			
185
			
186
			// date deces
186
			// date deces
187
			Object dateDeces = personne.obtenirValeurChamp("date_deces");
187
			Object dateDeces = personne.obtenirValeurChamp("date_deces");
188
			ajouterTextFieldNonEditable(fsIdentite, "Date de décès", dateDeces);
188
			ajouterTextFieldNonEditable(fsIdentite, "Date de décès", dateDeces);
189
			
189
			
190
			// lieu deces
190
			// lieu deces
191
			Object lieuDeces = personne.obtenirValeurChamp("lieu_deces");
191
			Object lieuDeces = personne.obtenirValeurChamp("lieu_deces");
192
			ajouterTextFieldNonEditable(fsIdentite, "Lieu de décès", lieuDeces);
192
			ajouterTextFieldNonEditable(fsIdentite, "Lieu de décès", lieuDeces);
193
			
193
			
194
			//Description
194
			//Description
195
			String description = (String) personne.obtenirValeurChamp("description");
195
			String description = (String) personne.obtenirValeurChamp("description");
196
			if ((description!=null)&&(!description.trim().equals("")))	{
196
			if ((description!=null)&&(!description.trim().equals("")))	{
197
				TextArea txtDescription = new TextArea();
197
				TextArea txtDescription = new TextArea();
198
				txtDescription.setFieldLabel("Description");
198
				txtDescription.setFieldLabel("Description");
199
				txtDescription.setValue(description);
199
				txtDescription.setValue(description);
200
				
200
				
201
				rendreNonEditable(txtDescription);
201
				rendreNonEditable(txtDescription);
202
				
202
				
203
				fsIdentite.add(txtDescription);
203
				fsIdentite.add(txtDescription);
204
			}
204
			}
205
			
205
			
206
			
206
			
207
			//CONTACT
207
			//CONTACT
208
			
208
			
209
			// Courriel est un champ TRUK
209
			// Courriel est un champ TRUK
210
			// on doit afficher N entrées
210
			// on doit afficher N entrées
211
			// Voir si le | (pipe) est bien le bon séparateur
211
			// Voir si le | (pipe) est bien le bon séparateur
212
			String courriels =  (String) personne.obtenirValeurChamp("truk_courriel");
212
			String courriels =  (String) personne.obtenirValeurChamp("truk_courriel");
213
			String[] tabCourriel = courriels.split("\\|");
213
			String[] tabCourriel = courriels.split("\\|");
214
			Html intituleHTML = new Html("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b>");
214
			Html intituleHTML = new Html("<b style=\"margin:0 50px 0 0 ; color:black;\">Courriel:</b>");
215
			fsContact.add(intituleHTML);
215
			fsContact.add(intituleHTML);
216
 
216
 
217
			for(int i = 0 ; i < tabCourriel.length ; i++) {
217
			for(int i = 0 ; i < tabCourriel.length ; i++) {
218
				String courriel = tabCourriel[i];
218
				String courriel = tabCourriel[i];
219
				Hyperlink lnkCourriel = new Hyperlink();
219
				Hyperlink lnkCourriel = new Hyperlink();
220
				lnkCourriel.setHTML("<a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
220
				lnkCourriel.setHTML("<a href=\"mailto:" + courriel + "\">" + courriel + "</a>");
221
				fsContact.add(lnkCourriel);
221
				fsContact.add(lnkCourriel);
222
			}
222
			}
223
			
223
			
224
			panneauIdentite.add(fsContact);
224
			panneauIdentite.add(fsContact);
225
			
225
			
226
			
226
			
227
			fsAdressePerso.setHeading("Adresse personnelle");
227
			fsAdressePerso.setHeading("Adresse personnelle");
228
			
228
			
229
			/*
229
			/*
230
			 * Adresses :
230
			 * Adresses :
231
			 * */
231
			 * */
232
			String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
232
			String adresse01 = (String) personne.obtenirValeurChamp("adresse_01");
233
			ajouterTextFieldNonEditable(fsAdressePerso, "Adresse", adresse01);
233
			ajouterTextFieldNonEditable(fsAdressePerso, "Adresse", adresse01);
234
			
234
			
235
			
235
			
236
			String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
236
			String adresse02 = (String) personne.obtenirValeurChamp("adresse_02");
237
			ajouterTextFieldNonEditable(fsAdressePerso, "", adresse02);
237
			ajouterTextFieldNonEditable(fsAdressePerso, "", adresse02);
238
			
238
			
239
			String boitePostale = (String) personne.obtenirValeurChamp("bp");
239
			String boitePostale = (String) personne.obtenirValeurChamp("bp");
240
			ajouterTextFieldNonEditable(fsAdressePerso, "Boite Postale", boitePostale);
240
			ajouterTextFieldNonEditable(fsAdressePerso, "Boite Postale", boitePostale);
241
			
241
			
242
			String codePostal = (String) personne.obtenirValeurChamp("code_postal");
242
			String codePostal = (String) personne.obtenirValeurChamp("code_postal");
243
			ajouterTextFieldNonEditable(fsAdressePerso, "Code postal", codePostal);
243
			ajouterTextFieldNonEditable(fsAdressePerso, "Code postal", codePostal);
244
			
244
			
245
			String ville = (String) personne.obtenirValeurChamp("ville");
245
			String ville = (String) personne.obtenirValeurChamp("ville");
246
			ajouterTextFieldNonEditable(fsAdressePerso, "Ville", ville);
246
			ajouterTextFieldNonEditable(fsAdressePerso, "Ville", ville);
247
			
247
			
248
			String region = (String) personne.obtenirValeurChamp("region");
248
			String region = (String) personne.obtenirValeurChamp("region");
249
			ajouterTextFieldNonEditable(fsAdressePerso, "Région", region);
249
			ajouterTextFieldNonEditable(fsAdressePerso, "Région", region);
250
			
250
			
251
			String pays = (String) personne.obtenirValeurChamp("pays");
251
			String pays = (String) personne.obtenirValeurChamp("pays");
252
			ajouterTextFieldNonEditable(fsAdressePerso, "Pays", pays);
252
			ajouterTextFieldNonEditable(fsAdressePerso, "Pays", pays);
253
			
253
			
254
			fsAdressePerso.addText("<br >");	
254
			fsAdressePerso.addText("<br >");	
255
			fsAdressePerso.setWidth("350px");
255
			fsAdressePerso.setWidth("350px");
256
			
256
			
257
			tabAdresse.add(fsAdressePerso);
257
			tabAdresse.add(fsAdressePerso);
258
			tabAdresse.setScrollMode(Scroll.AUTO);
258
			tabAdresse.setScrollMode(Scroll.AUTO);
259
			
259
			
260
 
260
 
261
			layout();
261
			layout();
262
		} 
262
		} 
263
	}
263
	}
264
 
264
 
265
	private void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue)	{
265
	private void ajouterTextFieldNonEditable(FieldSet fs, String tfLabel, Object tfValue)	{
266
	
266
	
267
		if ((tfValue!=null)&&(!tfValue.toString().trim().equals("")))	{
267
		if ((tfValue!=null)&&(!tfValue.toString().trim().equals("")))	{
268
			
268
			
269
			
269
			
270
			LabelField tf = new LabelField();
270
			LabelField tf = new LabelField();
271
		
271
		
272
			tf.setFieldLabel(tfLabel + ":");
272
			tf.setFieldLabel(tfLabel + ":");
273
			if ((tfLabel==null)||("".equals(tfLabel)))	{
273
			if ((tfLabel==null)||("".equals(tfLabel)))	{
274
				tf.setHideLabel(true);
274
				tf.setHideLabel(true);
275
				tf.setStyleAttribute("margin", "0 0 0 105px");
275
				tf.setStyleAttribute("margin", "0 0 0 105px");
276
			}
276
			}
277
			tf.setValue(tfValue);
277
			tf.setValue(tfValue);
278
		
278
		
279
			// Non éditable : on empêche l'évènement par défaut
279
			// Non éditable : on empêche l'évènement par défaut
-
 
280
			// > MAJ 27/07 : inutile avec LabelField
280
			rendreNonEditable(tf);
281
			//rendreNonEditable(tf);
281
			 
282
			 
282
			//Ajout au fieldSet
283
			//Ajout au fieldSet
283
			fs.add(tf);
284
			fs.add(tf);
284
		}
285
		}
285
	}
286
	}
286
	
287
	
287
	private void rendreNonEditable(Field field)	{
288
	private void rendreNonEditable(Field field)	{
288
			
289
			
289
		field.addKeyListener(new KeyListener()	{
290
		field.addKeyListener(new KeyListener()	{
290
			public void componentKeyPress(ComponentEvent ev)	{
291
			public void componentKeyPress(ComponentEvent ev)	{
291
				ev.stopEvent();
292
				ev.stopEvent();
292
			}
293
			}
293
			});
294
			});
294
	}
295
	}
295
		
296
		
296
	
297
	
297
	public void rafraichir(Object nouvelleDonnees) {
298
	public void rafraichir(Object nouvelleDonnees) {
298
		
299
		
299
		// Si on a reçu une personne on en affiche les détails
300
		// Si on a reçu une personne on en affiche les détails
300
		if (nouvelleDonnees instanceof Personne) {
301
		if (nouvelleDonnees instanceof Personne) {
301
			afficherDetailPersonne((Personne) nouvelleDonnees);
302
			afficherDetailPersonne((Personne) nouvelleDonnees);
302
		} 
303
		} 
303
	}
304
	}
304
 
305
 
305
}
306
}