Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2042 Rev 2062
Line 95... Line 95...
95
		private Component livue = null;
95
		private Component livue = null;
Line 96... Line 96...
96
		
96
		
Line 97... Line 97...
97
		MultiSelectionModel msModel = null;
97
		MultiSelectionModel msModel = null;
-
 
98
 
-
 
99
		private String cheminTemporaireAjout = null;
Line 98... Line 100...
98
 
100
		
99
		private String cheminTemporaireAjout = null;
101
		public Rafraichissable thisRafraichissable;
100
 
102
 
101
		/**
103
		/**
Line 137... Line 139...
137
 
139
 
138
				// on instancie réellement les composants au moment du rendu pour
140
				// on instancie réellement les composants au moment du rendu pour
139
				// accélérer l'affichage
141
				// accélérer l'affichage
140
				// et éviter des bugs
142
				// et éviter des bugs
141
				@Override
143
				@Override
142
				public void onRender(Component component) {
-
 
143
					
144
				public void onRender(Component component) {					
Line 144... Line 145...
144
					livue = oMediateur.getListeObservation();
145
					livue = oMediateur.getListeObservation();
145
					
146
					
146
					// on crée le conteneur de l'arbre
147
					// on crée le conteneur de l'arbre
Line 246... Line 247...
246
		/**
247
		/**
247
		 * Ajoute les listeners nécessaires pour la gestion des évènements
248
		 * Ajoute les listeners nécessaires pour la gestion des évènements
248
		 */
249
		 */
249
		private void ajouterListeners() {
250
		private void ajouterListeners() {
Line 250... Line -...
250
			
-
 
251
			final Rafraichissable r = this;
251
			
Line 252... Line 252...
252
			arbreMotsCles.addListener(new TreePanelListenerAdapter() {
252
			arbreMotsCles.addListener(new TreePanelListenerAdapter() {
253
 
253
 
254
				// gestion du clic sur un noeud
254
				// gestion du clic sur un noeud
Line 283... Line 283...
283
				}
283
				}
Line 284... Line 284...
284
 
284
 
285
				// gestion de la modification du texte d'un noeud
285
				// gestion de la modification du texte d'un noeud
286
				@Override
286
				@Override
-
 
287
				public void onTextChange(TreeNode node, String text, String oldText) {
-
 
288
					
-
 
289
					if(!MotsClesUtilitaire.estUnMotCleAutorise(text)) {
-
 
290
						te.startEdit(node);
-
 
291
						Window.alert("Un mot clé ne peut pas être vide ou contenir les caractères suivants : "+MotsClesUtilitaire.getChaineCaracteresInterdits());
-
 
292
						return;
Line 287... Line 293...
287
				public void onTextChange(TreeNode node, String text, String oldText) {
293
					}
288
 
294
 
289
					// on récupère les informations associées au noeud
295
					// on récupère les informations associées au noeud
290
					TreeNode nd = node;
296
					TreeNode nd = node;
291
					String[] usObject = new String[2];
297
					String[] usObject = new String[2];
292
					usObject[0] = text;
298
					usObject[0] = text;
Line 293... Line 299...
293
					usObject[1] = ((String[]) nd.getUserObject())[1];
299
					usObject[1] = ((String[]) nd.getUserObject())[1];
294
					nd.setUserObject(usObject);
300
					nd.setUserObject(usObject);
295
 
-
 
296
					// si c'est un nouveau noeud
-
 
297
					if (ajoutNoeud) {
301
 
298
						// on notifie le médiateur de l'ajout et on lui passe
-
 
299
						// l'arbre
-
 
300
						getOMediateur().ajouterMotCleDansArbre(nd,
-
 
301
								getArbreMotsCles().getTree(), r);
302
					// si c'est un nouveau noeud
302
						// et considère l'ajout achevé
303
					if (ajoutNoeud) {
303
						ajoutNoeud = false;
304
						ajouterMotCleDansArbreMediateur(nd);
304
					}
305
					}
305
					// si c'est noeud déjà existant
-
 
306
					else {
-
 
307
						if (modifNoeud) {
306
					// si c'est noeud déjà existant
308
							// on notifie le médiateur de la modification et on lui
-
 
309
							// passe l'arbre
-
 
310
							getOMediateur().modifierMotCleDansArbre(nd,
-
 
311
									getArbreMotsCles().getTree());
307
					else {
312
							// et on considère la modification achevée
308
						if (modifNoeud) {
313
							modifNoeud = false;
309
							modifierMotCleDansArbreMediateur(nd);
314
						}
310
						}
Line 315... Line 311...
315
					}
311
					}
316
					arbreMotsCles.disable();
312
					//arbreMotsCles.disable();
317
				}
313
				}
Line 378... Line 374...
378
				}
374
				}
379
			});
375
			});
Line 380... Line 376...
380
 
376
 
Line -... Line 377...
-
 
377
		}
-
 
378
		
-
 
379
		private void ajouterMotCleDansArbreMediateur(TreeNode nd) {
-
 
380
			// on notifie le médiateur de l'ajout et on lui passe
-
 
381
			// l'arbre
-
 
382
			getOMediateur().ajouterMotCleDansArbre(nd,
-
 
383
					getArbreMotsCles().getTree(), this);
-
 
384
			// et considère l'ajout achevé
-
 
385
			ajoutNoeud = false;
-
 
386
		}
-
 
387
		
-
 
388
		private void modifierMotCleDansArbreMediateur(TreeNode nd) {
-
 
389
			// on notifie le médiateur de la modification et on lui
-
 
390
			// passe l'arbre
-
 
391
			getOMediateur().modifierMotCleDansArbre(nd,
-
 
392
					getArbreMotsCles().getTree());
-
 
393
			// et on considère la modification achevée
Line 381... Line 394...
381
		}
