Subversion Repositories eFlore/Applications.cel

Rev

Rev 202 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 202 Rev 318
Line 1... Line 1...
1
package org.tela_botanica.client.vues.observation.filtres;
1
package org.tela_botanica.client.vues.observation.filtres;
-
 
2
import org.tela_botanica.client.interfaces.Filtrable;
2
import org.tela_botanica.client.interfaces.Rafraichissable;
3
import org.tela_botanica.client.interfaces.Rafraichissable;
3
import org.tela_botanica.client.observation.ObservationMediateur;
4
import org.tela_botanica.client.observation.ObservationMediateur;
-
 
5
import org.tela_botanica.client.vues.observation.ListeObservationVue;
Line -... Line 6...
-
 
6
 
4
 
7
import com.google.gwt.core.client.JavaScriptObject;
-
 
8
import com.google.gwt.user.client.Window;
5
import com.google.gwt.user.client.Window;
9
import com.google.gwt.user.client.ui.KeyboardListener;
6
import com.gwtext.client.core.EventObject;
10
import com.gwtext.client.core.EventObject;
7
import com.gwtext.client.data.Node;
11
import com.gwtext.client.data.Node;
-
 
12
import com.gwtext.client.data.NodeTraversalCallback;
8
import com.gwtext.client.data.NodeTraversalCallback;
13
import com.gwtext.client.data.Record;
-
 
14
import com.gwtext.client.data.Tree;
-
 
15
import com.gwtext.client.dd.DD;
-
 
16
import com.gwtext.client.dd.DragData;
-
 
17
import com.gwtext.client.dd.DragDrop;
-
 
18
import com.gwtext.client.dd.DragSource;
-
 
19
import com.gwtext.client.dd.DropTarget;
-
 
20
import com.gwtext.client.dd.DropTargetConfig;
9
import com.gwtext.client.data.Tree;
21
import com.gwtext.client.widgets.BoxComponent;
-
 
22
import com.gwtext.client.widgets.Button;
-
 
23
import com.gwtext.client.widgets.Component;
10
import com.gwtext.client.widgets.Button;
24
import com.gwtext.client.widgets.Container;
11
import com.gwtext.client.widgets.Panel;
25
import com.gwtext.client.widgets.Panel;
-
 
26
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
12
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
27
import com.gwtext.client.widgets.event.PanelListenerAdapter;
-
 
28
import com.gwtext.client.widgets.form.TextField;
-
 
29
import com.gwtext.client.widgets.grid.GridDragData;
13
import com.gwtext.client.widgets.form.TextField;
30
import com.gwtext.client.widgets.grid.GridView;
-
 
31
import com.gwtext.client.widgets.layout.VerticalLayout;
-
 
32
import com.gwtext.client.widgets.tree.DropNodeCallback;
-
 
33
import com.gwtext.client.widgets.tree.MultiSelectionModel;
-
 
34
import com.gwtext.client.widgets.tree.TreeDragData;
-
 
35
import com.gwtext.client.widgets.tree.TreeDropZone;
14
import com.gwtext.client.widgets.layout.VerticalLayout;
36
import com.gwtext.client.widgets.tree.TreeDropZoneConfig;
15
import com.gwtext.client.widgets.tree.TreeEditor;
37
import com.gwtext.client.widgets.tree.TreeEditor;
16
import com.gwtext.client.widgets.tree.TreeNode;
38
import com.gwtext.client.widgets.tree.TreeNode;
17
import com.gwtext.client.widgets.tree.TreePanel;
39
import com.gwtext.client.widgets.tree.TreePanel;
-
 
40
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
18
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
41
import com.gwtext.client.widgets.tree.event.TreePanelListener;
Line 19... Line 42...
19
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
42
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
Line 20... Line 43...
20
 
43
 
