Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1083 Rev 1119
Line 8... Line 8...
8
import com.gwtext.client.data.NodeTraversalCallback;
8
import com.gwtext.client.data.NodeTraversalCallback;
9
import com.gwtext.client.data.Tree;
9
import com.gwtext.client.data.Tree;
10
import com.gwtext.client.widgets.Button;
10
import com.gwtext.client.widgets.Button;
11
import com.gwtext.client.widgets.Component;
11
import com.gwtext.client.widgets.Component;
12
import com.gwtext.client.widgets.Panel;
12
import com.gwtext.client.widgets.Panel;
-
 
13
import com.gwtext.client.widgets.Toolbar;
-
 
14
import com.gwtext.client.widgets.ToolbarButton;
13
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
15
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
14
import com.gwtext.client.widgets.event.WindowListenerAdapter;
16
import com.gwtext.client.widgets.event.WindowListenerAdapter;
15
import com.gwtext.client.widgets.form.TextField;
17
import com.gwtext.client.widgets.form.TextField;
16
import com.gwtext.client.widgets.layout.HorizontalLayout;
18
import com.gwtext.client.widgets.layout.HorizontalLayout;
17
import com.gwtext.client.widgets.layout.VerticalLayout;
19
import com.gwtext.client.widgets.layout.VerticalLayout;
-
 
20
import com.gwtext.client.widgets.tree.MultiSelectionModel;
18
import com.gwtext.client.widgets.tree.TreeEditor;
21
import com.gwtext.client.widgets.tree.TreeEditor;
19
import com.gwtext.client.widgets.tree.TreeNode;
22
import com.gwtext.client.widgets.tree.TreeNode;
20
import com.gwtext.client.widgets.tree.TreePanel;
23
import com.gwtext.client.widgets.tree.TreePanel;
21
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
24
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
22
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
25
import com.gwtext.client.widgets.tree.event.TreePanelListenerAdapter;
Line 51... Line 54...
51
	 * Bouton d'annulation
54
	 * Bouton d'annulation
52
	 */
55
	 */
53
	private Button annuler = null;
56
	private Button annuler = null;
Line 54... Line 57...
54
	
57
	
-
 
58
	/**
-
 
59
	 * Bouton d'ajout de tag
-
 
60
	 */
-
 
61
	private ToolbarButton ajouterTag = null;
-
 
62
	
-
 
63
	/**
-
 
64
	 * Bouton de suppression de tag
-
 
65
	 */
-
 
66
	private ToolbarButton supprimerTag = null;
-
 
67
	
-
 
68
	/**
-
 
69
	 * Bouton de renommage de tag
-
 
70
	 */
-
 
71
	private ToolbarButton renommerTag = null;
-
 
72
	
55
	/**
73
	/**
56
	 * Une string permettant connaitre les mots clés cochés en cours séparés par
74
	 * Une string permettant connaitre les mots clés cochés en cours séparés par
57
	 * des virgules
75
	 * des virgules
58
	 */
76
	 */
Line 99... Line 117...
99
		// on crée le conteneur de l'arbre
117
		// on crée le conteneur de l'arbre
100
		arbreMotsCles = new TreePanel();
118
		arbreMotsCles = new TreePanel();
101
		// on permet le drag and drop dans l'arbre
119
		// on permet le drag and drop dans l'arbre
102
		arbreMotsCles.setEnableDD(true);
120
		arbreMotsCles.setEnableDD(true);
103
		arbreMotsCles.setId("x-view-tree-keyword-imgs");
121
		arbreMotsCles.setId("x-view-tree-keyword-imgs");
-
 
122
		
-
 
123
		arbreMotsCles.setSelectionModel(new MultiSelectionModel());
Line 104... Line 124...
104
 
124
 
105
		// on crée une racine pour l'arbre
125
		// on crée une racine pour l'arbre
106
		TreeNode root = new TreeNode("Tags");
126
		TreeNode root = new TreeNode("Tags");
107
		root.setId("racine");
127
		root.setId("racine");
Line 141... Line 161...
141
		
161
		
142
		Panel panelIntermediaire = new Panel();
162
		Panel panelIntermediaire = new Panel();
Line 143... Line 163...
143
		panelIntermediaire.setLayoutData(new VerticalLayout());
163
		panelIntermediaire.setLayoutData(new VerticalLayout());
144
		
164
		
145
		Panel panelBoutons = new Panel();
165
		Panel panelBoutons = new Panel();
Line 146... Line 166...
146
		panelBoutons.setLayout(new HorizontalLayout(50));
166
		panelBoutons.setLayout(new HorizontalLayout(130));
