我使用CheckboxTreeviewer和ICheckStateListener来获取已检查的元素。如果元素被检查,那么在同一个CheckboxTreeviewer中创建一组新的对象和setInut。但是当我在CheckboxTreeviewer中放入新的对象集时,先前检查的元素未经检查。
代码 -
chboxtv.addCheckStateListener(new ICheckStateListener() {
@Override
public void checkStateChanged(CheckStateChangedEvent event) {
String child=null;
String parent=null;
Object obj= event.getElement();
if(obj instanceof Children){
Children child=(Children)changed;
childvalue=child.getChildren();
rootvalue=child.getParent();
List<Parent> pList=getResult(rootvalue,childvalue);
//Getting previously checked element.
Object [] chek= chboxtv.getCheckedElements(); chboxtv.setInput(pList);
chboxtv.expandToLevel(3);
chboxtv.setCheckedElements(chek);
}
}
});
在我的情况下,总是在新的对象集中显示先前检查过的元素值。
如何在CheckboxTreeviewer中加载新的对象集时检查以前检查过的元素。
请参阅此问题的答案
CheckboxTreeviewer previously set checked elements after reload
但我的问题仍未解决。我浪费了两天时间。
如何实现这一目标?