28,8 → 28,11 |
import org.tela_botanica.client.modeles.objets.Observation; |
import org.tela_botanica.client.modeles.objets.Utilisateur; |
import org.tela_botanica.client.modeles.objets.ListeReferentielPerso.TypesReferentiels; |
import org.tela_botanica.client.util.MotsClesUtilitaire; |
|
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONObject; |
import com.google.gwt.user.client.Window; |
import com.gwtext.client.data.Node; |
import com.gwtext.client.data.Tree; |
import com.gwtext.client.widgets.tree.TreeNode; |
409,67 → 412,15 |
|
@Override |
public void rafraichir(Object nouvelleDonnees, |
boolean repandreRaffraichissement) { |
|
boolean repandreRaffraichissement) { |
if(nouvelleDonnees instanceof JSONArray) { |
// alors on a reçu les informations sur les mots clés |
JSONArray reponse = (JSONArray) nouvelleDonnees; |
|
final int taillemax = reponse.size(); |
|
// si le tableau est vide |
if (taillemax == 0) { |
// on crée un arbre vide |
TreeNode root = new TreeNode(); |
root.setId("racine_obs"); |
root.setText("Projets"); |
String[] usObj = { "Projets", "racine_obs" }; |
root.setUserObject(usObj); |
arbreMotsCles.setRootNode(root); |
|
} |
|
// pour chacun des élements du tableau |
for (int j = 0; j < taillemax; j++) { |
// on extrait les élements du tableau |
if (reponse.get(j).isObject() != null) { |
JSONObject noeud = (JSONObject) reponse.get(j); |
|
String id_noeud = noeud.get("id_mot_cle_obs") |
.isString().stringValue(); |
String mot_cle = noeud.get("mot_cle").isString() |
.stringValue(); |
String parent = noeud.get("ce_mot_cle_obs_parent").isString() |
.stringValue(); |
|
String[] usObj = { mot_cle, id_noeud }; |
|
// et on construit l'arbre à partir de la racine (qui est |
// toujoursl e premier élément) |
if (id_noeud.equals("racine_obs")) { |
TreeNode root = new TreeNode(); |
root.setId(id_noeud); |
root.setText(mot_cle); |
root.setUserObject(usObj); |
arbreMotsCles.setRootNode(root); |
} else { |
// et en ajoutant les noeuds un à un (qui sont renvoyé |
// dans l'ordre hierarchique de leur niveau |
// ce qui permet de les traiter séquentiellement) |
TreeNode node = new TreeNode(); |
node.setId(id_noeud); |
node.setText(mot_cle); |
node.setChecked(false); |
Node parentNode = arbreMotsCles.getNodeById(parent); |
node.setUserObject(usObj); |
|
parentNode.appendChild(node); |
} |
|
motsCles.put(id_noeud, mot_cle); |
} |
} |
|
JSONArray donneesArbre = (JSONArray)nouvelleDonnees; |
Object[] arbreEtCorrespondancesIds = MotsClesUtilitaire.construireArbre("Projets", "racine_obs", donneesArbre); |
|
arbreMotsCles = (Tree)arbreEtCorrespondancesIds[0]; |
motsCles = (HashMap<String, String>)arbreEtCorrespondancesIds[1]; |
|
// enfin on met à jour l'arbre des mots clés contenu dans le modèle |
//rafraichirArbreMotsCles(arbreMotsCles); |
// et on notifie le médiateur de la mise à jour en lui passant une |
592,7 → 543,7 |
* l'arbre des mots cles en cours |
*/ |
public void ajouterMotCleDansArbre(TreeNode n, |
com.gwtext.client.data.Tree arbreMC) { |
com.gwtext.client.data.Tree arbreMC, Rafraichissable r) { |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs"); |
|
String[] usObj = (String[]) n.getUserObject(); |
602,16 → 553,21 |
|
if (!id.equals("racine_obs")) { |
String[] parentUsObj = (String[]) n.getParentNode().getUserObject(); |
parentId = parentUsObj[1]; |
if(parentUsObj[1].equals("racine_obs")) { |
parentId= ""; |
} else { |
parentId = parentUsObj[1]; |
} |
} else { |
parentId = "racine_obs"; |
parentId = ""; |
} |
|
rafraichirArbreMotsCles(arbreMC); |
motsCles.put(id, motCle); |
|
String nouveauMotCle = "&identifiant=" + Utilisateur.getInstance().getIdentifiantUtilisateurConsulte() + "&motcle=" |
+ motCle + "&id=" + id + "&parent=" + parentId; |
MCDao.ajouterBaseDeDonnees(nouveauMotCle); |
MCDao.ajouterBaseDeDonnees(nouveauMotCle, r); |
} |
|
/** |
645,7 → 601,7 |
* @param arbreMC |
* l'arbre des mots clés en cours |
*/ |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC) { |
public void modifierMotCleDansArbre(TreeNode n, Tree arbreMC, Rafraichissable r) { |
|
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs"); |
|
665,7 → 621,7 |
|
String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent=" |
+ parentId; |
MCDao.modifierBaseDeDonnees(motCleModifie); |
MCDao.modifierBaseDeDonnees(motCleModifie, r); |
|
} |
|
678,7 → 634,7 |
* @param arbreMC |
* l'arbre des mots cles en cours |
*/ |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC) { |
public void deplacerMotCleDansArbre(TreeNode n, Tree arbreMC, Rafraichissable r) { |
MotsClesAsynchroneDAO MCDao = new MotsClesAsynchroneDAO("obs"); |
|
String[] usObj = (String[]) n.getUserObject(); |
696,7 → 652,7 |
|
String motCleModifie = "&motcle=" + motCle + "&id=" + id + "&parent=" |
+ parentId; |
MCDao.deplacerBaseDeDonnees(motCleModifie); |
MCDao.deplacerBaseDeDonnees(motCleModifie, r); |
} |
|
/** |