使用CellEditor,写modify()的方法的时候一般会更新TreeItem的值。
我想也有必要更新与TreeItem相对应的那个是数据Entity的值,这里就有一个问题,如何通过当前的TreeItem去Input List中寻找到相应的那个数据Entity呢?
我最初想了一个折衷的办法:使用当前的TreeSelection对象,从TreeSelection对象中提取Entity并更新其值,前提是通过[color=red]CellEditor来编辑数据是可以保证当前TreeSelection中的Entity数量有且只有一个,而且刚刚好就是CellEditor正在编辑的那个TreeItem对应的Entity[/color]。(理解的不知道对不对?)
[code]
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();
}
[/code]
但是这样会带来一个问题,如果CellEditor编辑完了以后不敲Enter的话,直接点击下一个CellEditor框会将数据更新为我们刚刚输入的数据。
最想知道,[color=red]TreeViewer如何通过TreeItem寻找到相应的Entity?[/color]
似乎应该发在新手区,请版主见谅,帮忙转移。谢谢。
我想也有必要更新与TreeItem相对应的那个是数据Entity的值,这里就有一个问题,如何通过当前的TreeItem去Input List中寻找到相应的那个数据Entity呢?
我最初想了一个折衷的办法:使用当前的TreeSelection对象,从TreeSelection对象中提取Entity并更新其值,前提是通过[color=red]CellEditor来编辑数据是可以保证当前TreeSelection中的Entity数量有且只有一个,而且刚刚好就是CellEditor正在编辑的那个TreeItem对应的Entity[/color]。(理解的不知道对不对?)
[code]
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();
}
[/code]
但是这样会带来一个问题,如果CellEditor编辑完了以后不敲Enter的话,直接点击下一个CellEditor框会将数据更新为我们刚刚输入的数据。
最想知道,[color=red]TreeViewer如何通过TreeItem寻找到相应的Entity?[/color]
似乎应该发在新手区,请版主见谅,帮忙转移。谢谢。