Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Pingel2012-02-06 14:41:31 +0000
committerSteffen Pingel2012-02-06 14:41:31 +0000
commit8a3c2adea6079e2ae1f2bff95c0d15ac708125cf (patch)
treeb36d4fcb944b93edd7dafb2447b6a43fce5fc93b /org.eclipse.mylyn.tasks.ui
parent9a0c2695eb3c9cbb84189bb2838f0d793e8e750f (diff)
downloadorg.eclipse.mylyn.tasks-8a3c2adea6079e2ae1f2bff95c0d15ac708125cf.tar.gz
org.eclipse.mylyn.tasks-8a3c2adea6079e2ae1f2bff95c0d15ac708125cf.tar.xz
org.eclipse.mylyn.tasks-8a3c2adea6079e2ae1f2bff95c0d15ac708125cf.zip
REOPENED - bug 369697: disable working set updater during import
https://bugs.eclipse.org/bugs/show_bug.cgi?id=369697
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java18
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java25
2 files changed, 22 insertions, 21 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java
index 5fa6f029f..1fc047bed 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataImportWizard.java
@@ -45,7 +45,6 @@ import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.IImportWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.UIJob;
import com.ibm.icu.text.SimpleDateFormat;
@@ -116,32 +115,23 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard {
public static boolean performFinish(final File sourceZipFile, final IWizardContainer container) {
TasksUi.getTaskActivityManager().deactivateTask(TasksUi.getTaskActivityManager().getActiveTask());
- TasksUiInternal.getTaskList().removeChangeListener(TaskWorkingSetUpdater.getInstance());
-
try {
+ TaskWorkingSetUpdater.setEnabled(false);
+
if (container != null) {
CommonUiUtil.run(container, new FileCopyJob(sourceZipFile));
} else {
WorkbenchUtil.busyCursorWhile(new FileCopyJob(sourceZipFile));
}
-
} catch (CoreException e) {
Status status = new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind(
"Problems encountered importing task data: {0}", e.getMessage()), e); //$NON-NLS-1$
TasksUiInternal.logAndDisplayStatus(Messages.TaskDataImportWizard_task_data_import_failed, status);
} catch (OperationCanceledException e) {
// canceled
+ } finally {
+ TaskWorkingSetUpdater.setEnabled(true);
}
-
- new UIJob("") { //$NON-NLS-1$
-
- @Override
- public IStatus runInUIThread(IProgressMonitor monitor) {
- TasksUiInternal.getTaskList().addChangeListener(TaskWorkingSetUpdater.getInstance());
- return Status.OK_STATUS;
- }
- }.schedule();
-
return true;
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java
index d9b7966da..07e85b4dc 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/workingsets/TaskWorkingSetUpdater.java
@@ -57,8 +57,6 @@ public class TaskWorkingSetUpdater implements IWorkingSetUpdater, ITaskListChang
private final List<IWorkingSet> workingSets = new CopyOnWriteArrayList<IWorkingSet>();
- private static TaskWorkingSetUpdater INSTANCE;
-
private static class TaskWorkingSetDelta {
private final IWorkingSet workingSet;
@@ -94,12 +92,26 @@ public class TaskWorkingSetUpdater implements IWorkingSetUpdater, ITaskListChang
}
}
+ private static boolean enabled = true;
+
public TaskWorkingSetUpdater() {
- INSTANCE = this;
TasksUiInternal.getTaskList().addChangeListener(this);
ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
}
+ /**
+ * Set <code>enabled</code> to false to disable processing of task list changes, e.g. during import operations.
+ *
+ * @param enabled
+ */
+ public static void setEnabled(boolean enabled) {
+ TaskWorkingSetUpdater.enabled = enabled;
+ }
+
+ public static boolean isEnabled() {
+ return enabled;
+ }
+
public void dispose() {
TasksUiInternal.getTaskList().removeChangeListener(this);
}
@@ -157,6 +169,9 @@ public class TaskWorkingSetUpdater implements IWorkingSetUpdater, ITaskListChang
}
public void containersChanged(Set<TaskContainerDelta> delta) {
+ if (!isEnabled()) {
+ return;
+ }
for (TaskContainerDelta taskContainerDelta : delta) {
if (taskContainerDelta.getElement() instanceof TaskCategory
|| taskContainerDelta.getElement() instanceof IRepositoryQuery) {
@@ -360,8 +375,4 @@ public class TaskWorkingSetUpdater implements IWorkingSetUpdater, ITaskListChang
}
}
- public static TaskWorkingSetUpdater getInstance() {
- return INSTANCE;
- }
-
}

Back to the top