Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkersten2007-06-16 20:20:55 +0000
committermkersten2007-06-16 20:20:55 +0000
commit23522647b2fc4a09610fa2cad536fbf758a3b319 (patch)
treeefd773fafced922e69ac8bfe0d04fd4b93a52071
parent3010d84c426f387a0bfde4495bb72a1c320820d5 (diff)
downloadorg.eclipse.mylyn.tasks-23522647b2fc4a09610fa2cad536fbf758a3b319.tar.gz
org.eclipse.mylyn.tasks-23522647b2fc4a09610fa2cad536fbf758a3b319.tar.xz
org.eclipse.mylyn.tasks-23522647b2fc4a09610fa2cad536fbf758a3b319.zip
RESOLVED - bug 193005: scope task history switcher and search to working set
https://bugs.eclipse.org/bugs/show_bug.cgi?id=193005
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java4
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java6
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActiveTaskHistoryDropDownAction.java (renamed from org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PreviousTaskDropDownAction.java)40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java11
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java38
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java27
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java33
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingset/TaskWorkingSetPage.java3
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java51
9 files changed, 128 insertions, 85 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java
index 6e6a918cf..2276b09e0 100644
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java
@@ -16,7 +16,7 @@ import java.util.List;
import junit.framework.TestCase;
import org.eclipse.mylyn.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.tasks.ui.actions.PreviousTaskDropDownAction;
+import org.eclipse.mylyn.internal.tasks.ui.actions.ActiveTaskHistoryDropDownAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskNavigateDropDownAction.TaskNavigateAction;
@@ -169,7 +169,7 @@ public class TaskHistoryTest extends TestCase {
assertTrue(prevHistoryList.get(prevHistoryList.size() - 4) == task1);
// Get a task from the list and activate it
- PreviousTaskDropDownAction prevAction = new PreviousTaskDropDownAction(history);
+ ActiveTaskHistoryDropDownAction prevAction = new ActiveTaskHistoryDropDownAction(history, false);
TaskNavigateAction navigateAction = prevAction.new TaskNavigateAction(task2);
navigateAction.run();
assertTrue(task2.isActive());
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java
index 625db4706..210201b04 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskTrimWidget.java
@@ -25,7 +25,7 @@ import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskListElementAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.PreviousTaskDropDownAction;
+import org.eclipse.mylyn.internal.tasks.ui.actions.ActiveTaskHistoryDropDownAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
import org.eclipse.mylyn.internal.tasks.ui.views.TaskListFilteredTree;
@@ -71,7 +71,7 @@ public class TaskTrimWidget extends WorkbenchWindowControlContribution {
private Hyperlink activeTaskLabel;
- private PreviousTaskDropDownAction navigateAction;
+ private ActiveTaskHistoryDropDownAction navigateAction;
private OpenWithBrowserAction openWithBrowserAction = new OpenWithBrowserAction();
@@ -147,7 +147,7 @@ public class TaskTrimWidget extends WorkbenchWindowControlContribution {
GridData gridData = new GridData(SWT.NONE, SWT.CENTER, false, false);
composite.setLayoutData(gridData);
- navigateAction = new PreviousTaskDropDownAction(TasksUiPlugin.getTaskListManager().getTaskActivationHistory());
+ navigateAction = new ActiveTaskHistoryDropDownAction(TasksUiPlugin.getTaskListManager().getTaskActivationHistory(), false);
ToolBarManager manager = new ToolBarManager(SWT.FLAT);
manager.add(navigateAction);
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PreviousTaskDropDownAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActiveTaskHistoryDropDownAction.java
index 0afad1226..d418d2220 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/PreviousTaskDropDownAction.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ActiveTaskHistoryDropDownAction.java
@@ -10,15 +10,23 @@
*******************************************************************************/
package org.eclipse.mylyn.internal.tasks.ui.actions;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.Separator;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
import org.eclipse.mylyn.internal.tasks.ui.views.TaskActivationHistory;
+import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
import org.eclipse.mylyn.tasks.core.AbstractTask;
+import org.eclipse.mylyn.tasks.core.AbstractTaskContainer;
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
+import org.eclipse.ui.IWorkingSet;
import org.eclipse.ui.PlatformUI;
/**
@@ -26,22 +34,44 @@ import org.eclipse.ui.PlatformUI;
* @author Mik Kersten
* @author Leo Dos Santos
*/
-public class PreviousTaskDropDownAction extends TaskNavigateDropDownAction {
+public class ActiveTaskHistoryDropDownAction extends TaskNavigateDropDownAction {
public static final String ID = "org.eclipse.mylyn.tasklist.actions.navigate.previous";
- public PreviousTaskDropDownAction(TaskActivationHistory history) {
+ private boolean scopeToWorkingSet = false;
+
+ public ActiveTaskHistoryDropDownAction(TaskActivationHistory history, boolean scopeToWorkingSet) {
super(history);
setText("Previous Task");
setToolTipText("Previous Task");
setId(ID);
setEnabled(true);
setImageDescriptor(TasksUiImages.NAVIGATE_PREVIOUS);
+ this.scopeToWorkingSet = scopeToWorkingSet;
}
@Override
protected void addActionsToMenu() {
- List<AbstractTask> tasks = taskHistory.getPreviousTasks();
+ List<AbstractTask> tasks = new ArrayList<AbstractTask>(taskHistory.getPreviousTasks());
+ Set<IWorkingSet> sets = TaskListView.getActiveWorkingSets();
+ if (scopeToWorkingSet && !sets.isEmpty()) {
+ Set<AbstractTask> allWorkingSetTasks = new HashSet<AbstractTask>();
+ for (IWorkingSet workingSet : sets) {
+ IAdaptable[] elements = workingSet.getElements();
+ for (IAdaptable adaptable : elements) {
+ if (adaptable instanceof AbstractTaskContainer) {
+ allWorkingSetTasks.addAll(((AbstractTaskContainer) adaptable).getChildren());
+ }
+ }
+ }
+ List<AbstractTask> allScopedTasks = new ArrayList<AbstractTask>(tasks);
+ for (AbstractTask task : tasks) {
+ if (!allWorkingSetTasks.contains(task)) {
+ allScopedTasks.remove(task);
+ }
+ }
+ tasks = allScopedTasks;
+ }
if (tasks.size() > MAX_ITEMS_TO_DISPLAY) {
tasks = tasks.subList(tasks.size() - MAX_ITEMS_TO_DISPLAY, tasks.size());
@@ -91,7 +121,7 @@ public class PreviousTaskDropDownAction extends TaskNavigateDropDownAction {
setEnabled(true);
setChecked(false);
setImageDescriptor(null);
- //TasksUiImages.TASK_INACTIVE);
+ //TasksUiImages.TASK_INACTIVE);
}
@Override
@@ -117,7 +147,7 @@ public class PreviousTaskDropDownAction extends TaskNavigateDropDownAction {
setEnabled(true);
setChecked(false);
setImageDescriptor(null);
- //TasksUiImages.TASK_ACTIVE);
+ //TasksUiImages.TASK_ACTIVE);
}
@Override
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java
index 07369541d..7e7479892 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskWorkingSetAction.java
@@ -30,7 +30,6 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.window.Window;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -53,6 +52,7 @@ import org.eclipse.ui.internal.dialogs.WorkingSetLabelProvider;
* Derived from SelectWorkingSetsAction
*
* @author Leo Dos Santos
+ * @author Mik Kersten
*/
public class TaskWorkingSetAction extends Action implements IMenuCreator {
@@ -165,7 +165,8 @@ public class TaskWorkingSetAction extends Action implements IMenuCreator {
return true;
}
- private boolean areAllTaskWorkingSetsEnabled() {
+ // TODO: delete if not used
+ protected boolean areAllTaskWorkingSetsEnabled() {
IWorkingSet[] workingSets = getAllWorkingSets();
for (IWorkingSet workingSet : workingSets) {
if (workingSet != null && workingSet.getId().equalsIgnoreCase(ID_TASK_WORKING_SET)) {
@@ -192,9 +193,7 @@ public class TaskWorkingSetAction extends Action implements IMenuCreator {
String[] ids = new String[1];
ids[0] = ID_TASK_WORKING_SET;
ConfigureWindowWorkingSetsDialog dialog = new ConfigureWindowWorkingSetsDialog(getWindow(), ids);
- if (dialog.open() == Window.OK) {
-
- }
+ dialog.open();
}
public void run(IAction action) {
@@ -324,7 +323,7 @@ public class TaskWorkingSetAction extends Action implements IMenuCreator {
.formalModifierLookup(IKeyLookup.M1_NAME)) != 0;
if (!modified) {
- // Default behaviour is to act as a radio button.
+ // Default behavior is to act as a radio button.
Set<IWorkingSet> tempList = new HashSet<IWorkingSet>();
Iterator<IWorkingSet> iter = newList.iterator();
while (iter.hasNext()) {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java
index 6c90d1823..ae6656ef8 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java
@@ -13,9 +13,11 @@ package org.eclipse.mylyn.internal.tasks.ui.views;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
@@ -27,6 +29,7 @@ import org.eclipse.mylyn.tasks.core.AbstractTask;
import org.eclipse.mylyn.tasks.core.AbstractTaskCategory;
import org.eclipse.mylyn.tasks.core.AbstractTaskContainer;
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
+import org.eclipse.ui.IWorkingSet;
/**
* Provides custom content for the task list, e.g. guaranteed visibility of some elements, ability to suppress
@@ -59,13 +62,7 @@ public class TaskListContentProvider implements IStructuredContentProvider, ITre
}
public Object getParent(Object child) {
-// if (child instanceof AbstractTask) {
-// if (((ITask) child).getParent() != null) {
-// return ((ITask) child).getParent();
-// } else {
-// return ((AbstractTask) child).getCategory();
-// }
-// }
+ // parents can not be computed since an element can have multiple
return null;
}
@@ -107,28 +104,39 @@ public class TaskListContentProvider implements IStructuredContentProvider, ITre
}
protected List<AbstractTaskContainer> applyFilter(Set<AbstractTaskContainer> roots) {
- String filterText = (this.view.getFilteredTree().getFilterControl()).getText();
+ String filterText = (view.getFilteredTree().getFilterControl()).getText();
if (containsNoFilterText(filterText)) {
List<AbstractTaskContainer> filteredRoots = new ArrayList<AbstractTaskContainer>();
for (AbstractTaskContainer element : roots) {
-// if (element instanceof AbstractTask) { // this case should not happen anymore
-// if (!filter(null, element)) {
-// filteredRoots.add(element);
-// }
-// } else
+ // NOTE: tasks can no longer appear as root elements
if (element instanceof AbstractRepositoryQuery) {
if (selectQuery((AbstractRepositoryQuery) element)) {
filteredRoots.add(element);
}
} else if (element instanceof AbstractTaskCategory) {
- if (selectContainer((AbstractTaskCategory)element)) {
+ if (selectContainer((AbstractTaskCategory) element)) {
filteredRoots.add(element);
}
}
}
return filteredRoots;
} else {
- return new ArrayList<AbstractTaskContainer>(roots);
+ // only match working sets when filter is on
+ Set<IWorkingSet> workingSets = TaskListView.getActiveWorkingSets();
+ Set<AbstractTaskContainer> workingSetContainers = new HashSet<AbstractTaskContainer>();
+ if (workingSets.isEmpty()) {
+ return new ArrayList<AbstractTaskContainer>(roots);
+ } else {
+ for (IWorkingSet workingSet : workingSets) {
+ IAdaptable[] elements = workingSet.getElements();
+ for (IAdaptable adaptable : elements) {
+ if (adaptable instanceof AbstractTaskContainer && roots.contains(adaptable)) {
+ workingSetContainers.add((AbstractTaskContainer) adaptable);
+ }
+ }
+ }
+ return new ArrayList<AbstractTaskContainer>(workingSetContainers);
+ }
}
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java
index 1236b1611..fbac8592a 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListFilteredTree.java
@@ -20,7 +20,7 @@ import org.eclipse.jface.layout.TreeColumnLayout;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
-import org.eclipse.mylyn.internal.tasks.ui.actions.PreviousTaskDropDownAction;
+import org.eclipse.mylyn.internal.tasks.ui.actions.ActiveTaskHistoryDropDownAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskWorkingSetAction;
import org.eclipse.mylyn.tasks.core.AbstractTask;
import org.eclipse.mylyn.tasks.core.ITaskActivityListener;
@@ -253,9 +253,9 @@ public class TaskListFilteredTree extends AbstractFilteredTree {
if (activeTask != null) {
indicateActiveTask(activeTask);
}
-
- final PreviousTaskDropDownAction action = new PreviousTaskDropDownAction(TasksUiPlugin.getTaskListManager()
- .getTaskActivationHistory());
+
+ final ActiveTaskHistoryDropDownAction action = new ActiveTaskHistoryDropDownAction(TasksUiPlugin.getTaskListManager()
+ .getTaskActivationHistory(), true);
// action.setImageDescriptor(TasksUiImages.BLANK_TINY);
// action.setText(null);
@@ -288,25 +288,8 @@ public class TaskListFilteredTree extends AbstractFilteredTree {
return activeTaskLink;
}
- private Set<IWorkingSet> getActiveTaskWorkingSets() {
- if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() != null) {
- Set<IWorkingSet> allSets = new HashSet<IWorkingSet>(Arrays.asList(PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow()
- .getActivePage()
- .getWorkingSets()));
- for (IWorkingSet workingSet : allSets) {
- if (!workingSet.getId().equalsIgnoreCase(TaskWorkingSetAction.ID_TASK_WORKING_SET)) {
- allSets.remove(workingSet);
- }
- }
- return allSets;
- } else {
- return Collections.emptySet();
- }
- }
-
public void indicateActiveTaskWorkingSet() {
- Set<IWorkingSet> activeSets = getActiveTaskWorkingSets();
+ Set<IWorkingSet> activeSets = TaskListView.getActiveWorkingSets();
if (filterComposite.isDisposed() || activeSets == null) {
return;
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
index 41b4e8dfc..a61a85398 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
@@ -12,6 +12,8 @@
package org.eclipse.mylyn.internal.tasks.ui.views;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -79,13 +81,14 @@ import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskListElementAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTasksUiPreferencesAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.PresentationDropDownSelectionAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.PreviousTaskDropDownAction;
+import org.eclipse.mylyn.internal.tasks.ui.actions.ActiveTaskHistoryDropDownAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.RemoveFromCategoryAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.RenameAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeAutomaticallyAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction;
import org.eclipse.mylyn.internal.tasks.ui.actions.TaskListElementPropertiesAction;
+import org.eclipse.mylyn.internal.tasks.ui.actions.TaskWorkingSetAction;
import org.eclipse.mylyn.internal.tasks.ui.views.TaskListTableSorter.SortByIndex;
import org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard;
import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery;
@@ -145,6 +148,7 @@ import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkingSet;
import org.eclipse.ui.IWorkingSetManager;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
@@ -252,7 +256,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener {
private SortyByDropDownAction sortByAction;
- PreviousTaskDropDownAction previousTaskAction;
+ ActiveTaskHistoryDropDownAction previousTaskAction;
private PresentationDropDownSelectionAction presentationDropDownSelectionAction;
@@ -1339,8 +1343,8 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener {
filterArchiveCategory = new FilterArchiveContainerAction(this);
sortByAction = new SortyByDropDownAction(this);
filterOnPriorityAction = new PriorityDropDownAction(this);
- previousTaskAction = new PreviousTaskDropDownAction(TasksUiPlugin.getTaskListManager()
- .getTaskActivationHistory());
+ previousTaskAction = new ActiveTaskHistoryDropDownAction(TasksUiPlugin.getTaskListManager()
+ .getTaskActivationHistory(), false);
linkWithEditorAction = new LinkWithEditorAction(this);
ITaskListPresentation[] presentations = { catagorizedPresentation, scheduledPresentation };
presentationDropDownSelectionAction = new PresentationDropDownSelectionAction(this, presentations);
@@ -1365,7 +1369,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener {
previousTaskAction.setEnabled(enable);
}
- public PreviousTaskDropDownAction getPreviousTaskAction() {
+ public ActiveTaskHistoryDropDownAction getPreviousTaskAction() {
return previousTaskAction;
}
@@ -1737,10 +1741,10 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener {
try {
getViewer().getControl().setRedraw(false);
getViewer().collapseAll();
+ getViewer().refresh();
if (isFocusedMode()) {
getViewer().expandAll();
}
- getViewer().refresh();
} finally {
getViewer().getControl().setRedraw(true);
}
@@ -1768,4 +1772,21 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener {
}
}
+ public static Set<IWorkingSet> getActiveWorkingSets() {
+ if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() != null) {
+ Set<IWorkingSet> allSets = new HashSet<IWorkingSet>(Arrays.asList(PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow()
+ .getActivePage()
+ .getWorkingSets()));
+ for (IWorkingSet workingSet : allSets) {
+ if (!workingSet.getId().equalsIgnoreCase(TaskWorkingSetAction.ID_TASK_WORKING_SET)) {
+ allSets.remove(workingSet);
+ }
+ }
+ return allSets;
+ } else {
+ return Collections.emptySet();
+ }
+ }
+
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingset/TaskWorkingSetPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingset/TaskWorkingSetPage.java
index 1e06fd545..bd35ba73e 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingset/TaskWorkingSetPage.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingset/TaskWorkingSetPage.java
@@ -22,6 +22,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.mylyn.internal.tasks.core.TaskArchive;
import org.eclipse.mylyn.internal.tasks.ui.views.TaskElementLabelProvider;
import org.eclipse.mylyn.tasks.core.AbstractTaskContainer;
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
@@ -180,7 +181,7 @@ public class TaskWorkingSetPage extends WizardPage implements IWorkingSetPage {
ArrayList<Object> containers = new ArrayList<Object>();
for (AbstractTaskContainer element : (Set<AbstractTaskContainer>)TasksUiPlugin.getTaskListManager().getTaskList().getRootElements()) {
- if (element instanceof AbstractTaskContainer) {
+ if (element instanceof AbstractTaskContainer && !(element instanceof TaskArchive)) {
containers.add(element);
}
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java
index 6cc3855cf..3d147cca1 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java
@@ -210,7 +210,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
private static final String LABEL_BUTTON_SUBMIT = "Submit";
private static final String LABEL_COPY_TO_CLIPBOARD = "Copy to Clipboard";
-
+
private static final String LABEL_SAVE = "Save...";
private RepositoryTaskEditorInput editorInput;
@@ -287,7 +287,6 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
}
};
-
private final ITaskListChangeListener TASKLIST_CHANGE_LISTENER = new ITaskListChangeListener() {
public void containersChanged(Set<TaskContainerDelta> containers) {
@@ -295,7 +294,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
for (TaskContainerDelta taskContainerDelta : containers) {
if (repositoryTask != null && repositoryTask.equals(taskContainerDelta.getContainer())) {
if (taskContainerDelta.getKind().equals(TaskContainerDelta.Kind.CONTENT)) {
- taskToRefresh = (AbstractTask)taskContainerDelta.getContainer();
+ taskToRefresh = (AbstractTask) taskContainerDelta.getContainer();
break;
}
}
@@ -323,10 +322,9 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
}
}
});
- }
+ }
}
};
-
private List<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
@@ -383,7 +381,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
private Action historyAction;
private Action openBrowserAction;
-
+
/**
* Call upon change to attribute value
*
@@ -586,17 +584,19 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
historyAction.setToolTipText(LABEL_HISTORY);
parentEditor.getTopForm().getToolBarManager().add(historyAction);
}
-
- openBrowserAction = new Action() {
- @Override
- public void run() {
- TasksUiUtil.openUrl(repositoryTask.getTaskUrl(), false);
- }
- };
- openBrowserAction.setImageDescriptor(TasksUiImages.BROWSER_SMALL);
- openBrowserAction.setToolTipText("Open with Web Browser");
- parentEditor.getTopForm().getToolBarManager().add(openBrowserAction);
+ if (repositoryTask != null) {
+ openBrowserAction = new Action() {
+ @Override
+ public void run() {
+ TasksUiUtil.openUrl(repositoryTask.getTaskUrl(), false);
+ }
+ };
+
+ openBrowserAction.setImageDescriptor(TasksUiImages.BROWSER_SMALL);
+ openBrowserAction.setToolTipText("Open with Web Browser");
+ parentEditor.getTopForm().getToolBarManager().add(openBrowserAction);
+ }
activateAction = new Action() {
@Override
@@ -615,7 +615,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
activateAction.setEnabled(!repositoryTask.isActive());
parentEditor.getTopForm().getToolBarManager().add(activateAction);
}
-
+
// Header drop down menu additions:
// form.getForm().getMenuManager().add(new
// SynchronizeSelectedAction());
@@ -1254,7 +1254,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
popupMenu.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
popupMenu.removeAll();
-
+
ISelection selection = attachmentsTableViewer.getSelection();
if (selection.isEmpty()) {
return;
@@ -1281,12 +1281,12 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
popupMenu.add(copyToClipAction);
}
popupMenu.add(new Separator("actions"));
-
+
// TODO: use workbench mechanism for this?
ObjectActionContributorManager.getManager().contributeObjectActions(
AbstractRepositoryTaskEditor.this, popupMenu, attachmentsTableViewer);
}
- });
+ });
} else {
Label label = toolkit.createLabel(attachmentsComposite, "No attachments");
registerDropListener(label);
@@ -1299,7 +1299,8 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
/* Launch a NewAttachemntWizard */
Button addAttachmentButton = toolkit.createButton(attachmentControlsComposite, "Attach File...", SWT.PUSH);
- AbstractTask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(), taskData.getId());
+ AbstractTask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(),
+ taskData.getId());
if (task == null) {
addAttachmentButton.setEnabled(false);
}
@@ -1915,7 +1916,8 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
toolkit.createLabel(buttonComposite, " ");
- AbstractTask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(), taskData.getId());
+ AbstractTask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(),
+ taskData.getId());
if (attachContextEnabled && task != null) {
addAttachContextButton(buttonComposite, task);
}
@@ -2550,9 +2552,8 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage {
"Task could not be created. No additional information was provided by the connector."));
}
} else {
- modifiedTask = (AbstractTask) TasksUiPlugin.getTaskListManager()
- .getTaskList()
- .getTask(repository.getUrl(), taskData.getId());
+ modifiedTask = (AbstractTask) TasksUiPlugin.getTaskListManager().getTaskList().getTask(
+ repository.getUrl(), taskData.getId());
}
// Synchronization accounting...

Back to the top