21
public class ArbreMotsClesObservationVue extends Panel implements Rafraichissable {
44
public class ArbreMotsClesObservationVue extends Panel implements Rafraichissable, Filtrable {
22
 
45
 
23
		/**
46
		/**
Line 38... Line 61...
38
		 */
61
		 */
39
		private TextField tfEdit = null;
62
		private TextField tfEdit = null;
40
		/**
63
		/**
41
		 * Bouton de validation
64
		 * Bouton de validation
42
		 */
65
		 */
43
		private Button valider = null;
66
		private Button ajouterMotCle = null;
44
		/**
67
		/**
45
		 * Une string permettant connaitre les mots clés cochés en cours séparés par
68
		 * Une string permettant connaitre les mots clés cochés en cours séparés par
46
		 * des virgules
69
		 * des virgules
47
		 */
70
		 */
48
		private String motsClesEnCours = "";
71
		private String motsClesEnCours = "";
Line 64... Line 87...
64
		private boolean modifNoeud = false;
87
		private boolean modifNoeud = false;
65
		/**
88
		/**
66
		 * Booléen d'instanciation du conteneur
89
		 * Booléen d'instanciation du conteneur
67
		 */
90
		 */
68
		private boolean arbreCharge = false;
91
		private boolean arbreCharge = false;
-
 
92
		
-
 
93
		/**
-
 
94
		 * Booléen nécessaire pour l'affichage
-
 
95
		 * 
-
 
96
		 */
-
 
97
		private boolean estInstancie = false;
-
 
98
		
69
		/**
99
		/**
70
		 * Booléen d'évènement qui sert à savoir si les mots clés ont bien été reçu
100
		 * Booléen d'évènement qui sert à savoir si les mots clés ont bien été reçu
71
		 */
101
		 */
72
		private boolean motsCleInitialises;
102
		private boolean motsCleInitialises;
-
 
103
		
-
 
104
		private Component livue = null;
Line 73... Line 105...
73
 
105
 
74
		/**
106
		/**
75
		 * Constructeur sans paramètre (privé car interdit d'utilisation)
107
		 * Constructeur sans paramètre (privé car interdit d'utilisation)
76
		 */
108
		 */
Line 86... Line 118...
86
		 *            le médiateur à associer
118
		 *            le médiateur à associer
87
		 */
119
		 */
88
		public ArbreMotsClesObservationVue(ObservationMediateur om) {
120
		public ArbreMotsClesObservationVue(ObservationMediateur om) {
89
			// on crée le panel
121
			// on crée le panel
90
			super("Mots clés");
122
			super("Mots clés");
-
 
123
			
91
			this.setLayout(new VerticalLayout());
124
			this.setLayout(new VerticalLayout());
92
			oMediateur = om;
125
			oMediateur = om;
93
 
-
 
94
			// on crée le conteneur de l'arbre
-
 
95
			arbreMotsCles = new TreePanel();
-
 
96
			// on permet le drag and drop dans l'arbre
-
 
97
			arbreMotsCles.setEnableDD(true);
-
 
98
			arbreMotsCles.setId("x-view-tree-keyword-obs");
-
 
99
 
-
 
100
			// on crée une racine pour l'arbre
-
 
101
			TreeNode root = new TreeNode("Tags");
-
 
102
			root.setId("racine_obs");
-
 
103
			String[] usObject = { "Mots clés", "racine" };
-
 
104
			root.setUserObject(usObject);
-
 
105
			root.setExpandable(true);
-
 
106
			arbreMotsCles.setRootNode(root);
-
 
107
			arbreMotsCles.setRootVisible(true);
-
 
108
			arbreMotsCles.setBorder(false);
-
 
109
		//	arbreMotsCles.setWidth(500);
-
 
Line 110... Line -...
110
			
-
 
111
			arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
126
			
112
				public void onClick(Node node, EventObject e) {
127
			setBorder(false);
113
					if(!arbreCharge) {
128
			setCollapsible(true);
114
						expand();
-
 
115
					}
-
 
Line 116... Line -...
116
				}
-
 
117
 
-
 
118
				public void onExpand(Node node) {
-
 
119
					if(!arbreCharge) {
-
 
120
						obtenirArbreMotsCles();
-
 
121
						arbreCharge = true;
-
 
122
					}
-
 
123
				}
-
 
124
			});
-
 
125
 
-
 
126
			// on crée l'éditeur pour l'arbre
-
 
127
			tfEdit = new TextField();
-
 
128
			te = new TreeEditor(arbreMotsCles, tfEdit);
-
 
129
			valider = new Button("Appliquer");
-
 
130
			arbreMotsCles.add(te);
-
 
131
 
-
 
132
			// on met en forme le layout
-
 
133
			this.add(arbreMotsCles);
-
 
134
			this.add(valider);
-
 
135
 
-
 
136
			this.setBorder(false);
-
 
137
			this.setCollapsible(true);
-
 
138
			this.setTitleCollapse(true);
129
			setTitleCollapse(true);
139
			
130
 
-
 
131
			// on ajoute les listeners
-
 
132
			ajouterListenersPanel();
-
 
133
 
-
 
134
		}
-
 
135
		
-
 
136
		/**
-
 
137
		 * Ajoute les listeners pour le rendu du panel
-
 
138
		 */
-
 
139
		private void ajouterListenersPanel() {
-
 
140
			  this.addListener(new PanelListenerAdapter() {
-
 
141
 
-
 
142
				// on instancie réellement les composants au moment du rendu pour
-
 
143
				// accélérer l'affichage
-
 
144
				// et éviter des bugs
-
 
145
				public void onRender(Component component) {
-
 
146
					
-
 
147
					livue = oMediateur.getListeObservation();
-
 
148
					
-
 
149
					// on crée le conteneur de l'arbre
-
 
150
					arbreMotsCles = new TreePanel();
-
 
151
					// on permet le drag and drop dans l'arbre
-
 
152
					//arbreMotsCles.setEnableDD(true);
-
 
153
					arbreMotsCles.setId("x-view-tree-keyword-obs");
-
 
154
					
-
 
155
					
Line -... Line 156...
-
 
156
					MultiSelectionModel msModel = new MultiSelectionModel();
-
 
157
					arbreMotsCles.setSelectionModel(msModel);
-
 
158
 
-
 
159
					// on crée une racine pour l'arbre
-
 
160
					TreeNode root = new TreeNode("Tags");
-
 
161
					root.setId("racine_obs");
-
 
162
					String[] usObject = { "Mots clés", "racine_obs" };
-
 
163
					root.setUserObject(usObject);
-
 
164
					root.setExpandable(true);
-
 
165
					
-
 
166
					arbreMotsCles.setRootNode(root);
-
 
167
					
-
 
168
					// on crée l'éditeur pour l'arbre
-
 
169
					tfEdit = new TextField();
-
 
170
					te = new TreeEditor(arbreMotsCles, tfEdit);
-
 
171
					ajouterMotCle = new Button("Nouveau mot clé");
-
 
172
					arbreMotsCles.add(te);
-
 
173
					
-
 
174
					arbreMotsCles.getRootNode().addListener(new TreeNodeListenerAdapter() {
-
 
175
						public void onClick(Node node, EventObject e) {
-
 
176
							if(!arbreCharge) {
-
 
177
								expand();
-
 
178
							}
-
 
179
						}
-
 
180
 
-
 
181
						public void onExpand(Node node) {
-
 
182
							if(!arbreCharge) {
-
 
183
								obtenirArbreMotsCles();
-
 
184
								arbreCharge = true;
-
 
185
							}
-
 
186
						}
-
 
187
					});
-
 
188
 
-
 
189
					// on interdit le drag and drop dans l'arbre
-
 
190
					arbreMotsCles.setRootVisible(true);
-
 
191
					arbreMotsCles.setBorder(false);
-
 
192
					
-
 
193
					// on met en forme le layout
-
 
194
					add(arbreMotsCles);
-
 
195
					add(ajouterMotCle);
-
 
196
 
-
 
197
					// enfin on considère le composant comme instancié
-
 
198
					estInstancie = true;
-
 
199
					
-
 
200
					configDragAndDrop();
-
 
201
					
-
 
202
					// on ajoute les listeners d'évenements
-
 
203
					ajouterListeners();					
140
			// on ajoute les listeners
204
				}
Line 141... Line 205...
141
			ajouterListeners();
205
 
142
 
206
			});
143
		}
207
		}
