Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 165809 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/tasks/ui/views/RepositoryOfflineAction.java (+1 lines)
Lines 46-51 Link Here
46
	public void run() {
46
	public void run() {
47
		repository.setOffline(isChecked());
47
		repository.setOffline(isChecked());
48
		TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChagned(repository);
48
		TasksUiPlugin.getRepositoryManager().notifyRepositorySettingsChagned(repository);
49
		TasksUiPlugin.getRepositoryManager().saveRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
49
	}
50
	}
50
51
51
	public void selectionChanged(IAction action, ISelection selection) {
52
	public void selectionChanged(IAction action, ISelection selection) {
(-)src/org/eclipse/mylyn/tasks/ui/SynchronizeTaskJob.java (-15 / +26 lines)
Lines 27-32 Link Here
27
import org.eclipse.mylyn.internal.monitor.core.util.StatusManager;
27
import org.eclipse.mylyn.internal.monitor.core.util.StatusManager;
28
import org.eclipse.mylyn.internal.tasks.ui.TaskFactory;
28
import org.eclipse.mylyn.internal.tasks.ui.TaskFactory;
29
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
29
import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages;
30
import org.eclipse.mylyn.internal.tasks.ui.actions.AbstractTaskRepositoryAction;
30
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
31
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
31
import org.eclipse.mylyn.tasks.core.AbstractTask;
32
import org.eclipse.mylyn.tasks.core.AbstractTask;
32
import org.eclipse.mylyn.tasks.core.AbstractTaskDataHandler;
33
import org.eclipse.mylyn.tasks.core.AbstractTaskDataHandler;
Lines 137-143 Link Here
137
					return Status.CANCEL_STATUS;
138
					return Status.CANCEL_STATUS;
138
				} catch (final CoreException e) {
139
				} catch (final CoreException e) {
139
					for (AbstractTask task : tasksToSynch) {
140
					for (AbstractTask task : tasksToSynch) {
140
						task.setStatus(e.getStatus());
141
						updateStatus(repository, task, e.getStatus());
141
					}
142
					}
142
					if (forced) {
143
					if (forced) {
143
						PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
144
						PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
Lines 158-194 Link Here
158
		return Status.OK_STATUS;
159
		return Status.OK_STATUS;
159
	}
160
	}
160
161
161
	private void synchronizeTask(IProgressMonitor monitor, AbstractTask repositoryTask) {
162
	private void synchronizeTask(IProgressMonitor monitor, AbstractTask task) {
162
		monitor.subTask(repositoryTask.getSummary());
163
		monitor.subTask(task.getSummary());
163
164
164
		repositoryTask.setStatus(null);
165
		task.setStatus(null);
165
166
167
		final TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository(
168
				task.getRepositoryKind(), task.getRepositoryUrl());
166
		try {
169
		try {
167
168
			final TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository(
169
					repositoryTask.getRepositoryKind(), repositoryTask.getRepositoryUrl());
170
			if (repository == null) {
170
			if (repository == null) {
171
				throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.PLUGIN_ID, 0,
171
				throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.PLUGIN_ID, 0,
172
						"Associated repository could not be found. Ensure proper repository configuration of "
172
						"Associated repository could not be found. Ensure proper repository configuration of "
173
								+ repositoryTask.getRepositoryUrl() + " in " + TasksUiPlugin.LABEL_VIEW_REPOSITORIES
173
								+ task.getRepositoryUrl() + " in " + TasksUiPlugin.LABEL_VIEW_REPOSITORIES
174
								+ ".", null));
174
								+ ".", null));
175
			}
175
			}
176
176
177
			TasksUiPlugin.getTaskListManager().getTaskList().notifyTaskChanged(repositoryTask, false);
177
			TasksUiPlugin.getTaskListManager().getTaskList().notifyTaskChanged(task, false);
178
			if (taskDataHandler != null) {
178
			if (taskDataHandler != null) {
179
				String taskId = repositoryTask.getTaskId();
179
				String taskId = task.getTaskId();
180
				RepositoryTaskData downloadedTaskData = taskDataHandler.getTaskData(repository, taskId, monitor);
180
				RepositoryTaskData downloadedTaskData = taskDataHandler.getTaskData(repository, taskId, monitor);
181
181
182
				if (downloadedTaskData != null) {
182
				if (downloadedTaskData != null) {
183
					updateTask(monitor, repository, repositoryTask, downloadedTaskData);
183
					updateTask(monitor, repository, task, downloadedTaskData);
184
				} else {
184
				} else {
185
					updateFromRepository(repository, repositoryTask, monitor);
185
					updateFromRepository(repository, task, monitor);
186
				}
186
				}
187
			} else {
187
			} else {
188
				updateFromRepository(repository, repositoryTask, monitor);
188
				updateFromRepository(repository, task, monitor);
189
			}
189
			}
190
		} catch (final CoreException e) {
190
		} catch (final CoreException e) {
191
			repositoryTask.setStatus(e.getStatus());
191
			updateStatus(repository, task, e.getStatus());
192
			if (forced) {
192
			if (forced) {
193
				PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
193
				PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
194
					public void run() {
194
					public void run() {
Lines 201-206 Link Here
201
		monitor.worked(1);
201
		monitor.worked(1);
202
	}
202
	}
203
203
204
	/**
205
	 * Does not report synchronization failures if repository is offline.
206
	 */
207
	private void updateStatus(TaskRepository repository, AbstractTask task, IStatus status) {
208
		if (!forced && repository != null && repository.isOffline()) {
209
			task.setCurrentlySynchronizing(false);
210
		} else {
211
			task.setStatus(status);
212
		}
213
	}
214
204
	private void synchronizeTasks(IProgressMonitor monitor, TaskRepository repository, Set<AbstractTask> tasks)
215
	private void synchronizeTasks(IProgressMonitor monitor, TaskRepository repository, Set<AbstractTask> tasks)
205
			throws CoreException {
216
			throws CoreException {
206
		monitor.subTask("Synchronizing tasks from: " + repository.getRepositoryLabel());
217
		monitor.subTask("Synchronizing tasks from: " + repository.getRepositoryLabel());
Lines 222-228 Link Here
222
						try {
233
						try {
223
							updateTask(new SubProgressMonitor(monitor, 1), repository, task, taskData);
234
							updateTask(new SubProgressMonitor(monitor, 1), repository, task, taskData);
224
						} catch (final CoreException e) {
235
						} catch (final CoreException e) {
225
							task.setStatus(e.getStatus());
236
							updateStatus(repository, task, e.getStatus());
226
							if (forced) {
237
							if (forced) {
227
								PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
238
								PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
228
									public void run() {
239
									public void run() {

Return to bug 165809