diff options
author | Steffen Pingel | 2013-04-04 23:34:08 +0000 |
---|---|---|
committer | Steffen Pingel | 2013-04-05 00:11:32 +0000 |
commit | b66afaf054fe4e7fc5756b208c67eb895138fbdb (patch) | |
tree | d8a7bb1decac5dd41e3b0a563b8326141fc951fa /org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks | |
parent | 13588971667d0529469d4d5c448291029280d6c5 (diff) | |
download | org.eclipse.mylyn.tasks-b66afaf054fe4e7fc5756b208c67eb895138fbdb.tar.gz org.eclipse.mylyn.tasks-b66afaf054fe4e7fc5756b208c67eb895138fbdb.tar.xz org.eclipse.mylyn.tasks-b66afaf054fe4e7fc5756b208c67eb895138fbdb.zip |
404857: jobs should support running in the background
Change-Id: I4ea93f46916f92a9c9ac9f5ec8f15198bf45f14d
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=404857
Diffstat (limited to 'org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks')
6 files changed, 44 insertions, 29 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskJobFactory.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskJobFactory.java index 5f4aa9933..c838ef843 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskJobFactory.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskJobFactory.java @@ -145,6 +145,7 @@ public class TaskJobFactory implements ITaskJobFactory { SubmitJob job = new SubmitTaskJob(taskDataManager, connector, taskRepository, task, taskData, oldAttributes, getTaskJobListeners(connector)); job.setPriority(Job.INTERACTIVE); + job.setUser(true); try { taskList.run(new ITaskListRunnable() { public void execute(IProgressMonitor monitor) throws CoreException { @@ -164,6 +165,7 @@ public class TaskJobFactory implements ITaskJobFactory { Messages.TaskJobFactory_Refreshing_repository_configuration, taskRepository, connector); updateJob.setPriority(Job.INTERACTIVE); updateJob.setRule(new ObjectSchedulingRule(taskRepository)); + updateJob.setUser(true); return updateJob; } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/DeleteTasksJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/DeleteTasksJob.java index d9981f038..991f3ea26 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/DeleteTasksJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/DeleteTasksJob.java @@ -54,33 +54,41 @@ public class DeleteTasksJob extends TaskJob { protected IStatus run(IProgressMonitor monitor) { status = new MultiStatus(ITasksCoreConstants.ID_PLUGIN, IStatus.OK, "Problems occurred while deleting repository tasks", null); //$NON-NLS-1$ - for (ITask task : tasksToDelete) { - // delete the task on the server using the repository connector - AbstractRepositoryConnector repositoryConnector = repositoryManager.getRepositoryConnector(task.getConnectorKind()); - TaskRepository repository = repositoryManager.getRepository(task.getConnectorKind(), - task.getRepositoryUrl()); - if (repositoryConnector.canDeleteTask(repository, task)) { - try { - repositoryConnector.deleteTask(repository, task, monitor); - } catch (OperationCanceledException e) { - return Status.CANCEL_STATUS; - } catch (Exception e) { - String taskId = task.getTaskKey(); - if (taskId == null) { - taskId = task.getTaskId(); + try { + monitor.beginTask(Messages.DeleteTasksJob_Deleting_tasks, tasksToDelete.size() * 100); + for (ITask task : tasksToDelete) { + // delete the task on the server using the repository connector + AbstractRepositoryConnector repositoryConnector = repositoryManager.getRepositoryConnector(task.getConnectorKind()); + TaskRepository repository = repositoryManager.getRepository(task.getConnectorKind(), + task.getRepositoryUrl()); + if (repositoryConnector.canDeleteTask(repository, task)) { + try { + repositoryConnector.deleteTask(repository, task, subMonitorFor(monitor, 100)); + } catch (OperationCanceledException e) { + return Status.CANCEL_STATUS; + } catch (Exception e) { + String taskId = task.getTaskKey(); + if (taskId == null) { + taskId = task.getTaskId(); + } + status.add(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, NLS.bind( + "Problems occurred while deleting {0} from {1}.", taskId, task.getRepositoryUrl()), e)); //$NON-NLS-1$ + } catch (LinkageError e) { + String taskId = task.getTaskKey(); + if (taskId == null) { + taskId = task.getTaskId(); + } + status.add(new Status( + IStatus.ERROR, + ITasksCoreConstants.ID_PLUGIN, + NLS.bind( + "Internal Error occurred while deleting {0} from {1}.", taskId, task.getRepositoryUrl()), e)); //$NON-NLS-1$ } - status.add(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, NLS.bind( - "Problems occurred while deleting {0} from {1}.", taskId, task.getRepositoryUrl()), e)); //$NON-NLS-1$ - } catch (LinkageError e) { - String taskId = task.getTaskKey(); - if (taskId == null) { - taskId = task.getTaskId(); - } - status.add(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, NLS.bind( - "Internal Error occurred while deleting {0} from {1}.", taskId, task.getRepositoryUrl()), e)); //$NON-NLS-1$ - } + } } + } finally { + monitor.done(); } return Status.OK_STATUS; } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/GetTaskHistoryJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/GetTaskHistoryJob.java index 5fb8f9abc..0fb5fbd16 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/GetTaskHistoryJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/GetTaskHistoryJob.java @@ -52,7 +52,8 @@ public class GetTaskHistoryJob extends TaskJob { monitor.setCanceled(false); monitor.attach(jobMonitor); try { - history = connector.getTaskHistory(repository, task, monitor); + monitor.beginTask(Messages.GetTaskHistoryJob_Retrieving_Task_History, 100); + history = connector.getTaskHistory(repository, task, subMonitorFor(monitor, 100)); } catch (CoreException e) { errorStatus = e.getStatus(); } catch (OperationCanceledException e) { diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/Messages.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/Messages.java index 293556b10..9d32893e3 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/Messages.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/Messages.java @@ -25,8 +25,12 @@ public class Messages extends NLS { NLS.initializeMessages(BUNDLE_NAME, Messages.class); } + public static String DeleteTasksJob_Deleting_tasks; + public static String GetTaskHistoryJob_Retrieving_History; + public static String GetTaskHistoryJob_Retrieving_Task_History; + public static String SubmitTaskAttachmentJob_Sending_data; public static String SubmitTaskAttachmentJob_Submitting_attachment; diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/UpdateRepositoryConfigurationJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/UpdateRepositoryConfigurationJob.java index 9c3f08968..44bab3c92 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/UpdateRepositoryConfigurationJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/UpdateRepositoryConfigurationJob.java @@ -15,7 +15,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubMonitor; import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.core.sync.TaskJob; @@ -41,11 +40,10 @@ public class UpdateRepositoryConfigurationJob extends TaskJob { @Override protected IStatus run(IProgressMonitor monitor) { - monitor = SubMonitor.convert(monitor); - monitor.beginTask(Messages.UpdateRepositoryConfigurationJob_Receiving_configuration, IProgressMonitor.UNKNOWN); + monitor.beginTask(Messages.UpdateRepositoryConfigurationJob_Receiving_configuration, 100); try { try { - connector.updateRepositoryConfiguration(repository, monitor); + connector.updateRepositoryConfiguration(repository, subMonitorFor(monitor, 100)); } catch (CoreException e) { error = e.getStatus(); } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/messages.properties b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/messages.properties index efab6b6e0..ce4e6a4ef 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/messages.properties +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/messages.properties @@ -8,7 +8,9 @@ # Contributors: # Tasktop Technologies - initial API and implementation ############################################################################### +DeleteTasksJob_Deleting_tasks=Deleting tasks GetTaskHistoryJob_Retrieving_History=Retrieving History +GetTaskHistoryJob_Retrieving_Task_History=Retrieving Task History SubmitTaskAttachmentJob_Sending_data=Sending data SubmitTaskAttachmentJob_Submitting_attachment=Submitting attachment SubmitTaskAttachmentJob_Updating_task=Updating task |