diff options
author | Steffen Pingel | 2012-02-06 14:41:31 +0000 |
---|---|---|
committer | Steffen Pingel | 2012-02-06 14:41:31 +0000 |
commit | 8a3c2adea6079e2ae1f2bff95c0d15ac708125cf (patch) | |
tree | b36d4fcb944b93edd7dafb2447b6a43fce5fc93b /org.eclipse.mylyn.tasks.ui | |
parent | 9a0c2695eb3c9cbb84189bb2838f0d793e8e750f (diff) | |
download | org.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')
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; - } - } |