diff options
author | Sam Davis | 2012-05-29 20:50:02 +0000 |
---|---|---|
committer | Sam Davis | 2012-06-04 18:27:32 +0000 |
commit | 19ad3705b613a9238847eea385fda36cc3474a41 (patch) | |
tree | 1f5356705fc28ad6fdf7fbc3d6bb1404e57adaef /org.eclipse.mylyn.tasks.ui | |
parent | 87a55743c4752c4c89690f8b6e7b41b826ae6dbf (diff) | |
download | org.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')
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); |