@Nullable public static ISelectionProvider getSelectionProvider(IServiceLocator serviceLocator) { ISelectionProvider selectionProvider = serviceLocator.getService(ISelectionProvider.class); if (selectionProvider != null) { return selectionProvider; } IWorkbenchPartSite partSite = getWorkbenchPartSite(serviceLocator); if (partSite == null) { IWorkbenchPart activePart = serviceLocator.getService(IWorkbenchPart.class); if (activePart == null) { IWorkbenchWindow activeWindow = DBeaverUI.getActiveWorkbenchWindow(); if (activeWindow != null) { activePart = activeWindow.getActivePage().getActivePart(); } } if (activePart != null) { partSite = activePart.getSite(); } } if (partSite != null) { return partSite.getSelectionProvider(); } else { return null; } }
/** * Constructs a new selection tracker for the given window and part id. * * @param window workbench window * @param partId part identifier */ public WindowPartSelectionTracker(IWorkbenchWindow window, String partId) { super(partId); setWindow(window); window.addPageListener(this); IWorkbenchPage[] pages = window.getPages(); for (int i = 0; i < pages.length; i++) { pageOpened(pages[i]); } }
private IEditorInput getEditorInput() throws IOException { IWorkbench wb = PlatformUI.getWorkbench(); IWorkbenchWindow[] wws = wb.getWorkbenchWindows(); if (wws.length != 1) throw new IOException("Failed to find workbench window"); IWorkbenchWindow ww = wws[0]; IWorkbenchPage[] wps = ww.getPages(); if (wws.length != 1) throw new IOException("Failed to find workbench page"); IWorkbenchPage wp = wps[0]; IEditorPart ep = wp.getActiveEditor(); if (ep == null) throw new IOException("Failed to find active editor"); return ep.getEditorInput(); }
public static void updateMainWindowTitle(IWorkbenchWindow window) { IProject activeProject = DBeaverCore.getInstance().getProjectRegistry().getActiveProject(); IProduct product = Platform.getProduct(); String title = product == null ? "Unknown" : product.getName(); // $NON-NLS-1$ if (activeProject != null) { title += " - " + activeProject.getName(); // $NON-NLS-1$ } IWorkbenchPage activePage = window.getActivePage(); if (activePage != null) { IEditorPart activeEditor = activePage.getActiveEditor(); if (activeEditor != null) { title += " - [ " + activeEditor.getTitle() + " ]"; } } window.getShell().setText(title); }
private void openSchemaFile(final IFile file) { final IWorkbenchWindow ww = PDEPlugin.getActiveWorkbenchWindow(); Display d = ww.getShell().getDisplay(); d.asyncExec( new Runnable() { @Override public void run() { try { String editorId = IPDEUIConstants.SCHEMA_EDITOR_ID; ww.getActivePage().openEditor(new FileEditorInput(file), editorId); } catch (PartInitException e) { PDEPlugin.logException(e); } } }); }
@Nullable public static IViewPart findView(IWorkbenchWindow workbenchWindow, String viewId) { IViewReference[] references = workbenchWindow.getActivePage().getViewReferences(); for (IViewReference ref : references) { if (ref.getId().equals(viewId)) { return ref.getView(false); } } return null; }
@Nullable public static <T> T findView(IWorkbenchWindow workbenchWindow, Class<T> viewClass) { IViewReference[] references = workbenchWindow.getActivePage().getViewReferences(); for (IViewReference ref : references) { IViewPart view = ref.getView(false); if (view != null && viewClass.isAssignableFrom(view.getClass())) { return viewClass.cast(view); } } return null; }
@Nullable public static IWorkbenchPartSite getWorkbenchPartSite(IServiceLocator serviceLocator) { IWorkbenchPartSite partSite = serviceLocator.getService(IWorkbenchPartSite.class); if (partSite == null) { IWorkbenchPart activePart = serviceLocator.getService(IWorkbenchPart.class); if (activePart == null) { IWorkbenchWindow workbenchWindow = DBeaverUI.getActiveWorkbenchWindow(); if (workbenchWindow != null) { IWorkbenchPage activePage = workbenchWindow.getActivePage(); if (activePage != null) { activePart = activePage.getActivePart(); } } } if (activePart != null) { partSite = activePart.getSite(); } } return partSite; }
protected void runSootAsProcess(String cmd) { SootProcessRunner op; try { newProcessStarting(); op = new SootProcessRunner(Display.getCurrent(), cmd, sootClasspath); if (window == null) { window = SootPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); } new ProgressMonitorDialog(window.getShell()).run(true, true, op); } catch (InvocationTargetException e1) { // handle exception } catch (InterruptedException e2) { // handle cancelation System.out.println(e2.getMessage()); } }
private static String getWindowId(IWorkbenchWindow source) { return "window " + Util.safeString(Integer.toString(source.hashCode() % 1000)); // $NON-NLS-1$ }