Question

Dans mes autres méthodes (données, textes, etc.) la méthode setItem fonctionne très bien pour afficher les modifications apportées à un élément d'arbre. Toutefois, l'appel setItem après avoir changé l'icône d'un élément ne semble pas avoir d'effet. Quelle est la meilleure façon de mettre à jour l'élément d'arborescence de sorte que la nouvelle icône apparaît?

Merci

public void modified()
{
    FormTreeItem workingItem;
    ;
    super();

    //find the current item
    workingItem = FormTreeControl.getItem(FormTreeControl.getSelection());
    //update the value
    workingItem.Image(1);
    //update the item in the list
    FormTreeControl.setItem(workingItem);

}
Était-ce utile?

La solution

trouvé quelques problèmes ici:
1. Ne jamais trouvé un moyen de mettre à jour l'icône sur un élément de l'arborescence efficace.
2. trouvé quelques-uns des objets de contrôle arbre ne sont pas initialisés si vous essayez d'ajouter / supprimer à partir d'une méthode de source de données, de sorte que la suppression d'éléments jette l'objet d'erreurs non initialisés.

fixe par:
1. Créez un nouvel élément (addAfterIdx de l'ancien article).
2. Supprimez l'ancien élément.
3. Sélectionnez le nouvel élément.
3. Placer le procédé de la source de données pour le contrôle de la forme réelle.

Voici le code qui a fonctionné pour moi:

public boolean modified()
{
    boolean ret;
    FormTreeItem workingItem = FormTreeControl.getItem(currentEditingIdx);
    TreeItemIdx newItemIdx;
    ;
    ret = super();

    //create a new item
    newItemIdx = SysFormTreeControl::addTreeItem(FormTreeControl, workingItem.text(), FormTreeControl.getParent(workingItem.idx()), workingItem.data(), element.imageIdx(ABC_Icon.text()));
    //delete the old item
    FormTreeControl.delete(currentEditingIdx);
    //select the new item
    FormTreeControl.selectionChanged(FormTreeControl.getItem(FormTreeControl.getRoot()), FormTreeControl.getItem(newItemIdx), FormTreeSelect::Unknown);

    return ret;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top