【发布时间】:2018-04-27 17:01:23
【问题描述】:
在 TreeViewer 中添加元素后刷新 TreeViewer 不起作用,但在删除 TreeViewer 中的元素后刷新 TreeViewer 工作。 我的删除/删除动作是这样的,EntityElement 是树节点的基本类型:
public void run() {
// TODO Auto-generated method stub
IStructuredSelection selection = (IStructuredSelection) viewSite.getSelectionProvider().getSelection();
Object firstElement = selection.getFirstElement();
if (firstElement instanceof EntityElement) {
EntityElement entityElement = (EntityElement)firstElement;
entityElement.getParent().removeChildren(entityElement);
tv.refresh(entityElement.getParent(), false);
}
}
我的Add Action是这样的,object就是选中的树节点Object:
public void run() {
// TODO Auto-generated method stub
if (object instanceof EntityElement) {
EntityElement demoElement = ((EntityElement) object).getChildren().get(0);
((EntityElement) object).getChildren().add(demoElement); //Add its first child by default
Variable.treeViewer.refresh((EntityElement) object);
}
}
}
我想问为什么删除操作有效但添加操作无效?
【问题讨论】:
-
您正在向
object添加一个已经在object的子代中的子代。如果你是故意这样做的,我会感到惊讶。 -
@nitind 我不想要一个新的 EntityElement 对象。为方便起见,我只是再次添加了对象的第一个子节点,只是为了测试添加操作功能。
标签: eclipse-plugin eclipse-rcp treeviewer