Как показать другой вид из того же класса представления?

Мне нужно открыть несколько представлений из одного и того же класса представления с разными данными.

Подробнее. У меня есть TreeViewer с шестью TreeParent. Теперь, когда я выбираю одного родителя, мое приложение будет отображать представление, и если я нажму на другое, оно больше не будет отображаться. Теперь я хочу показать представление для каждого элемента дерева, на который я нажал.

Любое предложение?

Мой текущий код:

viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            // TODO Auto-generated method stub
            ITreeSelection iTreeSelection = (ITreeSelection) viewer
                    .getSelection();
            Object firstElement = iTreeSelection.getFirstElement();
            try {
                IWorkbenchWindow iWorkbenchWindow = PlatformUI
                        .getWorkbench().getActiveWorkbenchWindow();
                View.setTree(firstElement);
                iWorkbenchWindow.getActivePage().showView(View.ID);

            } catch (Exception e) {
                // TODO: handle exception
            }

        }
    });`

person gamo    schedule 21.08.2014    source источник


Ответы (1)


Вы можете открыть несколько копий одного и того же представления, используя «вторичный идентификатор», чтобы различать представления. Вам альтернативная версия showView для этого:

IWorkbenchPage activePage = iWorkbenchWindow.getActivePage();

activePage.showView(View.ID, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);

где secondaryId — это строка, идентифицирующая конкретный экземпляр представления.

person greg-449    schedule 21.08.2014