147
		panelBoutons.setWidth("100%");
167
		panelBoutons.setWidth("100%");
148
 
168
 
149
		// on met en forme le layout
169
		// on met en forme le layout
Line 150... Line 170...
150
		panelIntermediaire.add(arbreMotsCles);
170
		panelIntermediaire.add(arbreMotsCles);
151
		panelBoutons.add(annuler);
171
		panelBoutons.add(annuler);
152
		panelBoutons.add(valider);
172
		panelBoutons.add(valider);
-
 
173
		
-
 
174
		this.add(panelIntermediaire);
-
 
175
		this.add(panelBoutons);
-
 
176
		arbreMotsCles.setHeight("338px");
-
 
177
		
-
 
178
		Toolbar barreBouton = new Toolbar();
-
 
179
		ajouterTag = new ToolbarButton("Nouveau Tag");
-
 
180
		ajouterTag.setIcon("mot_cle_ajouter.png");
-
 
181
		renommerTag = new ToolbarButton("Renommer");
-
 
182
		renommerTag.setIcon("mot_cle_editer.png");
-
 
183
		renommerTag.disable();
-
 
184
		supprimerTag = new ToolbarButton("Supprimer");
-
 
185
		supprimerTag.setIcon("mot_cle_supprimer.png");
-
 
186
		supprimerTag.disable();
-
 
187
		barreBouton.addButton(ajouterTag);
-
 
188
		barreBouton.addSeparator();
Line 153... Line 189...
153
		
189
		barreBouton.addButton(renommerTag);
154
		this.add(panelIntermediaire);
190
		barreBouton.addSeparator();
155
		this.add(panelBoutons);
191
		barreBouton.addButton(supprimerTag);
Line 211... Line 247...
211
			// gestion du clic sur un noeud
247
			// gestion du clic sur un noeud
212
			public void onClick(TreeNode node, EventObject e) {
248
			public void onClick(TreeNode node, EventObject e) {
Line 213... Line 249...
213
 
249
 
214
				e.stopEvent();
250
				e.stopEvent();
-
 
251
				gererClicNoeud(node);
-
 
252
				if(!node.equals(arbreMotsCles.getRootNode())) {
-
 
253
					supprimerTag.enable();
-
 
254
					renommerTag.enable();
215
				gererClicNoeud(node);
255
				}
Line 216... Line 256...
216
			}
256
			}
217
 
257
 
Line 218... Line 258...
218
			// gestion du clic droit sur un noeud
258
			// gestion du clic droit sur un noeud
219
			public void onContextMenu(TreeNode node, EventObject e) {
259
			public void onContextMenu(TreeNode node, EventObject e) {
220
 
-
 
221
				e.stopEvent();
-
 
222
				surAffichageMenuContextuel(node, e, getTe());
-
 
223
 
-
 
224
			}
260
 
225
 
-
 
226
			// gestion du double clic sur un noeud
261
				e.stopEvent();
227
			public void onDblClick(TreeNode node, EventObject e) {
-
 
228
 
262
				surAffichageMenuContextuel(node, e, getTe());
229
				modifNoeud = true;
263
				if(!node.equals(arbreMotsCles.getRootNode())) {
230
				if (!node.getId().equals("racine")) {
264
					supprimerTag.enable();
Line 231... Line 265...
231
					te.startEdit(node);
265
					renommerTag.enable();
232
				}
266
				}
-
 
267
			}
-
 
268
 
-
 
269
			// gestion de la modification du texte d'un noeud
-
 
270
			public void onTextChange(TreeNode node, String text, String oldText) {
Line 233... Line 271...
233
			}
271
				
234
 
272
				if(node.equals(arbreMotsCles.getRootNode())) {
235
			// gestion de la modification du texte d'un noeud
273
					return;
236
			public void onTextChange(TreeNode node, String text, String oldText) {
274
				}
Line 315... Line 353...
315
			}
353
			}
316
		});
354
		});
Line 317... Line 355...
317
		
355
		
