Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Davis2012-05-29 20:50:02 +0000
committerSam Davis2012-06-04 18:27:32 +0000
commit19ad3705b613a9238847eea385fda36cc3474a41 (patch)
tree1f5356705fc28ad6fdf7fbc3d6bb1404e57adaef /org.eclipse.mylyn.tasks.ui
parent87a55743c4752c4c89690f8b6e7b41b826ae6dbf (diff)
downloadorg.eclipse.mylyn.tasks-19ad3705b613a9238847eea385fda36cc3474a41.tar.gz
org.eclipse.mylyn.tasks-19ad3705b613a9238847eea385fda36cc3474a41.tar.xz
org.eclipse.mylyn.tasks-19ad3705b613a9238847eea385fda36cc3474a41.zip
NEW - bug 338013: [patch] mark as read on incoming folder ignores
working sets https://bugs.eclipse.org/bugs/show_bug.cgi?id=338013 Change-Id: Ib06b4fa49989634f045d1b9a66c31e3a5d79e428
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java32
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java29
2 files changed, 60 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java
index 976c7f366..6a7a0468b 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/AbstractTaskHandler.java
@@ -11,6 +11,8 @@
package org.eclipse.mylyn.internal.tasks.ui.commands;
+import java.util.Set;
+
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
@@ -19,6 +21,8 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
+import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter;
+import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
import org.eclipse.mylyn.tasks.core.IRepositoryElement;
import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.ITaskContainer;
@@ -35,6 +39,8 @@ public abstract class AbstractTaskHandler extends AbstractHandler {
protected boolean singleTask;
+ private boolean filterBasedOnActiveTaskList;
+
public AbstractTaskHandler() {
}
@@ -89,11 +95,35 @@ public abstract class AbstractTaskHandler extends AbstractHandler {
protected void execute(ExecutionEvent event, ITaskContainer item) throws ExecutionException {
for (ITask task : item.getChildren()) {
- process(event, task, true);
+ if (!filterBasedOnActiveTaskList || isVisibleInTaskList(item, task)) {
+ process(event, task, true);
+ }
+ }
+ }
+
+ public static boolean isVisibleInTaskList(ITaskContainer item, ITask task) {
+ TaskListView taskListView = TaskListView.getFromActivePerspective();
+ if (taskListView == null) {
+ return false;
}
+ Set<AbstractTaskListFilter> filters = taskListView.getFilters();
+ for (AbstractTaskListFilter filter : filters) {
+ if (!filter.select(item, task)) {
+ return false;
+ }
+ }
+ return true;
}
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
}
+ public boolean getFilterBasedOnActiveTaskList() {
+ return filterBasedOnActiveTaskList;
+ }
+
+ protected void setFilterBasedOnActiveTaskList(boolean filterBasedOnActiveTaskList) {
+ this.filterBasedOnActiveTaskList = filterBasedOnActiveTaskList;
+ }
+
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java
index 7709ec6ee..6fe921b22 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/MarkTaskHandler.java
@@ -33,6 +33,11 @@ import org.eclipse.mylyn.tasks.core.ITask;
public abstract class MarkTaskHandler extends AbstractTaskHandler {
public static class ClearOutgoingHandler extends AbstractTaskHandler {
+
+ public ClearOutgoingHandler() {
+ setFilterBasedOnActiveTaskList(true);
+ }
+
@Override
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
ClearOutgoingAction action = new ClearOutgoingAction(Collections.singletonList((IRepositoryElement) task));
@@ -43,6 +48,10 @@ public abstract class MarkTaskHandler extends AbstractTaskHandler {
}
public static class ClearActiveTimeHandler extends AbstractTaskHandler {
+ public ClearActiveTimeHandler() {
+ setFilterBasedOnActiveTaskList(true);
+ }
+
@Override
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
if (MessageDialog.openConfirm(WorkbenchUtil.getShell(),
@@ -58,6 +67,10 @@ public abstract class MarkTaskHandler extends AbstractTaskHandler {
public static final String ID_COMMAND = "org.eclipse.mylyn.tasks.ui.command.markTaskComplete"; //$NON-NLS-1$
+ public MarkTaskCompleteHandler() {
+ setFilterBasedOnActiveTaskList(true);
+ }
+
@Override
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
if (TasksUiInternal.hasLocalCompletionState(task)) {
@@ -68,6 +81,11 @@ public abstract class MarkTaskHandler extends AbstractTaskHandler {
}
public static class MarkTaskIncompleteHandler extends AbstractTaskHandler {
+
+ public MarkTaskIncompleteHandler() {
+ setFilterBasedOnActiveTaskList(true);
+ }
+
@Override
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
if (TasksUiInternal.hasLocalCompletionState(task)) {
@@ -78,6 +96,12 @@ public abstract class MarkTaskHandler extends AbstractTaskHandler {
}
public static class MarkTaskReadHandler extends AbstractTaskHandler {
+ public static final String ID_COMMAND = "org.eclipse.mylyn.tasks.ui.command.markTaskRead"; //$NON-NLS-1$
+
+ public MarkTaskReadHandler() {
+ setFilterBasedOnActiveTaskList(true);
+ }
+
@Override
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
TasksUiPlugin.getTaskDataManager().setTaskRead(task, true);
@@ -85,6 +109,11 @@ public abstract class MarkTaskHandler extends AbstractTaskHandler {
}
public static class MarkTaskUnreadHandler extends AbstractTaskHandler {
+
+ public MarkTaskUnreadHandler() {
+ setFilterBasedOnActiveTaskList(true);
+ }
+
@Override
protected void execute(ExecutionEvent event, ITask task) throws ExecutionException {
TasksUiPlugin.getTaskDataManager().setTaskRead(task, false);

Back to the top