0

我第一次开发 a MultiPageEditor,一个页面应该显示 a 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");
    }
....

至少标签应该有效?

干杯,菲尔

4

1 回答 1

0

createProductPage您没有设置Composite停止显示的布局。

在这里的快速测试中,我添加SWT.BORDER到树查看器中,它正在填充页面,因此您的内容提供程序可能无法正常工作。

于 2013-11-06T09:39:46.777 回答