Java CheckedReselection对话框最初检查元素
我正在使用一个选中的重新选择对话框,我想先选择一些项目 如何使用方法setInitialSelections选择子项(级别2项目)而不是级别1Java CheckedReselection对话框最初检查元素,java,eclipse,dialog,swt,Java,Eclipse,Dialog,Swt,我正在使用一个选中的重新选择对话框,我想先选择一些项目 如何使用方法setInitialSelections选择子项(级别2项目)而不是级别1 CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog( this.containerComposite.getShell(), new myLabelProvider(), new myContentProvider()); dialog.setContai
CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(
this.containerComposite.getShell(), new myLabelProvider(), new
myContentProvider());
dialog.setContainerMode(true);
dialog.setInput(new MyModel());
Parent p = new Parent("I am a parent");
p.getChildren.add(new Child("I am a child"));
dialog.setInitialSelection(p);
当containerMode为false时,不会选择子元素,而当containerMode为true时(如示例所示),则会选择所有子元素。只需使用该方法并在列表中传递要选择的元素即可:
CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(
this.containerComposite.getShell(), new myLabelProvider(), new myContentProvider());
dialog.setContainerMode(true);
dialog.setInput(new MyModel());
List<Child> list = new ArrayList<Child>();
/* fill your list */
dialog.setInitialElementSelections(list);
checkedtreeselection对话框=新建checkedtreeselection对话框(
this.containerComposite.getShell()、新的myLabelProvider()、新的myContentProvider();
setContainerMode(true);
setInput(新的MyModel());
列表=新的ArrayList();
/*填写你的清单*/
对话框.setInitialElementSelections(列表);
请确保您完成了您的任务
dialog.setInitialElementSelections(model.getAllegements())代码>
打开对话框之前:dialog.open()代码>
因为否则它将无法工作。
我也有同样的问题——我只能标记第一级元素。
解决方案是确保这些方法在ITreeContentProvider
实现类中工作:
// this is the object that would get passed into setInput()
private MyModelProvider model;
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
this.model = (MyModelProvider ) newInput;
}
@Override
public Object getParent(Object element) {
if (element instanceof Child)
return model.getCategories().get(0); // I only have one category
return null;
}
没有使用它,但查看API和示例代码,您是否尝试过将对孩子的引用传递到setInitialSelection方法中?我尝试过,但孩子们没有被选中,但即使他们选择了,一些家长可能也有相同的孩子,如何区分?在某种程度上,我不应该给出父/子路径?请发布类的内容myContentProvider
。我尝试过,但孩子们没有被选中,但即使他们这样做了,一些父母可能有相同的孩子,它如何区分?在某种程度上,我不应该给父/子路径进行选择?@user847988他们怎么会有相同的子级?然后它将不是一棵树而是一个图形…@user847988顺便说一句:我发现了一个非常相似的问题,答案几乎相同,而且似乎有效。