/******************************************************************************* * Copyright (C) 2015, Max Hohenegger <eclipse@hohenegger.eu> * * 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 *******************************************************************************/ package org.eclipse.egit.gitflow.ui; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.eclipse.ui.statushandlers.StatusManager; import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle */ public class Activator extends AbstractUIPlugin { // The shared instance private static Activator plugin; @Override public void start(BundleContext context) throws Exception { super.start(context); plugin = this; } @Override public void stop(BundleContext context) throws Exception { plugin = null; super.stop(context); } /** * Returns the shared instance * * @return the shared instance */ public static Activator getDefault() { return plugin; } /** * @param message * @param throwable * @return Status constructed from parameters. */ public static IStatus error(String message, Throwable throwable) { return new Status(IStatus.ERROR, getPluginId(), 0, message, throwable); } /** * @param message * @return Status constructed from parameters. */ public static IStatus error(String message) { return new Status(IStatus.ERROR, getPluginId(), message); } /** * @param message * @return Warning status for given message. */ public static IStatus warning(String message) { return new Status(IStatus.WARNING, getPluginId(), message); } /** * @return the id of the egit ui plugin */ public static String getPluginId() { return getDefault().getBundle().getSymbolicName(); } /** * Handle an error. The error is logged. If <code>show</code> is * <code>true</code> the error is shown to the user. * * @param message a localized message * @param throwable * @param show */ public static void handleError(String message, Throwable throwable, boolean show) { handleIssue(IStatus.ERROR, message, throwable, show); } /** * Handle an issue. The issue is logged. If <code>show</code> is * <code>true</code> the issue is shown to the user. * * @param severity * status severity, use constants defined in {@link IStatus} * @param message * a localized message * @param throwable * @param show */ public static void handleIssue(int severity, String message, Throwable throwable, boolean show) { IStatus status = new Status(severity, getPluginId(), message, throwable); int style = StatusManager.LOG; if (show) { style |= StatusManager.SHOW; } StatusManager.getManager().handle(status, style); } /** * @param message * @param e */ public static void logError(String message, Throwable e) { handleError(message, e, false); } }