| /******************************************************************************* |
| * Copyright (c) 2003, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.navigator.internal; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| import org.eclipse.ui.plugin.AbstractUIPlugin; |
| |
| /** |
| * The main plugin class for the Navigator. |
| * |
| * |
| * <p> |
| * <strong>EXPERIMENTAL</strong>. This class or interface has been added as part of a work in |
| * progress. There is a guarantee neither that this API will work nor that it will remain the same. |
| * Please do not use this API without consulting with the Platform/UI team. |
| * </p> |
| * |
| * @since 3.2 |
| */ |
| public class NavigatorPlugin extends AbstractUIPlugin { |
| //The shared instance. |
| private static NavigatorPlugin plugin; |
| public static String PLUGIN_ID = "org.eclipse.ui.navigator"; //$NON-NLS-1$ |
| |
| /** |
| * Creates a new instance of the receiver |
| */ |
| public NavigatorPlugin() { |
| super(); |
| plugin = this; |
| } |
| |
| /** |
| * Returns the shared instance. |
| */ |
| public static NavigatorPlugin getDefault() { |
| return plugin; |
| } |
| |
| |
| /** |
| * Log the given status to the ISV log. |
| * |
| * When to use this: |
| * |
| * This should be used when a PluginException or a ExtensionException occur but for which an |
| * error dialog cannot be safely shown. |
| * |
| * If you can show an ErrorDialog then do so, and do not call this method. |
| * |
| * If you have a plugin exception or core exception in hand call log(String, IStatus) |
| * |
| * This convenience method is for internal use by the Workbench only and must not be called |
| * outside the workbench. |
| * |
| * This method is supported in the event the log allows plugin related information to be logged |
| * (1FTTJKV). This would be done by this method. |
| * |
| * This method is internal to the workbench and must not be called by any plugins, or examples. |
| * |
| * @param message |
| * A high level UI message describing when the problem happened. |
| * |
| */ |
| |
| public static void log(String message) { |
| getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null)); |
| System.err.println(message); |
| //1FTTJKV: ITPCORE:ALL - log(status) does not allow plugin information to be recorded |
| } |
| |
| /** |
| * Logs errors. |
| */ |
| public static void log(String message, IStatus status) { |
| if (message != null) { |
| getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null)); |
| System.err.println(message + "\nReason:"); //$NON-NLS-1$ |
| } |
| getDefault().getLog().log(status); |
| System.err.println(status.getMessage()); |
| } |
| |
| |
| public static void logError(int aCode, String aMessage, Throwable anException) { |
| getDefault().getLog().log(createErrorStatus(aCode, aMessage, anException)); |
| } |
| |
| public static void log(int severity, int aCode, String aMessage, Throwable exception) { |
| log(createStatus(severity, aCode, aMessage, exception)); |
| } |
| |
| public static void log(IStatus aStatus) { |
| getDefault().getLog().log(aStatus); |
| } |
| |
| public static IStatus createStatus(int severity, int aCode, String aMessage, Throwable exception) { |
| return new Status(severity, PLUGIN_ID, aCode, aMessage != null ? aMessage : "No message.", exception); //$NON-NLS-1$ |
| } |
| |
| public static IStatus createErrorStatus(int aCode, String aMessage, Throwable exception) { |
| return createStatus(IStatus.ERROR, aCode, aMessage, exception); |
| } |
| } |