Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java60
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DiscardChangesAction.java14
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/ResetAction.java5
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/Track.java6
4 files changed, 53 insertions, 32 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java
index 4ea7b029a7..ec025bcf8b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java
@@ -40,7 +40,10 @@ import org.eclipse.jgit.lib.RepositoryListener;
import org.eclipse.jgit.transport.SshSessionFactory;
import org.eclipse.jsch.core.IJSchService;
import org.eclipse.osgi.service.debug.DebugOptions;
+import org.eclipse.swt.graphics.Font;
import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.ui.statushandlers.StatusManager;
+import org.eclipse.ui.themes.ITheme;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
@@ -80,30 +83,55 @@ public class Activator extends AbstractUIPlugin {
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) {
+ IStatus status = new Status(IStatus.ERROR, getPluginId(), message,
+ throwable);
+ int style = StatusManager.LOG;
+ if (show)
+ style |= StatusManager.SHOW;
+ StatusManager.getManager().handle(status, style);
+ }
+
+ /**
+ * Get the theme used by this plugin.
+ *
+ * @return our theme.
+ */
+ public static ITheme getTheme() {
+ return plugin.getWorkbench().getThemeManager().getCurrentTheme();
+ }
/**
- * Instantiate an error status.
+ * Get a font known to this plugin.
*
- * @param message
- * description of the error
- * @param thr
- * cause of the error or null
- * @return an initialized error status
+ * @param id
+ * one of our THEME_* font preference ids (see
+ * {@link UIPreferences});
+ * @return the configured font, borrowed from the registry.
*/
- public static IStatus error(final String message, final Throwable thr) {
- return new Status(IStatus.ERROR, getPluginId(), 0, message, thr);
+ public static Font getFont(final String id) {
+ return getTheme().getFontRegistry().get(id);
}
/**
- * Log an error via the Eclipse logging routines.
+ * Get a font known to this plugin, but with bold style applied over top.
*
- * @param message
- * @param thr
- * cause of error
+ * @param id
+ * one of our THEME_* font preference ids (see
+ * {@link UIPreferences});
+ * @return the configured font, borrowed from the registry.
*/
- public static void logError(final String message, final Throwable thr) {
- getDefault().getLog().log(
- new Status(IStatus.ERROR, getPluginId(), 0, message, thr));
+ public static Font getBoldFont(final String id) {
+ return getTheme().getFontRegistry().getBold(id);
}
private RCS rcs;
@@ -199,7 +227,7 @@ public class Activator extends AbstractUIPlugin {
getJobManager().beginRule(rule, monitor);
p.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(monitor, 1));
} catch (CoreException e) {
- logError(UIText.Activator_refreshFailed, e);
+ handleError(UIText.Activator_refreshFailed, e, false);
return new Status(IStatus.ERROR, getPluginId(), e.getMessage());
} finally {
getJobManager().endRule(rule);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DiscardChangesAction.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DiscardChangesAction.java
index 6d21cdd758..a169a7d57f 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DiscardChangesAction.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DiscardChangesAction.java
@@ -17,6 +17,7 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.egit.core.project.RepositoryMapping;
+import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.UIText;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -51,15 +52,10 @@ public class DiscardChangesAction extends RepositoryAction{
for (IResource res : allFiles) {
try {
discardChange(res);
-
} catch (IOException e1) {
- MessageDialog.openError(getShell(),
- UIText.DiscardChangesAction_unexpectedErrorTitle,
- UIText.DiscardChangesAction_unexpectedErrorMessage);
+ Activator.handleError(UIText.DiscardChangesAction_unexpectedErrorMessage, e1, true);
}catch (RuntimeException e2) {
- MessageDialog.openError(getShell(),
- UIText.DiscardChangesAction_unexpectedErrorTitle,
- UIText.DiscardChangesAction_unexpectedIndexErrorMessage);
+ Activator.handleError(UIText.DiscardChangesAction_unexpectedIndexErrorMessage, e2, true);
}
}
@@ -79,9 +75,7 @@ public class DiscardChangesAction extends RepositoryAction{
try {
res.refreshLocal(0, new NullProgressMonitor());
} catch (CoreException e1) {
- MessageDialog.openError(getShell(),
- UIText.DiscardChangesAction_refreshErrorTitle,
- UIText.DiscardChangesAction_refreshErrorMessage);
+ Activator.handleError(UIText.DiscardChangesAction_refreshErrorMessage, e1, true);
}
repository.getIndex().write();
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/ResetAction.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/ResetAction.java
index d29727162a..a6cc1f872a 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/ResetAction.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/ResetAction.java
@@ -16,6 +16,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.egit.core.op.ResetOperation;
import org.eclipse.egit.core.op.ResetOperation.ResetType;
+import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.UIText;
import org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator;
import org.eclipse.egit.ui.internal.dialogs.BranchSelectionDialog;
@@ -67,9 +68,9 @@ public class ResetAction extends RepositoryAction {
}
});
} catch (InvocationTargetException e) {
- MessageDialog.openError(getShell(),UIText.ResetAction_resetFailed, e.getMessage());
+ Activator.handleError(UIText.ResetAction_resetFailed, e, true);
} catch (InterruptedException e) {
- MessageDialog.openError(getShell(),UIText.ResetAction_resetFailed, e.getMessage());
+ Activator.handleError(UIText.ResetAction_resetFailed, e, true);
}
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/Track.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/Track.java
index fe5bd6258d..68a48e420d 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/Track.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/Track.java
@@ -19,7 +19,6 @@ import org.eclipse.egit.core.op.TrackOperation;
import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.UIText;
import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
/**
@@ -47,10 +46,9 @@ public class Track extends RepositoryAction {
}
});
} catch (InvocationTargetException e) {
- Activator.logError(UIText.Track_error, e);
- MessageDialog.openError(getShell(), UIText.Track_error, UIText.Track_see_log);
+ Activator.handleError(UIText.Track_error, e, true);
} catch (InterruptedException e) {
- MessageDialog.openError(getShell(), UIText.Track_error, e.getMessage());
+ Activator.handleError(UIText.Track_error, e, true);
}
}

Back to the top