Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2008-06-04 06:13:39 +0000
committerspingel2008-06-04 06:13:39 +0000
commit9df41d99addc48bee9e16e0dc4a90926152b9ed3 (patch)
treec634bc04270f57a38e23cdcaa6fb529d5a57d126
parent58dca4c49f28b7c313045c42069477a3f4ea8581 (diff)
downloadorg.eclipse.mylyn.tasks-9df41d99addc48bee9e16e0dc4a90926152b9ed3.tar.gz
org.eclipse.mylyn.tasks-9df41d99addc48bee9e16e0dc4a90926152b9ed3.tar.xz
org.eclipse.mylyn.tasks-9df41d99addc48bee9e16e0dc4a90926152b9ed3.zip
NEW - bug 234766: back port Mylyn 3.0 to Eclipse 3.3
https://bugs.eclipse.org/bugs/show_bug.cgi?id=234766
-rw-r--r--org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF6
-rw-r--r--org.eclipse.mylyn.tasks.bugs/plugin.xml23
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java38
3 files changed, 41 insertions, 26 deletions
diff --git a/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
index 904cd0de6..d79057e80 100644
--- a/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
@@ -5,11 +5,11 @@ Bundle-SymbolicName: org.eclipse.mylyn.tasks.bugs;singleton:=true
Bundle-Version: 3.0.0.qualifier
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
+ org.eclipse.pde.runtime;resolution:=optional,
org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)",
org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.pde.runtime
+ org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)"
Bundle-Vendor: Eclipse.org
Bundle-ClassPath: .
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.tasks.bugs/plugin.xml b/org.eclipse.mylyn.tasks.bugs/plugin.xml
index 1dc9ff698..bc24f46ed 100644
--- a/org.eclipse.mylyn.tasks.bugs/plugin.xml
+++ b/org.eclipse.mylyn.tasks.bugs/plugin.xml
@@ -5,19 +5,16 @@
<extension-point id="taskContributors" name="Task Contributors" schema="schema/taskContributors.exsd"/>
<extension point="org.eclipse.ui.popupMenus">
- <objectContribution
- adaptable="false"
- id="org.eclipse.mylyn.tasks.bugs.objectContribution"
- objectClass="org.eclipse.pde.internal.runtime.logview.LogEntry">
- <action
- class="org.eclipse.mylyn.internal.tasks.bugs.actions.NewTaskFromErrorAction"
- enablesFor="1"
- icon="icons/etool16/task-repository-new.gif"
- menubarPath="org.eclipse.pde.runtime.LogView"
- id="org.eclipse.mylyn.tasklist.actions.newTaskFromErrorLog"
- label="Report as Bug">
- </action>
- </objectContribution>
+ <viewerContribution
+ id="org.eclipse.mylyn.bugzilla.ide.log.contribution"
+ targetID="org.eclipse.pde.runtime.LogView">
+ <action
+ class="org.eclipse.mylyn.internal.tasks.bugs.actions.NewTaskFromErrorAction"
+ icon="icons/etool16/task-repository-new.gif"
+ menubarPath="org.eclipse.pde.runtime.LogView"
+ id="org.eclipse.mylyn.tasklist.actions.newTaskFromErrorLog"
+ label="Report as Bug"/>
+ </viewerContribution>
</extension>
<extension
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
index 39dc303d6..2ea3dc5c2 100644
--- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
+++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
@@ -15,12 +15,16 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.mylyn.internal.tasks.bugs.TasksBugsPlugin;
import org.eclipse.pde.internal.runtime.logview.LogEntry;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
import org.eclipse.ui.PlatformUI;
/**
@@ -29,11 +33,11 @@ import org.eclipse.ui.PlatformUI;
* @author Jeff Pound
* @author Steffen Pingel
*/
-public class NewTaskFromErrorAction implements IObjectActionDelegate {
+public class NewTaskFromErrorAction implements IViewActionDelegate, ISelectionChangedListener {
public static final String ID = "org.eclipse.mylyn.tasklist.ui.repositories.actions.create";
- private LogEntry entry;
+ private TreeViewer treeViewer;
/**
* Fills a {@link StringBuilder} with {@link LogEntry} information, optionally including subentries too
@@ -87,6 +91,15 @@ public class NewTaskFromErrorAction implements IObjectActionDelegate {
}
public void run() {
+ TreeItem[] items = treeViewer.getTree().getSelection();
+ LogEntry entry = null;
+ if (items.length > 0) {
+ entry = (LogEntry) items[0].getData();
+ }
+ if (entry == null) {
+ return;
+ }
+
createTask(entry);
}
@@ -94,14 +107,19 @@ public class NewTaskFromErrorAction implements IObjectActionDelegate {
run();
}
+ public void init(IViewPart view) {
+ ISelectionProvider sp = view.getViewSite().getSelectionProvider();
+ sp.addSelectionChangedListener(this);
+ sp.setSelection(sp.getSelection());
+ }
+
public void selectionChanged(IAction action, ISelection selection) {
- Object object = ((IStructuredSelection) selection).getFirstElement();
- if (object instanceof LogEntry) {
- entry = (LogEntry) object;
- }
+ // this selection is always empty? explicitly register a listener in
+ // init() instead
}
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ public void selectionChanged(SelectionChangedEvent event) {
+ treeViewer = (TreeViewer) event.getSource();
}
}

Back to the top