394
			modifNoeud = false;
382
		
395
		}
383
		
396
		
384
		/**
397
		/**
Line 420... Line 433...
420
					n.getParentNode().removeChild(n);
433
					n.getParentNode().removeChild(n);
421
					n.destroy();
434
					n.destroy();
422
					// puis on en notifie le médiateur en lui passant le noeud supprimé
435
					// puis on en notifie le médiateur en lui passant le noeud supprimé
423
					// et l'arbre
436
					// et l'arbre
424
					getOMediateur()
437
					getOMediateur()
425
							.supprimerMotCleDansArbre(n, arbreMotsCles.getTree());
438
							.supprimerMotCleDansArbre(n, arbreMotsCles.getTree(), this);
426
				}
439
				}
427
			} else {
440
			} else {
428
				// si l'utilisateur tente de supprimer la racine, on l'avertit de
441
				// si l'utilisateur tente de supprimer la racine, on l'avertit de
429
				// son erreur
442
				// son erreur
430
				Window.alert("Impossible de supprimer la racine de l'arbre");
443
				Window.alert("Impossible de supprimer la racine de l'arbre");
Line 436... Line 449...
436
		 * 
449
		 * 
437
		 * @param parent
450
		 * @param parent
438
		 *            le futur parent du noeud à ajouter
451
		 *            le futur parent du noeud à ajouter
439
		 */
452
		 */
440
		public void ajouterNoeud(TreeNode parent) {
453
		public void ajouterNoeud(TreeNode parent) {
-
 
454
			if(parent == null) {
-
 
455
				parent = arbreMotsCles.getRootNode();
-
 
456
			}
441
 
457
						
442
			// on met l'ajout du noeud à vrai
-
 
443
			ajoutNoeud = true;
458
			ajoutNoeud = true;
444
			// on crée un nouveau noeud vide
-
 
445
			TreeNode nd = new TreeNode("");
-
 
446
			nd.setCls("x-view-treenode-keyword");
-
 
447
			// on associe un objet au noeud qui contient des infos
-
 
448
			String[] usObject = new String[2];
-
 
449
			// l'objet contient le nom du noeud
-
 
450
			usObject[0] = "";
-
 
451
			usObject[1] = "";
-
 
Line 452... Line -...
452
			
-
 
453
			nd.setUserObject(usObject);
-
 
454
			// l'identifiant d'un noeud c'est son hashcode
459
			
455
			// l'objet associé au noeud contient aussi son identifiant
-
 
456
 
460
			TreeNode nd = MotsClesUtilitaire.ajouterNoeud(parent, false);
457
			// on le concatène au parent et on étend ses enfants
461
			// on le concatène au parent et on étend ses enfants
458
			parent.appendChild(nd);
-
 
459
			// en attendant qu'il soit ajouté on lui affecte son chemin en tant qu'id
-
 
460
			// ce qui permettra de le retrouver et de lui affecter son id sur retour du web service
-
 
461
			cheminTemporaireAjout  = MotsClesUtilitaire.construireChemin(nd);
-
 
462
			nd.setId(cheminTemporaireAjout);
462
			parent.appendChild(nd);
463
			parent.expand();
-
 
464
			// enfin on place le curseur et on fait apparaitre le champ d'édition
463
			parent.expand();
465
			// pour que l'utilisateur nomme son mot clé
464
			cheminTemporaireAjout = nd.getId();
466
			te.startEdit(nd);
465
			te.startEdit(nd);
Line 467... Line 466...
467
		}
466
		}
468
		
467
		
Line 575... Line 574...
575
		 *            booleen qui dit si on doit répandre l'évenement
574
		 *            booleen qui dit si on doit répandre l'évenement
576
		 */
575
		 */
577
		@Override
576
		@Override
578
		public void rafraichir(Object nouvelleDonnees,
577
		public void rafraichir(Object nouvelleDonnees,
579
				boolean repandreRafraichissement) {
578
				boolean repandreRafraichissement) {
-
 
579
						
-
 
580
			arbreMotsCles.enable();
Line 580... Line 581...
580
			
581
			
Line 581... Line 582...
581
			if(nouvelleDonnees instanceof Tree) {
582
			if(nouvelleDonnees instanceof Tree) {
Line 587... Line 588...
587
				for (int i = 0; i < rootChild.length; i++) {
588
				for (int i = 0; i < rootChild.length; i++) {
Line 588... Line 589...
588
					
589
					
589
					rootChild[i].remove();
590
					rootChild[i].remove();
Line 590... Line 591...
590
				}
591
				}
Line 591... Line 592...
591
				
592
				
592
				MotsClesUtilitaire.copierFilsNoeud(nouvelArbre.getRootNode(),getArbreMotsCles().getRootNode());
593
				MotsClesUtilitaire.copierFilsNoeud(nouvelArbre.getRootNode(),getArbreMotsCles().getRootNode(), false);
593
 
594
 
594
				// si l'arbre n'était pas encore considéré comme instancié
595
				// si l'arbre n'était pas encore considéré comme instancié
Line 641... Line 642...
641
					noeudEnAjout.setUserObject(userObj);
642
					noeudEnAjout.setUserObject(userObj);
642
					noeudEnAjout.setId(id);
643
					noeudEnAjout.setId(id);
643
					cheminTemporaireAjout = null;
644
					cheminTemporaireAjout = null;
644
				}
645
				}
645
			}
646
			}
646
			
-
 
647
			arbreMotsCles.enable();
-
 
648
		}
647
		}
Line 649... Line 648...
649
		
648
		
Line 650... Line 649...
650
		public void raz() {
649
		public void raz() {