//trunk/jrest/services/InventoryKeywordTree.php |
---|
31,12 → 31,13 |
if ($action == 'modification') { |
$nouveau_nom = $pairs['motcle']; |
$modification = $this->getGestionMotsCles($uid[0])->renommerMotCle($id_mot_cle, $nouveau_nom); |
$modification = $this->getGestionMotsCles($uid[0])->renommerMotCle($id_mot_cle, $nouveau_nom); |
} else if ($action == 'deplacement') { |
$id_pere = $pairs['parent']; |
$modification = $this->getGestionMotsCles($uid[0])->deplacerMotCle($id_mot_cle, $id_pere, $id_utilisateur); |
} |
$modification = ($modification !== false); |
if($modification) { |
$this->envoyer("OK"); |
} |
//trunk/src/org/tela_botanica/client/vues/image/FenetreGestionMotsCles.java |
---|
320,6 → 320,12 |
Window.alert("Un mot clé ne peut pas être vide ou contenir les caractères suivants : "+MotsClesUtilitaire.getChaineCaracteresInterdits()); |
return; |
} |
if(!MotsClesUtilitaire.estUnePositionAutorisee(node, node.getParentNode(), text)) { |
te.startEdit(node); |
Window.alert("Un mot clé de même nom existe déjà à cette position"); |
return; |
} |
if(node.equals(arbreMotsCles.getRootNode())) { |
return; |
354,6 → 360,24 |
} |
} |
} |
@Override |
public boolean doBeforeMoveNode(Tree tree, TreeNode node, |
TreeNode oldParent, TreeNode newParent, int index) { |
boolean ok = true; |
if(!MotsClesUtilitaire.estUnePositionAutorisee(node, newParent, node.getText())) { |
ok = false; |
Window.alert("Un mot clé de même nom existe déjà à cette position"); |
} |
return ok; |
} |
@Override |
public boolean onNodeDragOver(TreePanel treePanel, TreeNode target, |
DragData dragData, String point, DragDrop source, |
TreeNode dropNode) { |
return MotsClesUtilitaire.estUnePositionAutorisee(dropNode, target, dropNode.getText()); |
} |
// gestion du déplacement d'un noeud |
@Override |
//trunk/src/org/tela_botanica/client/util/MotsClesUtilitaire.java |
---|
16,8 → 16,15 |
//TODO rassembler tout ce qui construit les arbres de mots clés ici |
private static String[] caracteresInterdits = {"\\", "/", ","}; |
public static String obtenirCheminParent(String cheminMotCle, String motCle) { |
return cheminMotCle.substring(0, cheminMotCle.length() - motCle.length() -1).toLowerCase(); |
public static String obtenirCheminParent(String cheminMotCle) { |
String[] tabChemin = cheminMotCle.split("/"); |
String cheminParent = "/"; |
if(tabChemin.length >= 1) { |
for(int i = 1; i < tabChemin.length - 1; i++) { |
cheminParent += tabChemin[i]+"/"; |
} |
} |
return cheminParent; |
} |
public static Object[] construireArbre(String NomRacine, String idRacine, |
57,7 → 64,7 |
String chemin = noeud.get("chemin").isString() |
.stringValue().toLowerCase(); |
String cheminParent = MotsClesUtilitaire.obtenirCheminParent(chemin, motCle); |
String cheminParent = MotsClesUtilitaire.obtenirCheminParent(chemin); |
String parent = parentes.get(cheminParent); |
String[] usObj = {motCle, idMotCle}; |
155,4 → 162,23 |
} |
return valide; |
} |
public static boolean estUnePositionAutorisee(TreeNode node, Node parent, String text) { |
if(parent == null) { |
parent = node.getParentNode(); |
} |
Node[] noeudsFreres = parent.getChildNodes(); |
boolean ok = true; |
for(int i = 0; i <= noeudsFreres.length; i++) { |
if(noeudsFreres[i] != null) { |
String cheminFrere = noeudsFreres[i].getPath(); |
String cheminNoeud = node.getPath(); |
String texteNoeudfrere = ((String[])noeudsFreres[i].getUserObject())[0]; |
if(!cheminFrere.equals(cheminNoeud) && text.equals(texteNoeudfrere)) { |
ok = false; |
} |
} |
} |
return ok; |
} |
} |