X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/PHPDebugUiPlugin.java b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/PHPDebugUiPlugin.java index 45c07c3..16f59ce 100644 --- a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/PHPDebugUiPlugin.java +++ b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/PHPDebugUiPlugin.java @@ -9,6 +9,9 @@ import org.eclipse.core.runtime.Status; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.swt.widgets.Display; public class PHPDebugUiPlugin extends AbstractUIPlugin { public static final String PLUGIN_ID = "net.sourceforge.phpeclipse.debug.ui"; //$NON-NLS-1$ @@ -24,7 +27,7 @@ public class PHPDebugUiPlugin extends AbstractUIPlugin { } public static IWorkbenchPage getActivePage() { - return getDefault().getActiveWorkbenchWindow().getActivePage(); + return PHPDebugUiPlugin.getActiveWorkbenchWindow().getActivePage(); } public static PHPDebugUiPlugin getDefault() { @@ -34,6 +37,68 @@ public class PHPDebugUiPlugin extends AbstractUIPlugin { public static IWorkspace getWorkspace() { return PHPeclipsePlugin.getWorkspace(); } + + /** + * Convenience method which returns the unique identifier of this plugin. + */ + public static String getUniqueIdentifier() + { + if ( getDefault() == null ) + { + // If the default instance is not yet initialized, + // return a static identifier. This identifier must + // match the plugin id defined in plugin.xml + return PLUGIN_ID; + } + return getDefault().getDescriptor().getUniqueIdentifier(); + } + + /** + * Returns the standard display to be used. The method first checks, if + * the thread calling this method has an associated display. If so, this + * display is returned. Otherwise the method returns the default display. + */ + public static Display getStandardDisplay() { + Display display; + display= Display.getCurrent(); + if (display == null) + display= Display.getDefault(); + return display; + } + + /** + * Returns the active workbench shell or null if none + * + * @return the active workbench shell or null if none + */ + public static Shell getActiveWorkbenchShell() { + IWorkbenchWindow window = getActiveWorkbenchWindow(); + if (window != null) { + return window.getShell(); + } + return null; + } + + public static void errorDialog( String message, IStatus status ) + { + log( status ); + Shell shell = getActiveWorkbenchShell(); + if ( shell != null ) + { + ErrorDialog.openError( shell, "Error", message, status ); + } + } + + public static void errorDialog( String message, Throwable t ) + { + log( t ); + Shell shell = getActiveWorkbenchShell(); + if ( shell != null ) + { + IStatus status = new Status( IStatus.ERROR, getUniqueIdentifier(), /*ICDebugUIConstants.INTERNAL_ERROR*/ 150, t.getMessage(), null ); //$NON-NLS-1$ + ErrorDialog.openError( shell, "Error", message, status ); + } + } public static void log(IStatus status) { getDefault().getLog().log(status);