Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 101 Rev 135
Line 7... Line 7...
7
import com.gwtext.client.core.EventObject;
7
import com.gwtext.client.core.EventObject;
8
import com.gwtext.client.data.Node;
8
import com.gwtext.client.data.Node;
9
import com.gwtext.client.data.NodeTraversalCallback;
9
import com.gwtext.client.data.NodeTraversalCallback;
10
import com.gwtext.client.data.Tree;
10
import com.gwtext.client.data.Tree;
11
import com.gwtext.client.widgets.Button;
11
import com.gwtext.client.widgets.Button;
-
 
12
import com.gwtext.client.widgets.Container;
12
import com.gwtext.client.widgets.Panel;
13
import com.gwtext.client.widgets.Panel;
13
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
14
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-
 
15
import com.gwtext.client.widgets.event.PanelListenerAdapter;
14
import com.gwtext.client.widgets.form.TextField;
16
import com.gwtext.client.widgets.form.TextField;
15
import com.gwtext.client.widgets.layout.VerticalLayout;
17
import com.gwtext.client.widgets.layout.VerticalLayout;
16
import com.gwtext.client.widgets.tree.TreeEditor;
18
import com.gwtext.client.widgets.tree.TreeEditor;
17
import com.gwtext.client.widgets.tree.TreeNode;
19
import com.gwtext.client.widgets.tree.TreeNode;
18
import com.gwtext.client.widgets.tree.TreePanel;
20
import com.gwtext.client.widgets.tree.TreePanel;
-
 
21
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
19
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
22
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
Line 20... Line 23...
20
 
23
 
21
/**
24
/**
22
 * Arbre des mots clés, qui est une vue rafraichissable, qui contient des mots
25
 * Arbre des mots clés, qui est une vue rafraichissable, qui contient des mots
Line 70... Line 73...
70
	 */
73
	 */
71
	private boolean modifNoeud = false;
74
	private boolean modifNoeud = false;
72
	/**
75
	/**
73
	 * Booléen d'instanciation du conteneur
76
	 * Booléen d'instanciation du conteneur
74
	 */
77
	 */
75
	private boolean estInstancie = false;
78
	private boolean arbreCharge = false;
76
	/**
79
	/**
77
	 * Booléen d'évènement qui sert à savoir si les mots clés ont bien été reçu
80
	 * Booléen d'évènement qui sert à savoir si les mots clés ont bien été reçu
78
	 */
81
	 */
79
	private boolean motsCleInitialises;
82
	private boolean motsCleInitialises;
Line 126... Line 129...
126
		this.add(valider);
129
		this.add(valider);
Line 127... Line 130...
127
 
130
 
128
		this.setBorder(false);
131
		this.setBorder(false);
129
		this.setCollapsible(true);
132
		this.setCollapsible(true);
130
		this.setTitleCollapse(true);
133
		this.setTitleCollapse(true);
131
 
134
		
132
		// on ajoute les listeners
135
		// on ajoute les listeners
Line 133... Line 136...
133
		ajouterListeners();
136
		ajouterListeners();
Line 134... Line 137...
134
 
137
 
135
	}
138
	}
136
 
139
 
137
	/**
140
	/**
138
	 * Acesseur pour le médiateur
141
	 * Acesseur pour le médiateur
139
	 * 
142
	 * 
Line 140... Line 143...
140
	 * @return le médiateur associé à la vue
143
	 * @return le médiateur associé à la vue
Line 141... Line 144...
141
	 */
144
	 */
Line 187... Line 190...
187
 
190
 
188
			// gestion du clic droit sur un noeud
191
			// gestion du clic droit sur un noeud
