diff options
author | sminto | 2009-06-01 15:38:50 +0000 |
---|---|---|
committer | sminto | 2009-06-01 15:38:50 +0000 |
commit | 31df9c71515d59ac290fc8423375bff65e24d77f (patch) | |
tree | 8c49e0299efd443f10f2644447c3a4477a73d0cb | |
parent | 84a69909b102093a4e6a5d4c9bb03f19924e4279 (diff) | |
download | org.eclipse.mylyn.tasks-31df9c71515d59ac290fc8423375bff65e24d77f.tar.gz org.eclipse.mylyn.tasks-31df9c71515d59ac290fc8423375bff65e24d77f.tar.xz org.eclipse.mylyn.tasks-31df9c71515d59ac290fc8423375bff65e24d77f.zip |
port tasks core changes to 3.3
5 files changed, 40 insertions, 15 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java index 7ce1f1284..112fee63c 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java @@ -136,4 +136,11 @@ public interface ITasksCoreConstants { public static final String PROPERTY_LINK_PROVIDER_TIMEOUT = "org.eclipse.mylyn.linkProviderTimeout"; //$NON-NLS-1$ + /** + * Boolean value that indicates that queries participate in automatic synchronizations. + */ + public static final String ATTRIBUTE_AUTO_UPDATE = "org.eclipse.mylyn.tasks.core.synchronization.auto"; //$NON-NLS-1$ + + public static final Object JOB_FAMILY_SYNCHRONIZATION = new Object(); + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java index 436e64aa2..84c1ade39 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java @@ -132,4 +132,13 @@ public class RepositoryQuery extends AbstractTaskContainer implements IRepositor attributeMap.setAttribute(key, value); } + public boolean getAutoUpdate() { + String value = getAttribute(ITasksCoreConstants.ATTRIBUTE_AUTO_UPDATE); + return value == null || Boolean.valueOf(value); + } + + public void setAutoUpdate(boolean autoUpdate) { + setAttribute(ITasksCoreConstants.ATTRIBUTE_AUTO_UPDATE, Boolean.toString(autoUpdate)); + } + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java index f9f08a021..1248fbef0 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java @@ -41,7 +41,7 @@ public class SubmitTaskAttachmentJob extends SubmitJob { private final AbstractRepositoryConnector connector; - private IStatus error; + private IStatus errorStatus; private final AbstractTaskAttachmentSource source; @@ -72,7 +72,7 @@ public class SubmitTaskAttachmentJob extends SubmitJob { @Override public IStatus getStatus() { - return error; + return errorStatus; } @Override @@ -84,7 +84,7 @@ public class SubmitTaskAttachmentJob extends SubmitJob { public IStatus run(IProgressMonitor monitor) { final AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler(); if (attachmentHandler == null) { - error = new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, + errorStatus = new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, "The task repository does not support attachments."); //$NON-NLS-1$ return Status.OK_STATUS; } @@ -101,14 +101,14 @@ public class SubmitTaskAttachmentJob extends SubmitJob { taskDataManager.putUpdatedTaskData(task, taskData, true); fireTaskSynchronized(monitor); } catch (CoreException e) { - error = e.getStatus(); + errorStatus = e.getStatus(); } catch (OperationCanceledException e) { - return Status.CANCEL_STATUS; + errorStatus = Status.CANCEL_STATUS; } finally { monitor.done(); } fireDone(); - return Status.OK_STATUS; + return (errorStatus == Status.CANCEL_STATUS) ? Status.CANCEL_STATUS : Status.OK_STATUS; } } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java index d41887104..1ae57cd61 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java @@ -95,7 +95,7 @@ public class SubmitTaskJob extends SubmitJob { } catch (CoreException e) { errorStatus = e.getStatus(); } catch (OperationCanceledException e) { - return Status.CANCEL_STATUS; + errorStatus = Status.CANCEL_STATUS; } catch (Exception e) { StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, "Unexpected error during task submission", e)); //$NON-NLS-1$ @@ -105,7 +105,7 @@ public class SubmitTaskJob extends SubmitJob { monitor.done(); } fireDone(); - return Status.OK_STATUS; + return (errorStatus == Status.CANCEL_STATUS) ? Status.CANCEL_STATUS : Status.OK_STATUS; } private ITask createTask(IProgressMonitor monitor, TaskData updatedTaskData) throws CoreException { diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java index 8d7f8fe7d..bc0adfff8 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java @@ -16,6 +16,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import org.eclipse.core.runtime.CoreException; @@ -50,8 +51,6 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { private Set<TaskRepository> repositories; - private final Object family = new Object(); - private final IRepositoryModel tasksModel; public SynchronizeRepositoriesJob(TaskList taskList, TaskDataManager taskDataManager, IRepositoryModel tasksModel, @@ -99,12 +98,21 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { repository.getRepositoryLabel())); final AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repository.getConnectorKind()); - Set<RepositoryQuery> queries = taskList.getRepositoryQueries(repository.getRepositoryUrl()); + Set<RepositoryQuery> queries = new HashSet<RepositoryQuery>( + taskList.getRepositoryQueries(repository.getRepositoryUrl())); + // remove queries that are not configured for auto update + if (!isUser()) { + for (Iterator<RepositoryQuery> it = queries.iterator(); it.hasNext();) { + if (!it.next().getAutoUpdate()) { + it.remove(); + } + } + } if (isUser() || queries.isEmpty()) { monitor.worked(20); } else { - // occasionally request update of repository configuration attributes + // occasionally request update of repository configuration attributes as part of background synchronizations updateRepositoryConfiguration(repository, connector, new SubProgressMonitor(monitor, 20)); } @@ -136,7 +144,7 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { repository, queries) { @Override public boolean belongsTo(Object family) { - return SynchronizeRepositoriesJob.this.family == family; + return ITasksCoreConstants.JOB_FAMILY_SYNCHRONIZATION == family; } }; job.setUser(isUser()); @@ -149,8 +157,9 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { } } - public Object getFamily() { - return family; + @Override + public boolean belongsTo(Object family) { + return ITasksCoreConstants.JOB_FAMILY_SYNCHRONIZATION == family; } private void updateRepositoryConfiguration(TaskRepository repository, AbstractRepositoryConnector connector, |