Visualizzazione a livello di programmazione di una vista da un plug-in Eclipse
-
05-07-2019 - |
Domanda
Ho un plug-in in un'applicazione Eclipse RCP che ha una vista. Dopo che si verifica un evento nell'applicazione RCP, il plug-in viene istanziato, i suoi metodi vengono chiamati per popolare il modello del plug-in, ma non riesco a trovare come far apparire la vista senza andare su " Mostra vista ... " ; menu.
Penso che ci sarebbe qualcosa nel singleton del workbench che potesse gestirlo, ma non ho scoperto come da nessuna parte.
Soluzione
Probabilmente stai cercando questo:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
Altri suggerimenti
Se chiamato dal gestore di un comando
HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);
sarebbe meglio, come so.
Ho trovato la necessità di portare la vista in primo piano dopo che era stata aperta e spostata sullo sfondo. Il metodo di attivazione fa il trucco.
PlatformUI.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.activate(workbenchPartToActivate);
NOTA: workbenchPartToActivate è un'istanza di IWorkbenchPart
.
In e4, EPartService è responsabile dell'apertura di Parts. Questo può anche essere usato per aprire ViewParts e3. Crea un'istanza della seguente classe tramite IEclipseContext, chiama il metodo openPart e dovresti vedere la vista interna del browser 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);
}
}
Qui puoi trovare un esempio di come funziona insieme la tua applicazione.e4xmi.