Изменение динамического просмотра содержимого в представлении плагина Eclipse - PullRequest
0 голосов
/ 04 октября 2011

Я разрабатываю плагин Eclipse, который имеет древовидное представление с панелью инструментов и кнопками. Я бы хотел, чтобы плагин работал так, чтобы он отображал древовидную структуру по умолчанию, но в случае какой-либо ошибки будет текст и кнопка для инициализации или обновления плагина. Вид плагина должен динамически меняться в зависимости от состояния плагина между древовидным представлением и «видом ошибки».

Пока я создаю экземпляр treeview и выполняю другие необходимые действия в методе createPartControl, чтобы показать правильное представление дерева. Как мне реализовать динамическое представление, показывающее различный вид контента в представлении плагина? Это вообще возможно?

Код метода createPartControlMethod:

public void createPartControl(Composite parent) {
        viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        drillDownAdapter = new DrillDownAdapter(viewer);
        viewContentProvider = new ViewContentProvider();
        viewer.setContentProvider(viewContentProvider);
        viewer.setLabelProvider(new ViewLabelProvider());
        viewer.setSorter(new NameSorter());
        viewer.setInput(getViewSite());
        viewer.expandToLevel(2);

        // Create the help context id for the viewer's control
        PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "my.plugin.viewer");
        makeActions();
        hookContextMenu();
        hookDoubleClickAction();
        contributeToActionBars();
        setToolBarButtonsEnabled();

1 Ответ

0 голосов
/ 04 октября 2011

Самый простой способ - создать Composite с StackLayout и двумя дочерними элементами:

private Composite container;
private TreeViewer viewer;
private Composite errorComposite;
private StackLayout layout;

public void createPartControl(Composite parent) {
    container = new Composite(parent);
    layout = new StackLayout();
    viewer = new TreeViewer(container, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    ... // setup viewer
    errorComposite = new Composite(container, SWT.NONE);
    ... // setup error view
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...