Question

I have a plug-in to an Eclipse RCP application that has a view. After an event occurs in the RCP application, the plug-in is instantiated, its methods are called to populate the plug-in's model, but I cannot find how to make the view appear without going to the "Show View..." menu.

I would think that there would be something in the workbench singleton that could handle this, but I have not found out how anywhere.

Was it helpful?

Solution

You are probably looking for this:

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

OTHER TIPS

If called from handler of a command

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

would be better, as I know.

I found the need to bring the view to the front after it had been opened and pushed to the background. The activate method does the trick.

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

NOTE: The workbenchPartToActivate is an instance of IWorkbenchPart.

In e4, the EPartService is responsible for opening Parts. This can also be used to open e3 ViewParts. Instantiate the following class through your IEclipseContext, call the openPart-Method, and you should see the Eclipse internal browser view.

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

Here you can find an example of how this works together with your Application.e4xmi.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top