TreeViewer如何通过TreeItem寻找到相应的Entity(即Input List中的元素)?

阅读更多
使用CellEditor,写modify()的方法的时候一般会更新TreeItem的值。

我想也有必要更新与TreeItem相对应的那个是数据Entity的值,这里就有一个问题,如何通过当前的TreeItem去Input List中寻找到相应的那个数据Entity呢?

我最初想了一个折衷的办法:使用当前的TreeSelection对象,从TreeSelection对象中提取Entity并更新其值,前提是通过 CellEditor来编辑数据是可以保证当前TreeSelection中的Entity数量有且只有一个,而且刚刚好就是CellEditor正在编辑的那个TreeItem对应的Entity。(理解的不知道对不对?)

TreeSelection selection = (TreeSelection) treeViewer.getSelection();
if (!selection.isEmpty()) {
    for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
    Entity domain = (Entity) iterator.next();
    /*
     * Update the domain correlated the TreeItem where
     * CellEditor at.
     */
     domain.setValue(val);
     }
treeViewer.refresh();
}


但是这样会带来一个问题,如果CellEditor编辑完了以后不敲Enter的话,直接点击下一个CellEditor框会将数据更新为我们刚刚输入的数据。

最想知道, TreeViewer如何通过TreeItem寻找到相应的Entity?

似乎应该发在新手区,请版主见谅,帮忙转移。谢谢。

你可能感兴趣的:(Mobile,Eclipse,UI)