2008-10-05 8 views
28

Tengo un complemento para una aplicación Eclipse RCP que tiene una vista. Después de que ocurra un evento en la aplicación RCP, se crea una instancia del complemento, se llaman sus métodos para rellenar el modelo del complemento, pero no puedo encontrar cómo hacer que la vista aparezca sin ir al menú "Mostrar vista ..." .Muestra programáticamente una vista desde un complemento de Eclipse

Creo que habría algo en el singleton del banco de trabajo que podría manejar esto, pero no he descubierto cómo en cualquier lugar.

Respuesta

45

Usted probablemente está buscando esto:

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

Es importante tener en cuenta que arg0 puede ser el campo VIEW_ID de una parte de vista. – JeffV

+0

¿Dónde pongo eso? Lo puse en todas mis clases, pero todavía no funciona. (Accidentalmente cerré la vista dentro de la aplicación RCP) – Sterls

18

Si se llama desde el manejador de un comando

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

sería mejor, que yo sepa.

4

Encontré la necesidad de llevar la vista al frente una vez que se abrió y se colocó en segundo plano. El método de activar hace el truco.

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

NOTA: El workbenchPartToActivate es una instancia de IWorkbenchPart.

0

En e4, el EPartService es responsable de abrir las piezas. Esto también se puede usar para abrir e3 ViewParts. Crea una instancia de la siguiente clase a través de IEclipseContext, llama al método openPart y deberías ver la vista del navegador interno de 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); 
    } 
} 

Here se puede encontrar un ejemplo de cómo funciona esto, junto con su Application.e4xmi.

Cuestiones relacionadas