Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2061 → Rev 2062

/trunk/src/org/tela_botanica/client/vues/observation/filtres/ArbreMotsClesObservationVue.java
97,6 → 97,8
MultiSelectionModel msModel = null;
 
private String cheminTemporaireAjout = null;
public Rafraichissable thisRafraichissable;
 
/**
* Constructeur sans paramètre (privé car interdit d'utilisation)
139,8 → 141,7
// accélérer l'affichage
// et éviter des bugs
@Override
public void onRender(Component component) {
public void onRender(Component component) {
livue = oMediateur.getListeObservation();
// on crée le conteneur de l'arbre
248,7 → 249,6
*/
private void ajouterListeners() {
final Rafraichissable r = this;
arbreMotsCles.addListener(new TreePanelListenerAdapter() {
 
// gestion du clic sur un noeud
285,6 → 285,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;
}
 
// on récupère les informations associées au noeud
TreeNode nd = node;
295,25 → 301,15
 
// si c'est un nouveau noeud
if (ajoutNoeud) {
// on notifie le médiateur de l'ajout et on lui passe
// l'arbre
getOMediateur().ajouterMotCleDansArbre(nd,
getArbreMotsCles().getTree(), r);
// et considère l'ajout achevé
ajoutNoeud = false;
ajouterMotCleDansArbreMediateur(nd);
}
// si c'est noeud déjà existant
else {
if (modifNoeud) {
// on notifie le médiateur de la modification et on lui
// passe l'arbre
getOMediateur().modifierMotCleDansArbre(nd,
getArbreMotsCles().getTree());
// et on considère la modification achevée
modifNoeud = false;
modifierMotCleDansArbreMediateur(nd);
}
}
arbreMotsCles.disable();
//arbreMotsCles.disable();
}
 
// gestion du déplacement d'un noeud
380,7 → 376,24
 
}
private void ajouterMotCleDansArbreMediateur(TreeNode nd) {
// on notifie le médiateur de l'ajout et on lui passe
// l'arbre
getOMediateur().ajouterMotCleDansArbre(nd,
getArbreMotsCles().getTree(), this);
// et considère l'ajout achevé
ajoutNoeud = false;
}
private void modifierMotCleDansArbreMediateur(TreeNode nd) {
// on notifie le médiateur de la modification et on lui
// passe l'arbre
getOMediateur().modifierMotCleDansArbre(nd,
getArbreMotsCles().getTree());
// et on considère la modification achevée
modifNoeud = false;
}
/**
* Configure le drag 'n drop pour la liste
*/
422,7 → 435,7
// puis on en notifie le médiateur en lui passant le noeud supprimé
// et l'arbre
getOMediateur()
.supprimerMotCleDansArbre(n, arbreMotsCles.getTree());
.supprimerMotCleDansArbre(n, arbreMotsCles.getTree(), this);
}
} else {
// si l'utilisateur tente de supprimer la racine, on l'avertit de
438,31 → 451,17
* le futur parent du noeud à ajouter
*/
public void ajouterNoeud(TreeNode parent) {
 
// on met l'ajout du noeud à vrai
if(parent == null) {
parent = arbreMotsCles.getRootNode();
}
ajoutNoeud = true;
// on crée un nouveau noeud vide
TreeNode nd = new TreeNode("");
nd.setCls("x-view-treenode-keyword");
// 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] = "";
nd.setUserObject(usObject);
// l'identifiant d'un noeud c'est son hashcode
// l'objet associé au noeud contient aussi son identifiant
 
TreeNode nd = MotsClesUtilitaire.ajouterNoeud(parent, false);
// on le concatène au parent et on étend ses enfants
parent.appendChild(nd);
// en attendant qu'il soit ajouté on lui affecte son chemin en tant qu'id
// ce qui permettra de le retrouver et de lui affecter son id sur retour du web service
cheminTemporaireAjout = MotsClesUtilitaire.construireChemin(nd);
nd.setId(cheminTemporaireAjout);
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);
}
577,6 → 576,8
@Override
public void rafraichir(Object nouvelleDonnees,
boolean repandreRafraichissement) {
arbreMotsCles.enable();
if(nouvelleDonnees instanceof Tree) {
 
589,7 → 590,7
rootChild[i].remove();
}
MotsClesUtilitaire.copierFilsNoeud(nouvelArbre.getRootNode(),getArbreMotsCles().getRootNode());
MotsClesUtilitaire.copierFilsNoeud(nouvelArbre.getRootNode(),getArbreMotsCles().getRootNode(), false);
 
// si l'arbre n'était pas encore considéré comme instancié
if (!arbreCharge) {
643,8 → 644,6
cheminTemporaireAjout = null;
}
}
arbreMotsCles.enable();
}
public void raz() {