|
Lines 12-17
Link Here
|
| 12 |
package org.eclipse.mylyn.internal.tasks.ui; |
12 |
package org.eclipse.mylyn.internal.tasks.ui; |
| 13 |
|
13 |
|
| 14 |
import java.text.MessageFormat; |
14 |
import java.text.MessageFormat; |
|
|
15 |
import java.util.Date; |
| 16 |
import java.util.List; |
| 15 |
|
17 |
|
| 16 |
import org.eclipse.core.runtime.CoreException; |
18 |
import org.eclipse.core.runtime.CoreException; |
| 17 |
import org.eclipse.core.runtime.IProgressMonitor; |
19 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
Lines 25-33
Link Here
|
| 25 |
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; |
27 |
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; |
| 26 |
import org.eclipse.mylyn.tasks.core.ITask; |
28 |
import org.eclipse.mylyn.tasks.core.ITask; |
| 27 |
import org.eclipse.mylyn.tasks.core.TaskRepository; |
29 |
import org.eclipse.mylyn.tasks.core.TaskRepository; |
|
|
30 |
import org.eclipse.mylyn.tasks.core.data.TaskAttribute; |
| 28 |
import org.eclipse.mylyn.tasks.core.data.TaskData; |
31 |
import org.eclipse.mylyn.tasks.core.data.TaskData; |
| 29 |
import org.eclipse.mylyn.tasks.ui.TasksUi; |
32 |
import org.eclipse.mylyn.tasks.ui.TasksUi; |
| 30 |
import org.eclipse.mylyn.tasks.ui.TasksUiUtil; |
33 |
import org.eclipse.mylyn.tasks.ui.TasksUiUtil; |
|
|
34 |
import org.eclipse.mylyn.tasks.ui.editors.TaskEditor; |
| 31 |
import org.eclipse.ui.IWorkbenchPage; |
35 |
import org.eclipse.ui.IWorkbenchPage; |
| 32 |
import org.eclipse.ui.PlatformUI; |
36 |
import org.eclipse.ui.PlatformUI; |
| 33 |
|
37 |
|
|
Lines 49-62
Link Here
|
| 49 |
|
53 |
|
| 50 |
private TaskOpenListener listener; |
54 |
private TaskOpenListener listener; |
| 51 |
|
55 |
|
|
|
56 |
private final long timestamp; |
| 57 |
|
| 52 |
public OpenRepositoryTaskJob(String repositoryKind, String repositoryUrl, String taskId, String taskUrl, |
58 |
public OpenRepositoryTaskJob(String repositoryKind, String repositoryUrl, String taskId, String taskUrl, |
| 53 |
IWorkbenchPage page) { |
59 |
long timestamp, IWorkbenchPage page) { |
| 54 |
super(MessageFormat.format(Messages.OpenRepositoryTaskJob_Opening_repository_task_X, taskId)); |
60 |
super(MessageFormat.format(Messages.OpenRepositoryTaskJob_Opening_repository_task_X, taskId)); |
| 55 |
|
61 |
|
| 56 |
this.repositoryKind = repositoryKind; |
62 |
this.repositoryKind = repositoryKind; |
| 57 |
this.taskId = taskId; |
63 |
this.taskId = taskId; |
| 58 |
this.repositoryUrl = repositoryUrl; |
64 |
this.repositoryUrl = repositoryUrl; |
| 59 |
this.taskUrl = taskUrl; |
65 |
this.taskUrl = taskUrl; |
|
|
66 |
this.timestamp = timestamp; |
| 60 |
} |
67 |
} |
| 61 |
|
68 |
|
| 62 |
/** |
69 |
/** |
|
Lines 79-85
Link Here
|
| 79 |
if (repository == null) { |
86 |
if (repository == null) { |
| 80 |
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { |
87 |
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { |
| 81 |
public void run() { |
88 |
public void run() { |
| 82 |
MessageDialog.openError(null, Messages.OpenRepositoryTaskJob_Repository_Not_Found, |
89 |
MessageDialog.openError( |
|
|
90 |
null, |
| 91 |
Messages.OpenRepositoryTaskJob_Repository_Not_Found, |
| 83 |
MessageFormat.format( |
92 |
MessageFormat.format( |
| 84 |
Messages.OpenRepositoryTaskJob_Could_not_find_repository_configuration_for_X, |
93 |
Messages.OpenRepositoryTaskJob_Could_not_find_repository_configuration_for_X, |
| 85 |
repositoryUrl) |
94 |
repositoryUrl) |
|
Lines 95-101
Link Here
|
| 95 |
|
104 |
|
| 96 |
AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(repositoryKind); |
105 |
AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(repositoryKind); |
| 97 |
try { |
106 |
try { |
| 98 |
TaskData taskData = connector.getTaskData(repository, taskId, monitor); |
107 |
final TaskData taskData = connector.getTaskData(repository, taskId, monitor); |
| 99 |
if (taskData != null) { |
108 |
if (taskData != null) { |
| 100 |
task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId()); |
109 |
task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId()); |
| 101 |
TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true); |
110 |
TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true); |
|
Lines 105-110
Link Here
|
| 105 |
if (listener != null && event != null) { |
114 |
if (listener != null && event != null) { |
| 106 |
listener.taskOpened(event); |
115 |
listener.taskOpened(event); |
| 107 |
} |
116 |
} |
|
|
117 |
if (timestamp != 0 && event != null) { |
| 118 |
List<TaskAttribute> commentAttributes = taskData.getAttributeMapper().getAttributesByType( |
| 119 |
taskData, TaskAttribute.TYPE_COMMENT); |
| 120 |
if (commentAttributes.size() > 0) { |
| 121 |
for (TaskAttribute commentAttribute : commentAttributes) { |
| 122 |
TaskAttribute commentCreateDate = commentAttribute.getMappedAttribute(TaskAttribute.COMMENT_DATE); |
| 123 |
if (commentCreateDate != null) { |
| 124 |
Date dateValue = taskData.getAttributeMapper().getDateValue(commentCreateDate); |
| 125 |
if (dateValue.getTime() < timestamp) { |
| 126 |
continue; |
| 127 |
} |
| 128 |
TaskAttribute dn = commentAttribute.getMappedAttribute(TaskAttribute.COMMENT_NUMBER); |
| 129 |
TaskEditor editor = (TaskEditor) event.getEditor(); |
| 130 |
if (dn != null) { |
| 131 |
editor.selectReveal(TaskAttribute.PREFIX_COMMENT + dn.getValue()); |
| 132 |
} |
| 133 |
break; |
| 134 |
} |
| 135 |
} |
| 136 |
} |
| 137 |
} |
| 108 |
} |
138 |
} |
| 109 |
}); |
139 |
}); |
| 110 |
} else { |
140 |
} else { |