Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1837 Rev 2062
Line 1... Line 1...
1
package org.tela_botanica.client.vues.image;
1
package org.tela_botanica.client.vues.image;
Line 2... Line 2...
2
 
2
 
-
 
3
import org.tela_botanica.client.interfaces.Rafraichissable;
Line 3... Line 4...
3
import org.tela_botanica.client.interfaces.Rafraichissable;
4
import org.tela_botanica.client.util.MotsClesUtilitaire;
4
 
5
 
5
import com.google.gwt.core.client.JavaScriptObject;
6
import com.google.gwt.core.client.JavaScriptObject;
6
import com.google.gwt.user.client.Window;
7
import com.google.gwt.user.client.Window;
Line 118... Line 119...
118
	
119
	
119
	/**
120
	/**
120
	 * panneau intermédiaire contenant l'arbre
121
	 * panneau intermédiaire contenant l'arbre
121
	 */
122
	 */
-
 
123
	private Panel panelIntermediaire;
Line 122... Line 124...
122
	private Panel panelIntermediaire;
124
	private String cheminTemporaireAjout;
123
 
125
 
124
	/**
126
	/**
125
	 * Constructeur avec paramètre
127
	 * Constructeur avec paramètre
Line 308... Line 310...
308
			}
310
			}
Line 309... Line 311...
309
 
311
 
310
			// gestion de la modification du texte d'un noeud
312
			// gestion de la modification du texte d'un noeud
311
			@Override
313
			@Override
-
 
314
			public void onTextChange(TreeNode node, String text, String oldText) {
-
 
315
				
-
 
316
				if(!MotsClesUtilitaire.estUnMotCleAutorise(text)) {
-
 
317
					te.startEdit(node);
-
 
318
					Window.alert("Un mot clé ne peut pas être vide ou contenir les caractères suivants : "+MotsClesUtilitaire.getChaineCaracteresInterdits());
-
 
319
					return;
Line 312... Line 320...
312
			public void onTextChange(TreeNode node, String text, String oldText) {
320
				}
313
 
321
 
314
				if(node.equals(arbreMotsCles.getRootNode())) {
322
				if(node.equals(arbreMotsCles.getRootNode())) {
Line 339... Line 347...
339
						// et on notifie le médiateur de la modification et on lui
347
						// et on notifie le médiateur de la modification et on lui
340
						// passe l'arbre
348
						// passe l'arbre
341
						surChangementTexte(nd, getArbreMotsCles().getTree());
349
						surChangementTexte(nd, getArbreMotsCles().getTree());
342
					}
350
					}
343
				}
351
				}
344
 
-
 
-
 
352
				arbreMotsCles.disable();
345
			}
353
			}
Line 346... Line 354...
346
 
354
 
347
			// gestion du déplacement d'un noeud
355
			// gestion du déplacement d'un noeud
348
			@Override
356
			@Override
Line 483... Line 491...
483
	 * 
491
	 * 
484
	 * @param parent
492
	 * @param parent
485
	 *            le futur parent du noeud à ajouter
493
	 *            le futur parent du noeud à ajouter
486
	 */
494
	 */
487
	public void ajouterNoeud(TreeNode parent) {
495
	public void ajouterNoeud(TreeNode parent) {
488
 
-
 
489
		// on met l'ajout du noeud à vrai
-
 
490
		ajoutNoeud = true;
496
		ajoutNoeud = true;		
491
		// on crée un nouveau noeud vide
-
 
492
		TreeNode nd = new TreeNode("");
497
		TreeNode nd = MotsClesUtilitaire.ajouterNoeud(parent, true);
493
		nd.setCls("x-view-treenode-keyword");
-
 
494
		nd.setChecked(true);
-
 
495
		// on associe un objet au noeud qui contient des infos
-
 
496
		String[] usObject = new String[2];
-
 
497
		// l'objet contient le nom du noeud
-
 
498
		usObject[0] = "";
-
 
499
		usObject[1] = genererIdMotCle(nd);
-
 
500
		nd.setId(usObject[1]);
-
 
501
		nd.setUserObject(usObject);
-
 
502
		// l'identifiant d'un noeud c'est son hashcode
-
 
503
		// l'objet associé au noeud contient aussi son identifiant
-
 
504
 
-
 
505
		// on le concatène au parent et on étend ses enfants
498
		// on le concatène au parent et on étend ses enfants
506
		parent.appendChild(nd);
499
		parent.appendChild(nd);
507
		parent.expand();
500
		parent.expand();
508
		// enfin on place le curseur et on fait apparaitre le champ d'édition
-
 
509
		// pour que l'utilisateur nomme son mot clé
501
		cheminTemporaireAjout = nd.getId();
510
		te.startEdit(nd);
502
		te.startEdit(nd);
511
 
-
 
512
	}
503
	}
Line 513... Line 504...
513
 
504
 
514
	/**
505
	/**
515
	 * Renomme le noeud passé en paramètre
506
	 * Renomme le noeud passé en paramètre
Line 610... Line 601...
610
 
601
 
611
		// Si on reçoit un tableau de String (cas ou l'on séléectionne une
602
		// Si on reçoit un tableau de String (cas ou l'on séléectionne une
612
		// nouvelle image)
603
		// nouvelle image)
Line 613... Line 604...
613
		if (nouvelleDonnees instanceof String[]) {
604
		if (nouvelleDonnees instanceof String[]) {
614
 
605
 
615
				// le tableau de String contient les id des mots clés associés à
606
			// le tableau de String contient les id des mots clés associés à
616
				// l'image
607
			// l'image
617
				// on coche les mots clés contenu dans le tableau
608
			// on coche les mots clés contenu dans le tableau
618
				tableauMotsClesEnCours = (String[]) nouvelleDonnees;
609
			tableauMotsClesEnCours = (String[]) nouvelleDonnees;
619
				if(this.isVisible()) {
610
			if(this.isVisible()) {
620
					cocherMotsCles(tableauMotsClesEnCours);
611
				cocherMotsCles(tableauMotsClesEnCours);
621
				} else {
612
			} else {
622
					addListener(new WindowListenerAdapter() {
613
				addListener(new WindowListenerAdapter() {
623
						
614
					
624
						@Override
615
					@Override
625
						public void onShow(Component component) {
616
					public void onShow(Component component) {
626
							cocherMotsCles(tableauMotsClesEnCours);
617
						cocherMotsCles(tableauMotsClesEnCours);
627
						}
618
					}
628
					});
619
				});
-
 
620
			}
-
 
621
		}
-
 
622
		
-
 
623
		// reception d'un nouvel identifiant de mot clé
-
 
624
		if(nouvelleDonnees instanceof Integer) {
-
 
625
			if(cheminTemporaireAjout != null) {
-
 
626
				String id = ((Integer)(nouvelleDonnees)).toString();
-
 
627
				TreeNode noeudEnAjout = arbreMotsCles.getNodeById(cheminTemporaireAjout);
-
 
628
				String[] userObj = {noeudEnAjout.getText(), id};
-
 
629
				noeudEnAjout.setUserObject(userObj);
-
 
630
				noeudEnAjout.setId(id);
629
				}
631
				cheminTemporaireAjout = null;
630
		}
632
			}
631
	}
633
		}
632
 
-
 
633
	private String genererIdMotCle(TreeNode nd) {
634
		
Line 634... Line 635...
634
		return "" + (nd.hashCode() + (Math.random() * 10000));
635
		arbreMotsCles.enable();
635
	}
636
	}
636
	
637