我第一次开发MultiPageEditor
,其中一个页面应该显示checkboxTreeViewer
,但我不能让它工作。另一个带有示例标签的页面也不起作用。我做的事情完全错了吗?到目前为止,这是我的代码:
public class PlcEditor extends MultiPageEditorPart implements
IResourceChangeListener, PropertyChangeListener {
....
@Override
protected void createPages() {
// Configuration Page
createConfigurationPage();
// Product Page
createProductPage();
}
private void createConfigurationPage() {
Composite container = new Composite(getContainer(), SWT.NONE);
FillLayout layout = new FillLayout();
container.setLayout(layout);
tv = new CheckboxTreeViewer(container, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL);
tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
tv.setAutoExpandLevel(2);
tv.setContentProvider(new ConfigurationContentProvider());
tv.setLabelProvider(new ConfigurationLabelProvider());
tv.setExpandPreCheckFilters(true);
tv.setInput("root");
tv.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
// If the item is checked or not. . .
if (event.getChecked()) {
// . . . check all its children
tv.setSubtreeChecked(event.getElement(), true);
} else {
// . . . uncheck all its children
tv.setSubtreeChecked(event.getElement(), false);
}
}
});
int index = addPage(container);
setPageText(index, "Configuration");
}
private void createProductPage() {
Composite container = new Composite(getContainer(), SWT.NONE);
Label label = new Label(container, SWT.BORDER);
label.setLocation(100, 50);
label.setText("Concrete Product");
int index = addPage(container);
setPageText(index, "Product");
}
....
至少标签应该有用吗?
干杯, 菲尔
答案 0 :(得分:0)
在createProductPage
中,您没有在Composite
上设置停止显示的布局。
在这里进行快速测试时,我将SWT.BORDER
添加到树查看器中,它正在填充页面,因此您的内容提供商可能无法正常工作。