Line 188... Line 252...
188
 
252
 
189
				// gestion du clic sur un noeud
253
				// gestion du clic sur un noeud
Line 190... Line 254...
190
				public void onClick(TreeNode node, EventObject e) {
254
				public void onClick(TreeNode node, EventObject e) {
-
 
255
 
-
 
256
					e.stopEvent();
-
 
257
					boolean multi = false;
-
 
258
					if(e.hasModifier()) {
191
 
259
						multi = true;
192
					e.stopEvent();
260
					}
Line 193... Line 261...
193
					gererClicNoeud(node);
261
					gererClicNoeud(node,multi);
194
				}
262
				}
Line 248... Line 316...
248
						TreeNode oldParent, TreeNode newParent, int index) {
316
						TreeNode oldParent, TreeNode newParent, int index) {
249
					// on notifie le médiateur et on lui passe l'arbre
317
					// on notifie le médiateur et on lui passe l'arbre
250
					getOMediateur().deplacerMotCleDansArbre(node,
318
					getOMediateur().deplacerMotCleDansArbre(node,
251
							getArbreMotsCles().getTree());
319
							getArbreMotsCles().getTree());
252
				}
320
				}
-
 
321
				
-
 
322
				public boolean doBeforeNodeDrop(TreePanel treePanel,
-
 
323
						TreeNode target, DragData dragData,
-
 
324
						String point, DragDrop source,
-
 
325
						TreeNode dropNode,
-
 
326
						DropNodeCallback dropNodeCallback) {
-
 
327
					
-
 
328
					if(dragData instanceof GridDragData) {
-
 
329
																		
-
 
330
						Record[] obsALier = ((GridDragData)dragData).getSelections();
-
 
331
						
-
 
332
						String idObsALier[] = new String[obsALier.length];
-
 
333
						String idMotCle = ((String[])target.getUserObject())[1];
-
 
334
						String idObsALierString = "";
-
 
335
						
-
 
336
						for(int i = 0; i < obsALier.length; i++) {
-
 
337
							idObsALierString += obsALier[i].getAsString("ordre_observation")+", ";
-
 
338
							idObsALier[i] = obsALier[i].getAsString("ordre_observation");
-
 
339
						}
-
 
340
						
-
 
341
						if(Window.confirm("lier les observations "+idObsALierString+" seront liées au mot clé "+target.getText()+" ?")) {
-
 
342
							oMediateur.mettreAjourMotsCles(idMotCle, idObsALier);
-
 
343
						}
-
 
344
					}	
-
 
345
					return true;
-
 
346
				}
