Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1832 Rev 2042
Line 18... Line 18...
18
import org.tela_botanica.client.modeles.objets.Configuration;
18
import org.tela_botanica.client.modeles.objets.Configuration;
19
import org.tela_botanica.client.modeles.objets.ImageCarnet;
19
import org.tela_botanica.client.modeles.objets.ImageCarnet;
20
import org.tela_botanica.client.modeles.objets.ListeImageCarnet;
20
import org.tela_botanica.client.modeles.objets.ListeImageCarnet;
21
import org.tela_botanica.client.modeles.objets.ListeObservation;
21
import org.tela_botanica.client.modeles.objets.ListeObservation;
22
import org.tela_botanica.client.modeles.objets.Utilisateur;
22
import org.tela_botanica.client.modeles.objets.Utilisateur;
-
 
23
import org.tela_botanica.client.util.MotsClesUtilitaire;
Line 23... Line 24...
23
 
24
 
24
import com.google.gwt.json.client.JSONArray;
25
import com.google.gwt.json.client.JSONArray;
25
import com.google.gwt.json.client.JSONObject;
26
import com.google.gwt.json.client.JSONObject;
26
import com.gwtext.client.data.ArrayReader;
27
import com.gwtext.client.data.ArrayReader;
Line 480... Line 481...
480
			}
481
			}
481
		}
482
		}
Line 482... Line 483...
482
 
483
 
483
		// si on reçoit un tableau JSON
484
		// si on reçoit un tableau JSON
