MultiPageEditor: Как отобразить дерево просмотра
Я впервые разрабатываю 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");
}
....
По крайней мере, ярлык должен работать?
Ура, Фил
1 ответ
В createProductPage
Вы не устанавливаете макет на Composite
который останавливает его отображение.
На быстрый тест здесь я добавил SWT.BORDER
в дерево просмотра, и он заполняет страницу, так что, возможно, ваш контент-провайдер не работает.