From 3376d7a974962dea614f95b2b3cd69ca6e39e785 Mon Sep 17 00:00:00 2001 From: spingel Date: Thu, 5 Jun 2008 02:06:32 +0000 Subject: NEW - bug 212209: provide a flexible bug reporting facility https://bugs.eclipse.org/bugs/show_bug.cgi?id=212209 --- org.eclipse.mylyn.tasks.bugs/.classpath | 1 + org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF | 6 +-- org.eclipse.mylyn.tasks.bugs/plugin.xml | 11 +---- .../schema/pluginRepositoryMappings.exsd | 2 +- .../schema/taskContributors.exsd | 7 ++- .../tasks/bugs/AbstractTaskContributor.java | 31 +++++++++++++ .../internal/tasks/bugs/AttributeTaskMapper.java | 1 - .../tasks/bugs/DefaultTaskContributor.java | 2 +- .../tasks/bugs/TaskContributorManager.java | 2 +- .../mylyn/internal/tasks/bugs/TasksBugsPlugin.java | 42 ----------------- .../tasks/bugs/wizards/ReportErrorWizard.java | 1 - .../mylyn/tasks/bugs/AbstractTaskContributor.java | 31 ------------- org.eclipse.mylyn.tasks.ui/plugin.xml | 9 ++++ .../internal/tasks/ui/DialogErrorReporter.java | 52 ++++++++++++++++++++++ 14 files changed, 106 insertions(+), 92 deletions(-) create mode 100644 org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java delete mode 100644 org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java create mode 100644 org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java diff --git a/org.eclipse.mylyn.tasks.bugs/.classpath b/org.eclipse.mylyn.tasks.bugs/.classpath index b07f119d9..6a357762a 100644 --- a/org.eclipse.mylyn.tasks.bugs/.classpath +++ b/org.eclipse.mylyn.tasks.bugs/.classpath @@ -4,6 +4,7 @@ + diff --git a/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF index 07eb73b06..8e7d8b36b 100644 --- a/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF +++ b/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF @@ -13,10 +13,10 @@ Require-Bundle: org.eclipse.core.runtime, Bundle-Vendor: Eclipse.org Bundle-ClassPath: . Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.mylyn.internal.tasks.bugs;x-internal:=true, +Export-Package: org.eclipse.mylyn.internal.provisional.tasks.bugs, + org.eclipse.mylyn.internal.tasks.bugs;x-internal:=true, org.eclipse.mylyn.internal.tasks.bugs.actions;x-internal:=true, - org.eclipse.mylyn.internal.tasks.bugs.wizards;x-internal:=true, - org.eclipse.mylyn.tasks.bugs + org.eclipse.mylyn.internal.tasks.bugs.wizards;x-internal:=true Bundle-Localization: plugin Bundle-ActivationPolicy: lazy Bundle-Activator: org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin diff --git a/org.eclipse.mylyn.tasks.bugs/plugin.xml b/org.eclipse.mylyn.tasks.bugs/plugin.xml index 5e10bced8..2f6d39bd3 100644 --- a/org.eclipse.mylyn.tasks.bugs/plugin.xml +++ b/org.eclipse.mylyn.tasks.bugs/plugin.xml @@ -7,7 +7,7 @@ - - - - - - + diff --git a/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd b/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd index 5e62e4848..48a1aa16d 100644 --- a/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd +++ b/org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd @@ -11,6 +11,11 @@ + + + + + @@ -57,7 +62,7 @@ - + diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java new file mode 100644 index 000000000..d1c22246c --- /dev/null +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Mylyn project committers 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 + *******************************************************************************/ + +package org.eclipse.mylyn.internal.provisional.tasks.bugs; + +import java.util.Map; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.mylyn.tasks.core.data.TaskData; + +/** + * @author Steffen Pingel + * @since 3.0 + */ +public abstract class AbstractTaskContributor { + + public abstract Map getAttributes(IStatus status); + + public String getEditorId(IStatus status) { + return null; + } + + public void postProcess(IStatus status, TaskData taskData) { + } + +} diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java index 5f40bd7fe..b3ee86b4b 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java @@ -51,7 +51,6 @@ public class AttributeTaskMapper { return taskRepository; } - @SuppressWarnings("restriction") public TaskData createTaskData(IProgressMonitor monitor) throws CoreException { ITaskMapping taskMapping = getTaskMapping(); return TasksUiInternal.createTaskData(getTaskRepository(), taskMapping, taskMapping, monitor); diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java index 33e07f61c..9322187aa 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java @@ -16,9 +16,9 @@ import java.util.Map; import org.eclipse.core.runtime.IBundleGroup; import org.eclipse.core.runtime.IStatus; +import org.eclipse.mylyn.internal.provisional.tasks.bugs.AbstractTaskContributor; import org.eclipse.mylyn.internal.tasks.bugs.wizards.ErrorLogStatus; import org.eclipse.mylyn.internal.tasks.bugs.wizards.FeatureStatus; -import org.eclipse.mylyn.tasks.bugs.AbstractTaskContributor; import org.eclipse.mylyn.tasks.ui.editors.TaskEditor; import org.osgi.framework.Bundle; diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java index 2c12a1e6c..effea2fd9 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskContributorManager.java @@ -23,7 +23,7 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.SafeRunner; import org.eclipse.core.runtime.Status; import org.eclipse.mylyn.commons.core.StatusHandler; -import org.eclipse.mylyn.tasks.bugs.AbstractTaskContributor; +import org.eclipse.mylyn.internal.provisional.tasks.bugs.AbstractTaskContributor; import org.eclipse.mylyn.tasks.core.data.TaskData; /** diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java index 5afe0d594..ce179678e 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java @@ -9,11 +9,8 @@ package org.eclipse.mylyn.internal.tasks.bugs; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.mylyn.commons.core.AbstractErrorReporter; import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; @@ -47,45 +44,6 @@ public class TasksBugsPlugin extends AbstractUIPlugin { } } - public static class DialogReporter extends AbstractErrorReporter { - - private static final String ERROR_MESSAGE = "Please report the following error at:\n" - + "http://bugs.eclipse.org/bugs/enter_bug.cgi?product=Mylyn\n\n" - + "Or via the popup menu in the Error Log view (see Window -> Show View)"; - - private boolean errorDialogOpen; - - @Override - public int getPriority(IStatus status) { - return AbstractErrorReporter.PRIORITY_DEFAULT; - } - - @Override - public void handle(final IStatus status) { - if (Platform.isRunning()) { - final IWorkbench workbench = PlatformUI.getWorkbench(); - if (workbench != null) { - Display display = workbench.getDisplay(); - if (display != null && !display.isDisposed()) { - display.asyncExec(new Runnable() { - public void run() { - try { - if (!errorDialogOpen) { - errorDialogOpen = true; - Shell shell = Display.getDefault().getActiveShell(); - ErrorDialog.openError(shell, "Mylyn Error", ERROR_MESSAGE, status); - } - } finally { - errorDialogOpen = false; - } - } - }); - } - } - } - } - } - public static final String ID_PLUGIN = "org.eclipse.mylyn.tasks.bugs"; private static TasksBugsPlugin INSTANCE; diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java index 363af640d..57f9820d2 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java @@ -37,7 +37,6 @@ public class ReportErrorWizard extends Wizard { setWindowTitle("Report as Bug"); } - @SuppressWarnings("restriction") @Override public void addPages() { reportErrorPage = new ReportErrorPage(mapper, status); diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java deleted file mode 100644 index 3814166e2..000000000 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/tasks/bugs/AbstractTaskContributor.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 Mylyn project committers 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 - *******************************************************************************/ - -package org.eclipse.mylyn.tasks.bugs; - -import java.util.Map; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.mylyn.tasks.core.data.TaskData; - -/** - * @author Steffen Pingel - * @since 3.0 - */ -public abstract class AbstractTaskContributor { - - public abstract Map getAttributes(IStatus status); - - public String getEditorId(IStatus status) { - return null; - } - - public void postProcess(IStatus status, TaskData taskData) { - } - -} diff --git a/org.eclipse.mylyn.tasks.ui/plugin.xml b/org.eclipse.mylyn.tasks.ui/plugin.xml index 311f49df6..8c4f00cfd 100644 --- a/org.eclipse.mylyn.tasks.ui/plugin.xml +++ b/org.eclipse.mylyn.tasks.ui/plugin.xml @@ -1634,5 +1634,14 @@ type="org.eclipse.mylyn.tasks.core.ITaskAttachment"> + + + + + diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java new file mode 100644 index 000000000..c0301e2b6 --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/DialogErrorReporter.java @@ -0,0 +1,52 @@ +package org.eclipse.mylyn.internal.tasks.ui; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.mylyn.commons.core.AbstractErrorReporter; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.PlatformUI; + +/** + * @author Steffen Pingel + */ +public class DialogErrorReporter extends AbstractErrorReporter { + + private static final String ERROR_MESSAGE = "Please report the following error at:\n" + + "http://bugs.eclipse.org/bugs/enter_bug.cgi?product=Mylyn\n\n" + + "Or via the popup menu in the Error Log view (see Window -> Show View)"; + + private boolean errorDialogOpen; + + @Override + public int getPriority(IStatus status) { + return AbstractErrorReporter.PRIORITY_DEFAULT; + } + + @Override + public void handle(final IStatus status) { + if (Platform.isRunning()) { + final IWorkbench workbench = PlatformUI.getWorkbench(); + if (workbench != null) { + Display display = workbench.getDisplay(); + if (display != null && !display.isDisposed()) { + display.asyncExec(new Runnable() { + public void run() { + try { + if (!errorDialogOpen) { + errorDialogOpen = true; + Shell shell = Display.getDefault().getActiveShell(); + ErrorDialog.openError(shell, "Mylyn Error", ERROR_MESSAGE, status); + } + } finally { + errorDialogOpen = false; + } + } + }); + } + } + } + } +} -- cgit v1.2.3