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

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

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

Ответы [ 4 ]

46 голосов
/ 05 октября 2008

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

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
18 голосов
/ 23 марта 2009

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

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

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

4 голосов
/ 20 мая 2009

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

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

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

0 голосов
/ 24 марта 2014

В 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);
    }
}

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

...