/** * Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.shared_ui.utils; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IViewReference; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; import org.python.pydev.shared_core.log.Log; public class UIUtils { public static Display getDisplay() { return PlatformUI.getWorkbench().getDisplay(); } public static Shell getActiveShell() { Shell shell = getDisplay().getActiveShell(); if (shell == null) { IWorkbenchWindow window = getActiveWorkbenchWindow(); if (window != null) { shell = window.getShell(); } } return shell; } public static IWorkbenchWindow getActiveWorkbenchWindow() { if (!PlatformUI.isWorkbenchRunning()) { return null; } IWorkbench workbench = PlatformUI.getWorkbench(); if (workbench == null) { return null; } return workbench.getActiveWorkbenchWindow(); } public static IEditorPart getActiveEditor() { IWorkbenchPage workbenchPage = getActivePage(); if (workbenchPage == null) { return null; } return workbenchPage.getActiveEditor(); } public static IWorkbenchPart getActivePart() { IWorkbenchPage workbenchPage = getActivePage(); if (workbenchPage == null) { return null; } return workbenchPage.getActivePart(); } public static IWorkbenchPage getActivePage() { IWorkbenchWindow workbench = getActiveWorkbenchWindow(); if (workbench == null) { return null; } return workbench.getActivePage(); } public static Display getStandardDisplay() { Display display; display = Display.getCurrent(); if (display == null) { display = Display.getDefault(); } return display; } public static ViewPart getView(String viewId, boolean forceVisible) { IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); try { if (workbenchWindow == null) { return null; } IWorkbenchPage page = workbenchWindow.getActivePage(); if (forceVisible) { return (ViewPart) page.showView(viewId, null, IWorkbenchPage.VIEW_VISIBLE); } else { IViewReference viewReference = page.findViewReference(viewId); if (viewReference != null) { //if it's there, return it (but don't restore it if it's still not there). //when made visible, it'll handle things properly later on. return (ViewPart) viewReference.getView(false); } } } catch (Exception e) { Log.log(e); } return null; } }