-
 
347
 
-
 
348
 
-
 
349
				public void onNodeDrop(TreePanel treePanel,
-
 
350
						TreeNode target, DragData dragData,
-
 
351
						String point, DragDrop source, TreeNode dropNode) {
-
 
352
					
-
 
353
				}
Line 253... Line 354...
253
 
354
 
Line 254... Line 355...
254
			});
355
			});
255
 
356
 
Line 256... Line 357...
256
			// gestion de la validation
357
			// gestion de la validation
257
			valider.addListener(new ButtonListenerAdapter() {
358
			ajouterMotCle.addListener(new ButtonListenerAdapter() {
258
 
359
 
259
				// lors du clic
-
 
260
				public void onClick(Button button, EventObject e) {
-
 
261
 
-
 
262
					// on vide les mots clés en cours
360
				// lors du clic
263
					motsClesEnCours = "";
-
 
264
					// pour chaque noeud à partir de la racine
-
 
265
					getArbreMotsCles().getRootNode().cascade(
-
 
266
							new NodeTraversalCallback() {
-
 
267
 
-
 
268
								// on éxécute une fonction
-
 
269
								public boolean execute(Node node) {
-
 
270
 
-
 
271
									// on récupère le mot clé associé au noeud et
-
 
272
									// ses infos
-
 
273
									TreeNode tn = getArbreMotsCles().getNodeById(
-
 
274
											node.getId());
-
 
275
 
-
 
276
									String[] usObject = (String[]) tn
-
 
277
											.getUserObject();
-
 
278
									getOMediateur().mettreAjourMotsClesId(
-
 
279
											usObject[0], usObject[1]);
-
 
280
 
-
 
281
									if (tn.getUI().isChecked()) {
-
 
282
										// et les concatène à la string des mots
-
 
283
										// clés en cours
-
 
284
										motsClesEnCours += usObject[1] + ",";
-
 
285
									}
-
 
286
 
-
 
287
									return true;
-
 
288
								}
361
				public void onClick(Button button, EventObject e) {
289
 
-
 
290
							});
-
 
291
 
-
 
292
					// enfin on notifie le médiateur et on lui passe l'arbre et la
-
 
293
					// liste des mots clés ainsi obtenue
362
					
294
					getOMediateur().mettreAjourMotsCles(motsClesEnCours,
363
					ajouterNoeud(arbreMotsCles.getRootNode());
Line 295... Line 364...
295
							arbreMotsCles.getTree());
364
					
-
 
365
				}
-
 
366
			});
-
 
367
 
-
 
368
		}
-
 
369
		
-
 
370
		
-
 
371
		/**
-
 
372
		 * Configure le drag 'n drop pour la liste
-
 
373
		 */
-
 
374
		private void configDragAndDrop()
-
 
375
		{
-
 
376
 
-
 
377
			// on fabrique la nouvelle configuration
-
 
378
			// les éléments sur lesquels on fait du drag 'n drop doivent tous avoir le même ddGroup
-
 
379
			arbreMotsCles.setDdGroup("ObsMotsClesGroup");
-
 
380
			//arbreMotsCles.setEnableDD(true);
-
 
381
			arbreMotsCles.setEnableDrag(true);
-
 
382
			arbreMotsCles.setEnableDrop(true);
-
 
383
			DropTargetConfig dtc = new DropTargetConfig();		
-
 
384
			dtc.setdDdGroup("ObsMotsClesGroup"); 
-
 
385
			               
-
 
386
	         DropTarget tg = new DropTarget(livue, dtc) {  
-
 
387
	             public boolean notifyDrop(DragSource source, EventObject e,  
-
 
388
	                   DragData data) {  
-
 
389
	            	 
-
 
390
	                 return true;  
-
 
391
	             }  
-
 
392
	   
-
 
393
	             public String notifyOver(DragSource source, EventObject e,  
-
 
394
	                   DragData data) {  
Line 296... Line 395...
296
				}
395
	                return "x-dd-drop-ok";  
297
			});
396
	             }  
298
 
397
	         };  
