Subversion Repositories eFlore/Applications.cel

Rev

Rev 2033 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2033 Rev 2042
Line 26... Line 26...
26
import org.tela_botanica.client.modeles.objets.Configuration;
26
import org.tela_botanica.client.modeles.objets.Configuration;
27
import org.tela_botanica.client.modeles.objets.ListeObservation;
27
import org.tela_botanica.client.modeles.objets.ListeObservation;
28
import org.tela_botanica.client.modeles.objets.Observation;
28
import org.tela_botanica.client.modeles.objets.Observation;
29
import org.tela_botanica.client.modeles.objets.Utilisateur;
29
import org.tela_botanica.client.modeles.objets.Utilisateur;
30
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
30
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels;
-
 
31
import org.tela_botanica.client.util.MotsClesUtilitaire;
-
 
32
 
31
import com.google.gwt.json.client.JSONArray;
33
import com.google.gwt.json.client.JSONArray;
32
import com.google.gwt.json.client.JSONObject;
34
import com.google.gwt.json.client.JSONObject;
-
 
35
import com.google.gwt.user.client.Window;
33
import com.gwtext.client.data.Node;
36
import com.gwtext.client.data.Node;
34
import com.gwtext.client.data.Tree;
37
import com.gwtext.client.data.Tree;
35
import com.gwtext.client.widgets.tree.TreeNode;
38
import com.gwtext.client.widgets.tree.TreeNode;
Line 408... Line 411...
408
	}
411
	}
Line 409... Line 412...
409
 
412
 
410
	@Override
413
	@Override
