Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2193 → Rev 2194

/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;
}
}
/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