Line 189... Line 192...
189
			public void onContextMenu(TreeNode node, EventObject e) {
192
			public void onContextMenu(TreeNode node, EventObject e) {
190
 
193
 
Line 191... Line 194...
191
				e.stopEvent();
194
				e.stopEvent();
Line 192... Line 195...
192
				GetIMediateur().montrerContextMenuArbre(node, e, getTe());
195
				getIMediateur().montrerContextMenuArbre(node, e, getTe());
193
 
196
 
Line 214... Line 217...
214
 
217
 
215
				// si c'est un nouveau noeud
218
				// si c'est un nouveau noeud
216
				if (ajoutNoeud) {
219
				if (ajoutNoeud) {
217
					// on notifie le médiateur de l'ajout et on lui passe
220
					// on notifie le médiateur de l'ajout et on lui passe
218
					// l'arbre
221
					// l'arbre
219
					GetIMediateur().ajouterMotCleDansArbre(nd,
222
					getIMediateur().ajouterMotCleDansArbre(nd,
220
							getArbreMotsCles().getTree());
223
							getArbreMotsCles().getTree());
221
					// et considère l'ajout achevé
224
					// et considère l'ajout achevé
222
					ajoutNoeud = false;
225
					ajoutNoeud = false;
223
				}
226
				}
224
				// si c'est noeud déjà existant
227
				// si c'est noeud déjà existant
225
				else {
228
				else {
226
					if (modifNoeud) {
229
					if (modifNoeud) {
227
						// on notifie le médiateur de la modification et on lui
230
						// on notifie le médiateur de la modification et on lui
228
						// passe l'arbre
231
						// passe l'arbre
229
						GetIMediateur().modifierMotCleDansArbre(nd,
232
						getIMediateur().modifierMotCleDansArbre(nd,
230
								getArbreMotsCles().getTree());
233
								getArbreMotsCles().getTree());
231
						// et on considère la modification achevée
234
						// et on considère la modification achevée
232
						modifNoeud = false;
235
						modifNoeud = false;
233
					}
236
					}
Line 237... Line 240...
237
 
240
 
238
			// gestion du déplacement d'un noeud
241
			// gestion du déplacement d'un noeud
239
			public void onMoveNode(Tree tree, TreeNode node,
242
			public void onMoveNode(Tree tree, TreeNode node,
240
					TreeNode oldParent, TreeNode newParent, int index) {
243
					TreeNode oldParent, TreeNode newParent, int index) {
241
				// on notifie le médiateur et on lui passe l'arbre
244
				// on notifie le médiateur et on lui passe l'arbre
242
				GetIMediateur().deplacerMotCleDansArbre(node,
245
				getIMediateur().deplacerMotCleDansArbre(node,
243
						getArbreMotsCles().getTree());
246
						getArbreMotsCles().getTree());
Line 244... Line 247...
244
			}
247
			}
Line 265... Line 268...
265
								TreeNode tn = getArbreMotsCles().getNodeById(
268
								TreeNode tn = getArbreMotsCles().getNodeById(
266
										node.getId());
269
										node.getId());
Line 267... Line 270...
267
 
270
 
268
								String[] usObject = (String[]) tn
271
								String[] usObject = (String[]) tn
269
										.getUserObject();
272
										.getUserObject();
270
								GetIMediateur().mettreAjourMotsClesId(
273
								getIMediateur().mettreAjourMotsClesId(
Line 271... Line 274...
271
										usObject[0], usObject[1]);
274
										usObject[0], usObject[1]);
272
 
275
 
273
								if (tn.getUI().isChecked()) {
276
								if (tn.getUI().isChecked()) {
Line 281... Line 284...
281
 
284
 
Line 282... Line 285...
282
						});
285
						});
283
 
286
 
284
				// enfin on notifie le médiateur et on lui passe l'arbre et la
287
				// enfin on notifie le médiateur et on lui passe l'arbre et la
285
				// liste des mots clés ainsi obtenue
288
				// liste des mots clés ainsi obtenue
286
				GetIMediateur().mettreAjourMotsCles(motsClesEnCours,
289
				getIMediateur().mettreAjourMotsCles(motsClesEnCours,
287
						arbreMotsCles.getTree());
290
						arbreMotsCles.getTree());
-
 
291
			}
-
 
292
		});
-
 
293
		
-
 
