Программно отображать представление из подключаемого модуля Eclipse

StackOverflow https://stackoverflow.com/questions/171824

Вопрос

У меня есть плагин для приложения Eclipse RCP, который имеет представление. После того, как в приложении RCP происходит событие, создается плагин, его методы вызываются для заполнения модели плагина, но я не могу найти способ отображения вида без перехода к " Показать представление ... " ; меню.

Я бы подумал, что в синглтоне на рабочем месте было бы что-то, что могло бы с этим справиться, но я нигде не узнал.

Это было полезно?

Решение

Вы, вероятно, ищете это:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");

Другие советы

Если вызывается из обработчика команды

HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);

было бы лучше, как я знаю.

Я обнаружил необходимость перенести вид на передний план после того, как он был открыт и отодвинут на задний план. Метод активации делает свое дело.

PlatformUI.getWorkbench()
    .getActiveWorkbenchWindow()
    .getActivePage()
    .activate(workbenchPartToActivate);

ПРИМЕЧАНИЕ. workbenchPartToActivate является экземпляром IWorkbenchPart .

На e4 EPartService отвечает за открытие деталей. Это также можно использовать для открытия e3 ViewParts. Создайте следующий класс через IEclipseContext, вызовите метод openPart, и вы должны увидеть внутреннее представление браузера Eclipse.

public class Opener {
    @Inject
    EPartService partService;

    public void openPart() {
        MPart part = partService.createPart("org.eclipse.ui.browser.view");
        part.setLabel("Browser");

        partService.showPart(part, PartState.ACTIVATE);
    }
}

Здесь вы можете найти пример того, как это работает вместе с ваше приложение.e4xmi.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top