484
		if (nouvelleDonnees instanceof JSONArray) {
485
		if (nouvelleDonnees instanceof JSONArray) {
485
			// alors on a reçu les informations sur les mots clés
486
			// alors on a reçu les informations sur les mots clés			
486
			JSONArray reponse = (JSONArray) nouvelleDonnees;
-
 
487
 
-
 
488
			final int taillemax = reponse.size();
-
 
489
 
-
 
490
			// si le tableau est vide
-
 
491
			if (taillemax == 0) {
-
 
492
				// on crée un arbre vide
-
 
493
				TreeNode root = new TreeNode();
-
 
494
				root.setId("racine");
-
 
495
				root.setText("Tags");
-
 
496
				String[] usObj = { "Tags", "racine" };
-
 
497
				root.setUserObject(usObj);
-
 
498
				arbreMotsCles.setRootNode(root);
-
 
499
			}
-
 
500
			
-
 
501
			HashMap<String, String> motsCles = new HashMap<String, String>(taillemax);
-
 
502
 
-
 
503
			// pour chacun des élements du tableau
-
 
504
			for (int j = 0; j < taillemax; j++) {
-
 
505
				// on extrait les élements du tableau
-
 
506
				if (reponse.get(j).isObject() != null) {
-
 
507
					JSONObject noeud = (JSONObject) reponse.get(j);
-
 
508
 
-
 
509
					String id_noeud = noeud.get("id_mot_cle_image")
-
 
510
							.isString().stringValue();
-
 
511
					String mot_cle = noeud.get("mot_cle").isString()
-
 
512
							.stringValue();
-
 
513
					String parent = noeud.get("ce_mot_cle_image_parent").isString()
-
 
514
							.stringValue();
-
 
515
 
-
 
516
					String[] usObj = { mot_cle, id_noeud };
-
 
517
 
-
 
518
					// et on construit l'arbre à partir de la racine (qui est
-
 
519
					// toujours le premier élément)
-
 
520
					if (id_noeud.equals("racine")) {
-
 
521
						TreeNode root = new TreeNode();
-
 
522
						root.setId(id_noeud);
-
 
523
						root.setText(mot_cle);
-
 
524
						root.setUserObject(usObj);
-
 
525
						arbreMotsCles.setRootNode(root);
-
 
526
					} else {
-
 
527
						// et en ajoutant les noeuds un à un (qui sont renvoyé
-
 
528
						// dans l'ordre hierarchique de leur niveau
-
 
529
						// ce qui permet de les traiter séquentiellement)
-
 
530
						TreeNode node = new TreeNode();
-
 
531
						node.setId(id_noeud);
-
 
532
						node.setText(mot_cle);
-
 
533
						node.setChecked(false);
-
 
534
						Node parentNode = arbreMotsCles.getNodeById(parent);
-
 
535
						node.setUserObject(usObj);
-
 
536
						parentNode.appendChild(node);
-
 
537
					}
-
 
538
					
-
 
539
					motsCles.put(id_noeud, mot_cle);
-
 
540
				}
-
 
Line -... Line 487...
-
 
487
			JSONArray donneesArbre = (JSONArray)nouvelleDonnees;
Line -... Line 488...
-
 
488
			
-
 
489
			Object[] arbreEtCorrespondancesIds = MotsClesUtilitaire.construireArbre("Tags", "racine", donneesArbre);
-
 
490
			
541
			}
491
			arbreMotsCles = (Tree)arbreEtCorrespondancesIds[0];
542
			
492
			motsCles = (HashMap<String, String>)arbreEtCorrespondancesIds[1];
543
			
493
 
544
			// enfin on met à jour l'arbre des mots clés contenu dans le modèle
494
			// enfin on met à jour l'arbre des mots clés contenu dans le modèle
545
			rafraichirArbreMotsCles(arbreMotsCles);
495
			rafraichirArbreMotsCles(arbreMotsCles);
Line 651... Line 601...
651
	 *            le nouveau noeud contenant le mot clé
601
	 *            le nouveau noeud contenant le mot clé
652
	 * @param arbreMC
602
	 * @param arbreMC
653
	 *            l'arbre des mots cles en cours
603
	 *            l'arbre des mots cles en cours
654
	 */
604
	 */
655
	public void ajouterMotCleDansArbre(TreeNode n,
605
	public void ajouterMotCleDansArbre(TreeNode n,
656
			com.gwtext.client.data.Tree arbreMC) {
606
			com.gwtext.client.data.Tree arbreMC, Rafraichissable r) {
657
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("images");
607
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("images");
Line 658... Line 608...
658
 
608
 
659
		String[] usObj = (String[]) n.getUserObject();
609
		String[] usObj = (String[]) n.getUserObject();
660
		String motCle = usObj[0];
610
		String motCle = usObj[0];
Line 671... Line 621...
671
		rafraichirArbreMotsCles(arbreMC);
621
		rafraichirArbreMotsCles(arbreMC);
672
		mettreAjourMotsClesId(motCle, id);
622
		mettreAjourMotsClesId(motCle, id);
Line 673... Line 623...
673
 
623
 
674
		String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle="
624
		String nouveauMotCle = "&identifiant=" + getIdentifiant() + "&motcle="
675
				+ motCle + "&id=" + id + "&parent=" + parentId;
625
				+ motCle + "&id=" + id + "&parent=" + parentId;
676
		MCDao.ajouterBaseDeDonnees(nouveauMotCle);
626
		MCDao.ajouterBaseDeDonnees(nouveauMotCle, r);
Line 677... Line 627...
677
	}
627
	}
678
 
628
 
679
	/**
629
	/**
Line 703... Line 653...
703
	 * @param n
653
	 * @param n
704
	 *            le noeud modifié
654
	 *            le noeud modifié
705
	 * @param arbreMC
655
	 * @param arbreMC
706
	 *            l'arbre des mots clés en cours
656
	 *            l'arbre des mots clés en cours
707
	 */
657
	 */
708
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
658
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC, Rafraichissable r) {
Line 709... Line 659...
709
 
659
 
Line 710... Line 660...
710
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("images");
660
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("images");
711
 
661
 
Line 723... Line 673...
723
 
673
 
Line 724... Line 674...
724
		rafraichirArbreMotsCles(arbreMC);
674
		rafraichirArbreMotsCles(arbreMC);
725
 
675
 
726
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
676
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
Line 727... Line 677...
727
				+ parentId;
677
				+ parentId;
Line 728... Line 678...
728
		MCDao.modifierBaseDeDonnees(motCleModifie);
678
		MCDao.modifierBaseDeDonnees(motCleModifie, r);
729
 
679
 
Line 736... Line 686...
736
	 * @param n
686
	 * @param n
737
	 *            le noeud deplace (et son sous arbre associe)
687
	 *            le noeud deplace (et son sous arbre associe)
738
	 * @param arbreMC
688
	 * @param arbreMC
739
	 *            l'arbre des mots cles en cours
689
	 *            l'arbre des mots cles en cours
740
	 */
690
	 */
741
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
691
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC, Rafraichissable r) {
742
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("images");
692
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("images");
Line 743... Line 693...
743
 
693
 
744
		String[] usObj = (String[]) n.getUserObject();
694
		String[] usObj = (String[]) n.getUserObject();
745
		String motCle = usObj[0];
695
		String motCle = usObj[0];
Line 754... Line 704...
754
 
704
 
Line 755... Line 705...
755
		rafraichirArbreMotsCles(arbreMC);
705
		rafraichirArbreMotsCles(arbreMC);
756
 
706
 
757
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
707
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
758
				+ parentId;
708
				+ parentId;
Line 759... Line 709...
759
		MCDao.deplacerBaseDeDonnees(motCleModifie);
709
		MCDao.deplacerBaseDeDonnees(motCleModifie, r);
760
	}
710
	}
761
 
711