299
		}
398
		}
Line 341... Line 440...
341
			// on met l'ajout du noeud à vrai
440
			// on met l'ajout du noeud à vrai
342
			ajoutNoeud = true;
441
			ajoutNoeud = true;
343
			// on crée un nouveau noeud vide
442
			// on crée un nouveau noeud vide
344
			TreeNode nd = new TreeNode("");
443
			TreeNode nd = new TreeNode("");
345
			nd.setCls("x-view-treenode-keyword");
444
			nd.setCls("x-view-treenode-keyword");
346
			nd.setChecked(true);
-
 
347
			// on associe un objet au noeud qui contient des infos
445
			// on associe un objet au noeud qui contient des infos
348
			String[] usObject = new String[2];
446
			String[] usObject = new String[2];
349
			// l'objet contient le nom du noeud
447
			// l'objet contient le nom du noeud
350
			usObject[0] = "";
448
			usObject[0] = "";
351
			usObject[1] = genererIdMotCle(nd);
449
			usObject[1] = genererIdMotCle(nd);
Line 362... Line 460...
362
			te.startEdit(nd);
460
			te.startEdit(nd);
Line 363... Line 461...
363
 
461
 
Line 364... Line 462...
364
		}
462
		}
365
 
463
 
366
		/**
464
		/**
367
		 * Coche le noeud s'il est décoché, le décoche sinon
465
		 * Fonction de gestion sur le clic sur le noeud
368
		 * 
466
		 * 
369
		 * @param node
467
		 * @param node
370
		 */
-
 
371
		public void gererClicNoeud(TreeNode node) {
-
 
372
			if (node.getUI().isChecked()) {
468
		 */
373
				node.getUI().toggleCheck(false);
469
		public void gererClicNoeud(TreeNode node, boolean multi) {
374
			} else {
-
 
375
				node.getUI().toggleCheck(true);
470
			
Line 376... Line 471...
376
			}
471
			((MultiSelectionModel)arbreMotsCles.getSelectionModel()).select(node, multi);
377
		}
472
		}
378
 
473
 
