Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2061 → Rev 2062

/trunk/src/org/tela_botanica/client/vues/image/FenetreGestionMotsCles.java
1,6 → 1,7
package org.tela_botanica.client.vues.image;
 
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.util.MotsClesUtilitaire;
 
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Window;
120,6 → 121,7
* panneau intermédiaire contenant l'arbre
*/
private Panel panelIntermediaire;
private String cheminTemporaireAjout;
 
/**
* Constructeur avec paramètre
310,6 → 312,12
// gestion de la modification du texte d'un noeud
@Override
public void onTextChange(TreeNode node, String text, String oldText) {
if(!MotsClesUtilitaire.estUnMotCleAutorise(text)) {
te.startEdit(node);
Window.alert("Un mot clé ne peut pas être vide ou contenir les caractères suivants : "+MotsClesUtilitaire.getChaineCaracteresInterdits());
return;
}
 
if(node.equals(arbreMotsCles.getRootNode())) {
return;
341,7 → 349,7
surChangementTexte(nd, getArbreMotsCles().getTree());
}
}
 
arbreMotsCles.disable();
}
 
// gestion du déplacement d'un noeud
485,30 → 493,13
* le futur parent du noeud à ajouter
*/
public void ajouterNoeud(TreeNode parent) {
 
// on met l'ajout du noeud à vrai
ajoutNoeud = true;
// on crée un nouveau noeud vide
TreeNode nd = new TreeNode("");
nd.setCls("x-view-treenode-keyword");
nd.setChecked(true);
// on associe un objet au noeud qui contient des infos
String[] usObject = new String[2];
// l'objet contient le nom du noeud
usObject[0] = "";
usObject[1] = genererIdMotCle(nd);
nd.setId(usObject[1]);
nd.setUserObject(usObject);
// l'identifiant d'un noeud c'est son hashcode
// l'objet associé au noeud contient aussi son identifiant
 
ajoutNoeud = true;
TreeNode nd = MotsClesUtilitaire.ajouterNoeud(parent, true);
// on le concatène au parent et on étend ses enfants
parent.appendChild(nd);
parent.expand();
// enfin on place le curseur et on fait apparaitre le champ d'édition
// pour que l'utilisateur nomme son mot clé
cheminTemporaireAjout = nd.getId();
te.startEdit(nd);
 
}
 
/**
612,27 → 603,37
// nouvelle image)
if (nouvelleDonnees instanceof String[]) {
 
// le tableau de String contient les id des mots clés associés à
// l'image
// on coche les mots clés contenu dans le tableau
tableauMotsClesEnCours = (String[]) nouvelleDonnees;
if(this.isVisible()) {
cocherMotsCles(tableauMotsClesEnCours);
} else {
addListener(new WindowListenerAdapter() {
@Override
public void onShow(Component component) {
cocherMotsCles(tableauMotsClesEnCours);
}
});
}
// le tableau de String contient les id des mots clés associés à
// l'image
// on coche les mots clés contenu dans le tableau
tableauMotsClesEnCours = (String[]) nouvelleDonnees;
if(this.isVisible()) {
cocherMotsCles(tableauMotsClesEnCours);
} else {
addListener(new WindowListenerAdapter() {
@Override
public void onShow(Component component) {
cocherMotsCles(tableauMotsClesEnCours);
}
});
}
}
// reception d'un nouvel identifiant de mot clé
if(nouvelleDonnees instanceof Integer) {
if(cheminTemporaireAjout != null) {
String id = ((Integer)(nouvelleDonnees)).toString();
TreeNode noeudEnAjout = arbreMotsCles.getNodeById(cheminTemporaireAjout);
String[] userObj = {noeudEnAjout.getText(), id};
noeudEnAjout.setUserObject(userObj);
noeudEnAjout.setId(id);
cheminTemporaireAjout = null;
}
}
arbreMotsCles.enable();
}
 
private String genererIdMotCle(TreeNode nd) {
return "" + (nd.hashCode() + (Math.random() * 10000));
}
/**
* Fonction récursive qui prend deux noeuds d'arbre en paramètre et crée un