|
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() { |