blob: 5afaeee259eaad17d7e4097eff4f4da10eca1fa9 [file] [log] [blame]
/*******************************************************************************
* 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);
}
}