Line 391... Line 486...
391
						new NodeTraversalCallback() {
486
						new NodeTraversalCallback() {
Line 392... Line 487...
392
 
487
 
393
							// pour chaque noeud
488
							// pour chaque noeud
Line 394... Line 489...
394
							public boolean execute(Node node) {
489
							public boolean execute(Node node) {
395
 
490
 
Line 396... Line 491...
396
								getArbreMotsCles().getNodeById(node.getId())
491
								//getArbreMotsCles().getNodeById(node.getId())
397
								.getUI().toggleCheck(false);
492
								//.getUI().toggleCheck(false);
398
								
493
								
399
								// on parcourt le tableau des mots clés
494
								// on parcourt le tableau des mots clés
400
								for (int i = 0; i < motsClesIds.length; i++) {
495
								for (int i = 0; i < motsClesIds.length; i++) {
401
									// si le mot clé fait partie des id à cocher on
496
									// si le mot clé fait partie des id à cocher on
402
									// le coche
497
									// le coche
Line 403... Line 498...
403
									String usObject[] = (String[]) node
498
									String usObject[] = (String[]) node
404
											.getUserObject();
499
											.getUserObject();
405
									String nodeId = usObject[1];
500
									String nodeId = usObject[1];
Line 406... Line 501...
406
 
501
 
407
									if (nodeId.equals(motsClesIds[i])) {
502
									if (nodeId.equals(motsClesIds[i])) {
408
											getArbreMotsCles().getNodeById(nodeId+"_obs")
503
											//getArbreMotsCles().getNodeById(nodeId+"_obs")
409
													.getUI().toggleCheck(true);
504
											//		.getUI().toggleCheck(true);
Line 450... Line 545...
450
				if (!arbreCharge) {
545
				if (!arbreCharge) {
451
					// on signale que oui
546
					// on signale que oui
452
					arbreCharge = true;
547
					arbreCharge = true;
453
				}
548
				}
Line -... Line 549...
-
 
549
 
454
 
550
				/*
455
				// s'il y a des mots clés en attente (lors du premier rendering)
551
				// s'il y a des mots clés en attente (lors du premier rendering)
456
				if (motsCleInitialises == false && motsClesEnAttente != null) {
552
				if (motsCleInitialises == false && motsClesEnAttente != null) {
457
					// on les coche
553
					// on les coche
458
					// cocherMotsCles(motsClesEnAttente) ;
554
					// cocherMotsCles(motsClesEnAttente) ;
459
					motsCleInitialises = true;
555
					motsCleInitialises = true;
Line 460... Line 556...
460
				}
556
				}
461
				
557
				
462
				if(motsClesEnAttente.length > 0) {
558
				if(motsClesEnAttente.length > 0) {
463
							cocherMotsCles(motsClesEnAttente);
559
							cocherMotsCles(motsClesEnAttente);
Line 464... Line 560...
464
				}
560
				}*/
465
			}
561
			}
466
 
562
 
467
			// Si on reçoit un tableau de String (cas ou l'on séléectionne une
563
			// Si on reçoit un tableau de String (cas ou l'on séléectionne une
468
			// nouvelle image)
564
			// nouvelle obs)
469
			if (nouvelleDonnees instanceof String[]) {
565
			if (nouvelleDonnees instanceof String[]) {
470
				// et que l'arbre est instancié
566
				// et que l'arbre est instancié
Line 503... Line 599...
503
				
599
				
Line 504... Line 600...
504
				for (int i = 0; i < ndNodeFils.length; i++) {
600
				for (int i = 0; i < ndNodeFils.length; i++) {
505
 
601
 
506
					String[] usObj = (String[]) ndNodeFils[i].getUserObject();
602
					String[] usObj = (String[]) ndNodeFils[i].getUserObject();
507
					TreeNode child = new TreeNode(usObj[0]);
-
 
508
					child.setId(usObj[1] +"_obs");
603
					TreeNode child = new TreeNode(usObj[0]);
509
					child.setChecked(false);
604
					child.setId(usObj[1]);
Line 510... Line 605...
510
					child.setUserObject(usObj);
605
					child.setUserObject(usObj);
511
					ndPereCopie.appendChild(child);
606
					ndPereCopie.appendChild(child);
512
 
607
 
Line 513... Line 608...
513
					if (!ndNodeFils[i].isLeaf()) {
608
					if (!ndNodeFils[i].isLeaf()) {
514
						copierFilsNoeud(ndNodeFils[i], child);
609
						copierFilsNoeud(ndNodeFils[i], child);
515
					}
610
					}
-
 
611
 
-
 
612
				}
-
 
613
			}
-
 
614
		}
-
 
615
		
-
 
616
		public void raz() {
-
 
617
			
-
 
618
		}
-
 
619
 
-
 
620
		public boolean renvoyerEtatFiltre() {
-
 
621
			// TODO Auto-generated method stub
-
 
622
			return false;
-
 
623
		}
-
 
624
 
-
 
625
		public String renvoyerNomFiltre() {
-
 
626
			// TODO Auto-generated method stub
-
 
627
			return null;
-
 
628
		}
-
 
629
 
-
 
630
		public String[] renvoyerValeursAFiltrer() {
-
 
631
			// TODO Auto-generated method stub
-
 
632
			return null;
-
 
633
		}
-
 
634
 
516
 
635
		public void valider() {