294
		/*this.addListener(new PanelListenerAdapter() {
-
 
295
			
-
 
296
			public void onAfterLayout(Container c) {
-
 
297
				if(!arbreCharge) {
-
 
298
					//obtenirArbreMotsCles();
-
 
299
				}
Line 288... Line 300...
288
			}
300
			}
Line 289... Line 301...
289
		});
301
		});*/
290
 
302
 
291
	}
303
	}
292
 
304
 
Line 293... Line 305...
293
	/**
305
	/**
Line 294... Line 306...
294
	 * Envoie une demande au médiateur pour obtenir l'arbre des mots clés
306
	 * Envoie une demande au médiateur pour obtenir l'arbre des mots clés
Line 295... Line 307...
295
	 */
307
	 */
296
	public void obtenirArbreMotsCles() {
308
	public void obtenirArbreMotsCles() {
Line 311... Line 323...
311
			// on détache le noeud et on le détruit
323
			// on détache le noeud et on le détruit
312
			n.getParentNode().removeChild(n);
324
			n.getParentNode().removeChild(n);
313
			n.destroy();
325
			n.destroy();
314
			// puis on en notifie le médiateur en lui passant le noeud supprimé
326
			// puis on en notifie le médiateur en lui passant le noeud supprimé
315
			// et l'arbre
327
			// et l'arbre
316
			GetIMediateur()
328
			getIMediateur()
317
					.supprimerMotCleDansArbre(n, arbreMotsCles.getTree());
329
					.supprimerMotCleDansArbre(n, arbreMotsCles.getTree());
318
		} else {
330
		} else {
319
			// si l'utilisateur tente de supprimer la racine, on l'avertit de
331
			// si l'utilisateur tente de supprimer la racine, on l'avertit de
320
			// son erreur
332
			// son erreur
321
			Window.alert("Impossible de supprimer la racine de l'arbre");
333
			Window.alert("Impossible de supprimer la racine de l'arbre");
Line 434... Line 446...
434
			}
446
			}
Line 435... Line 447...
435
 
447
 
436
			// on prend sa racine et on l'attache à l'arbre des mots clés
448
			// on prend sa racine et on l'attache à l'arbre des mots clés
437
			Node[] rootChild = getArbreMotsCles().getRootNode().getChildNodes();
449
			Node[] rootChild = getArbreMotsCles().getRootNode().getChildNodes();
438
			for (int i = 0; i < rootChild.length; i++) {
450
			for (int i = 0; i < rootChild.length; i++) {
439
 
451
				
440
				rootChild[i].remove();
452
				rootChild[i].remove();
Line 441... Line 453...
441
			}
453
			}
442
			
454
			
Line 459... Line 471...
459
				
471
				
Line 460... Line 472...
460
				
472
				
461
			}) ;
473
			}) ;
462
 
474
 
463
			// si l'arbre n'était pas encore considéré comme instancié
475
			// si l'arbre n'était pas encore considéré comme instancié
464
			if (!estInstancie) {
476
			if (!arbreCharge) {
Line 465... Line 477...
465
				// on signale que oui
477
				// on signale que oui
466
				estInstancie = true;
478
				arbreCharge = true;
467
			}
479
			}
Line 476... Line 488...
476
 
488
 
477
		// Si on reçoit un tableau de String (cas ou l'on séléectionne une
489
		// Si on reçoit un tableau de String (cas ou l'on séléectionne une
478
		// nouvelle image)
490
		// nouvelle image)
479
		if (nouvelleDonnees instanceof String[]) {
491
		if (nouvelleDonnees instanceof String[]) {
480
			// et que l'arbre est instancié
492
			// et que l'arbre est instancié
481
			if (estInstancie) {
493
			if (arbreCharge) {
482
				// le tableau de String contient les id des mots clés associés à
494
				// le tableau de String contient les id des mots clés associés à
483
				// l'image
495
				// l'image
484
				// on coche les mots clés contenu dans le tableau
496
				// on coche les mots clés contenu dans le tableau
485
				String[] motsClesIds = (String[]) nouvelleDonnees;
497
				String[] motsClesIds = (String[]) nouvelleDonnees;