First crack at making generic queries
diff --git a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/internal/views/TaskListHighlighterMenuContributor.java b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/internal/views/TaskListHighlighterMenuContributor.java
index fd5bf7c..6861676 100644
--- a/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/internal/views/TaskListHighlighterMenuContributor.java
+++ b/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/ui/internal/views/TaskListHighlighterMenuContributor.java
@@ -18,6 +18,7 @@
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.mylar.core.IMylarContextListener;
import org.eclipse.mylar.core.MylarPlugin;
+import org.eclipse.mylar.tasklist.IQueryHit;
import org.eclipse.mylar.tasklist.ITask;
import org.eclipse.mylar.tasklist.ITaskListDynamicSubMenuContributor;
import org.eclipse.mylar.tasklist.ITaskListElement;
@@ -42,8 +43,18 @@
if (selectedElement instanceof ITaskListElement) {
Action action = new Action() {
@Override
- public void run() {
- ITask task = ((ITaskListElement)selectedElement).getOrCreateCorrespondingTask();
+ public void run() {
+ ITask task = null;
+ if (selectedElement instanceof ITask) {
+ task = (ITask) selectedElement;
+ } else if (selectedElement instanceof IQueryHit) {
+ if (((IQueryHit) selectedElement)
+ .hasCorrespondingActivatableTask()) {
+ task = ((IQueryHit) selectedElement)
+ .getOrCreateCorrespondingTask();
+ }
+ }
+
if (!task.isActive()) {
MessageDialog.openError(Workbench.getInstance()
.getActiveWorkbenchWindow().getShell(), "Mylar Highlighting",