411
	public void rafraichir(Object nouvelleDonnees,
414
	public void rafraichir(Object nouvelleDonnees,
412
			boolean repandreRaffraichissement) {
-
 
413
		
415
			boolean repandreRaffraichissement) {		
414
		if(nouvelleDonnees instanceof JSONArray) {
-
 
415
			// alors on a reçu les informations sur les mots clés
-
 
416
			JSONArray reponse = (JSONArray) nouvelleDonnees;
-
 
417
 
-
 
418
			final int taillemax = reponse.size();
-
 
419
 
-
 
420
			// si le tableau est vide
-
 
421
			if (taillemax == 0) {
-
 
422
				// on crée un arbre vide
-
 
423
				TreeNode root = new TreeNode();
-
 
424
				root.setId("racine_obs");
-
 
425
				root.setText("Projets");
-
 
426
				String[] usObj = { "Projets", "racine_obs" };
-
 
427
				root.setUserObject(usObj);
-
 
428
				arbreMotsCles.setRootNode(root);
-
 
429
				
-
 
430
			}
-
 
431
 
-
 
432
			// pour chacun des élements du tableau
-
 
433
			for (int j = 0; j < taillemax; j++) {
-
 
434
				// on extrait les élements du tableau
-
 
435
				if (reponse.get(j).isObject() != null) {
-
 
436
					JSONObject noeud = (JSONObject) reponse.get(j);
-
 
437
 
-
 
438
					String id_noeud = noeud.get("id_mot_cle_obs")
-
 
439
							.isString().stringValue();
-
 
440
					String mot_cle = noeud.get("mot_cle").isString()
-
 
441
							.stringValue();
-
 
442
					String parent = noeud.get("ce_mot_cle_obs_parent").isString()
-
 
443
							.stringValue();
-
 
444
 
-
 
445
					String[] usObj = { mot_cle, id_noeud };
-
 
446
 
-
 
447
					// et on construit l'arbre à partir de la racine (qui est
-
 
448
					// toujoursl e premier élément)
-
 
449
					if (id_noeud.equals("racine_obs")) {
-
 
450
						TreeNode root = new TreeNode();
-
 
451
						root.setId(id_noeud);
-
 
452
						root.setText(mot_cle);
-
 
453
						root.setUserObject(usObj);
-
 
454
						arbreMotsCles.setRootNode(root);
-
 
455
					} else {
-
 
456
						// et en ajoutant les noeuds un à un (qui sont renvoyé
-
 
457
						// dans l'ordre hierarchique de leur niveau
-
 
458
						// ce qui permet de les traiter séquentiellement)
-
 
459
						TreeNode node = new TreeNode();
-
 
460
						node.setId(id_noeud);
-
 
461
						node.setText(mot_cle);
-
 
462
						node.setChecked(false);
-
 
463
						Node parentNode = arbreMotsCles.getNodeById(parent);
-
 
Line 464... Line 416...
464
						node.setUserObject(usObj);
416
		if(nouvelleDonnees instanceof JSONArray) {
465
						
-
 
-
 
417
			
Line 466... Line 418...
466
						parentNode.appendChild(node);
418
			JSONArray donneesArbre = (JSONArray)nouvelleDonnees;
467
					}
-
 
468
					
-
 
-
 
419
			Object[] arbreEtCorrespondancesIds = MotsClesUtilitaire.construireArbre("Projets", "racine_obs", donneesArbre);
Line 469... Line 420...
469
					motsCles.put(id_noeud, mot_cle);
420
			
470
				}
421
			arbreMotsCles = (Tree)arbreEtCorrespondancesIds[0];
471
			}
422
			motsCles = (HashMap<String, String>)arbreEtCorrespondancesIds[1];
472
			
423
			
Line 590... Line 541...
590
	 *            le nouveau noeud contenant le mot clé
541
	 *            le nouveau noeud contenant le mot clé
591
	 * @param arbreMC
542
	 * @param arbreMC
592
	 *            l'arbre des mots cles en cours
543
	 *            l'arbre des mots cles en cours
593
	 */
544
	 */
594
	public void ajouterMotCleDansArbre(TreeNode n,
545
	public void ajouterMotCleDansArbre(TreeNode n,
595
			com.gwtext.client.data.Tree arbreMC) {
546
			com.gwtext.client.data.Tree arbreMC, Rafraichissable r) {
596
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs");
547
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs");
Line 597... Line 548...
597
 
548
 
598
		String[] usObj = (String[]) n.getUserObject();
549
		String[] usObj = (String[]) n.getUserObject();
599
		String motCle = usObj[0];
550
		String motCle = usObj[0];
600
		String id = usObj[1];
551
		String id = usObj[1];
Line 601... Line 552...
601
		String parentId = "";
552
		String parentId = "";
602
 
553
 
-
 
554
		if (!id.equals("racine_obs")) {
-
 
555
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
-
 
556
			if(parentUsObj[1].equals("racine_obs")) {
603
		if (!id.equals("racine_obs")) {
557
				parentId= "";
-
 
558
			} else {
604
			String[] parentUsObj = (String[]) n.getParentNode().getUserObject();
559
				parentId = parentUsObj[1];
605
			parentId = parentUsObj[1];
560
			}
606
		} else {
561
		} else {
Line 607... Line 562...
607
			parentId = "racine_obs";
562
			parentId = "";
-
 
563
		}
Line 608... Line 564...
608
		}
564
		
609
		
565
		rafraichirArbreMotsCles(arbreMC);
610
		rafraichirArbreMotsCles(arbreMC);
566
		motsCles.put(id, motCle);
611
 
567
 
Line 612... Line 568...
612
		String nouveauMotCle = "&identifiant=" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "&motcle="
568
		String nouveauMotCle = "&identifiant=" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "&motcle="
613
				+ motCle + "&id=" + id + "&parent=" + parentId;
569
				+ motCle + "&id=" + id + "&parent=" + parentId;
614
		MCDao.ajouterBaseDeDonnees(nouveauMotCle);
570
		MCDao.ajouterBaseDeDonnees(nouveauMotCle, r);
Line 643... Line 599...
643
	 * @param n
599
	 * @param n
644
	 *            le noeud modifié
600
	 *            le noeud modifié
645
	 * @param arbreMC
601
	 * @param arbreMC
646
	 *            l'arbre des mots clés en cours
602
	 *            l'arbre des mots clés en cours
647
	 */
603
	 */
648
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) {
604
	public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC, Rafraichissable r) {
Line 649... Line 605...
649
 
605
 
Line 650... Line 606...
650
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs");
606
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs");
651
 
607
 
Line 663... Line 619...
663
 
619
 
Line 664... Line 620...
664
		rafraichirArbreMotsCles(arbreMC);
620
		rafraichirArbreMotsCles(arbreMC);
665
 
621
 
666
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
622
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
Line 667... Line 623...
667
				+ parentId;
623
				+ parentId;
Line 668... Line 624...
668
		MCDao.modifierBaseDeDonnees(motCleModifie);
624
		MCDao.modifierBaseDeDonnees(motCleModifie, r);
669
 
625
 
Line 676... Line 632...
676
	 * @param n
632
	 * @param n
677
	 *            le noeud deplace (et son sous arbre associe)
633
	 *            le noeud deplace (et son sous arbre associe)
678
	 * @param arbreMC
634
	 * @param arbreMC
679
	 *            l'arbre des mots cles en cours
635
	 *            l'arbre des mots cles en cours
680
	 */
636
	 */
681
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) {
637
	public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC, Rafraichissable r) {
682
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs");
638
		MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs");
Line 683... Line 639...
683
 
639
 
684
		String[] usObj = (String[]) n.getUserObject();
640
		String[] usObj = (String[]) n.getUserObject();
685
		String motCle = usObj[0];
641
		String motCle = usObj[0];
Line 694... Line 650...
694
		
650
		
Line 695... Line 651...
695
		rafraichirArbreMotsCles(arbreMC);
651
		rafraichirArbreMotsCles(arbreMC);
696
 
652
 
697
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
653
		String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent="
698
				+ parentId;
654
				+ parentId;
Line 699... Line 655...
699
		MCDao.deplacerBaseDeDonnees(motCleModifie);
655
		MCDao.deplacerBaseDeDonnees(motCleModifie, r);
700
	}
656
	}
701
	
657