318
		annuler.addListener(new ButtonListenerAdapter() {
356
		annuler.addListener(new ButtonListenerAdapter() {
319
			public void onClick(Button button, EventObject e) {
357
			public void onClick(Button button, EventObject e) {
-
 
358
				hide();
-
 
359
			}
-
 
360
		});
-
 
361
		
-
 
362
		renommerTag.addListener(new ButtonListenerAdapter() {
-
 
363
			public void onClick(Button button, EventObject e) {
-
 
364
				TreeNode[] noeuds = ((MultiSelectionModel)arbreMotsCles.getSelectionModel()).getSelectedNodes();
-
 
365
				TreeNode noeudRenommage;
-
 
366
				if(noeuds.length > 0) {
-
 
367
					noeudRenommage = noeuds[noeuds.length - 1];
-
 
368
				} else {
-
 
369
					noeudRenommage = arbreMotsCles.getRootNode();
-
 
370
				}
-
 
371
				renommerNoeud(noeudRenommage);
-
 
372
			}
-
 
373
		});
-
 
374
		
-
 
375
		ajouterTag.addListener(new ButtonListenerAdapter() {
-
 
376
			@Override
-
 
377
			public void onClick(Button button, EventObject e) {
-
 
378
				
-
 
379
				TreeNode[] noeuds = ((MultiSelectionModel)arbreMotsCles.getSelectionModel()).getSelectedNodes();
-
 
380
				TreeNode noeudAjout;
-
 
381
				if(noeuds.length > 0) {
-
 
382
					noeudAjout = noeuds[noeuds.length - 1];
-
 
383
				} else {
-
 
384
					noeudAjout = arbreMotsCles.getRootNode();
-
 
385
				}
-
 
386
 
-
 
387
				ajouterNoeud(noeudAjout);
-
 
388
			}
-
 
389
		});
-
 
390
		
-
 
391
		supprimerTag.addListener(new ButtonListenerAdapter() {
-
 
392
			@Override
-
 
393
			public void onClick(Button button, EventObject e) {
-
 
394
				
-
 
395
				TreeNode[] noeuds = ((MultiSelectionModel)arbreMotsCles.getSelectionModel()).getSelectedNodes();
-
 
396
				for (int i = 0; i < noeuds.length; i++) {
-
 
397
					supprimerNoeud(noeuds[i]);
320
				close();
398
				}
321
			}
399
			}
322
		});
400
		});
Line 323... Line 401...
323
	}
401
	}
Line 336... Line 414...
336
	 *            le noeud à supprimer
414
	 *            le noeud à supprimer
337
	 */
415
	 */
338
	public void supprimerNoeud(TreeNode n) {
416
	public void supprimerNoeud(TreeNode n) {
339
		// si ça n'est pas la racine (qu'on ne peut pas supprimer)
417
		// si ça n'est pas la racine (qu'on ne peut pas supprimer)
340
		if (!n.getId().equals(getArbreMotsCles().getRootNode().getId())) {
418
		if (!n.getId().equals(getArbreMotsCles().getRootNode().getId())) {
-
 
419
			if(Window.confirm("Êtes vous sur de vouloir supprimer le mot clé "+n.getText()+" ?")) {
341
			// on détache le noeud et on le détruit
420
				// on détache le noeud et on le détruit
342
			n.getParentNode().removeChild(n);
421
				n.getParentNode().removeChild(n);
343
			n.destroy();
422
				n.destroy();
344
			// puis on en notifie le médiateur en lui passant le noeud supprimé
423
				// puis on en notifie le médiateur en lui passant le noeud supprimé
345
			// et l'arbre
424
				// et l'arbre
346
			surSuppressionMotCle(n, arbreMotsCles.getTree());
425
				surSuppressionMotCle(n, arbreMotsCles.getTree());
-
 
426
			}
347
		} else {
427
		} else {
348
			// si l'utilisateur tente de supprimer la racine, on l'avertit de
428
			// si l'utilisateur tente de supprimer la racine, on l'avertit de
349
			// son erreur
429
			// son erreur
350
			Window.alert("Impossible de supprimer la racine de l'arbre");
430
			Window.alert("Impossible de supprimer la racine de l'arbre");
351
		}
431
		}
Line 381... Line 461...
381
		// enfin on place le curseur et on fait apparaitre le champ d'édition
461
		// enfin on place le curseur et on fait apparaitre le champ d'édition
382
		// pour que l'utilisateur nomme son mot clé
462
		// pour que l'utilisateur nomme son mot clé
383
		te.startEdit(nd);
463
		te.startEdit(nd);
Line 384... Line 464...
384
 
464
 
-
 
465
	}
-
 
466
	
-
 
467
	/**
-
 
468
	 * Renomme le noeud passé en paramètre
-
 
469
	 */
-
 
470
	public void renommerNoeud(TreeNode n) {
-
 
471
		// TODO Auto-generated method stub
-
 
472
		te.startEdit(n);
Line 385... Line 473...
385
	}
473
	}
386
 
474
 
387
	/**
475
	/**
388
	 * Coche le noeud s'il est décoché, le décoche sinon
476
	 * Coche le noeud s'il est décoché, le décoche sinon