Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 163114 Details for
Bug 178474
[api] open corresponding task should highlight or expand comment number
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch
178474.txt (text/plain), 17.46 KB, created by
Frank Becker
on 2010-03-26 15:11:12 EDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Frank Becker
Created:
2010-03-26 15:11:12 EDT
Size:
17.46 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java,v >retrieving revision 1.34 >diff -u -r1.34 OpenRepositoryTaskJob.java >--- src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java 1 Mar 2010 01:43:36 -0000 1.34 >+++ src/org/eclipse/mylyn/internal/tasks/ui/OpenRepositoryTaskJob.java 26 Mar 2010 19:06:37 -0000 >@@ -12,6 +12,8 @@ > package org.eclipse.mylyn.internal.tasks.ui; > > import java.text.MessageFormat; >+import java.util.Date; >+import java.util.List; > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IProgressMonitor; >@@ -25,9 +27,11 @@ > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylyn.tasks.core.ITask; > import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.core.data.TaskAttribute; > import org.eclipse.mylyn.tasks.core.data.TaskData; > import org.eclipse.mylyn.tasks.ui.TasksUi; > import org.eclipse.mylyn.tasks.ui.TasksUiUtil; >+import org.eclipse.mylyn.tasks.ui.editors.TaskEditor; > import org.eclipse.ui.IWorkbenchPage; > import org.eclipse.ui.PlatformUI; > >@@ -49,14 +53,17 @@ > > private TaskOpenListener listener; > >+ private final long timestamp; >+ > public OpenRepositoryTaskJob(String repositoryKind, String repositoryUrl, String taskId, String taskUrl, >- IWorkbenchPage page) { >+ long timestamp, IWorkbenchPage page) { > super(MessageFormat.format(Messages.OpenRepositoryTaskJob_Opening_repository_task_X, taskId)); > > this.repositoryKind = repositoryKind; > this.taskId = taskId; > this.repositoryUrl = repositoryUrl; > this.taskUrl = taskUrl; >+ this.timestamp = timestamp; > } > > /** >@@ -95,7 +102,7 @@ > > AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(repositoryKind); > try { >- TaskData taskData = connector.getTaskData(repository, taskId, monitor); >+ final TaskData taskData = connector.getTaskData(repository, taskId, monitor); > if (taskData != null) { > task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId()); > TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true); >@@ -105,6 +112,27 @@ > if (listener != null && event != null) { > listener.taskOpened(event); > } >+ if (timestamp != 0 && event != null) { >+ List<TaskAttribute> commentAttributes = taskData.getAttributeMapper().getAttributesByType( >+ taskData, TaskAttribute.TYPE_COMMENT); >+ if (commentAttributes.size() > 0) { >+ for (TaskAttribute commentAttribute : commentAttributes) { >+ TaskAttribute commentCreateDate = commentAttribute.getMappedAttribute(TaskAttribute.COMMENT_DATE); >+ if (commentCreateDate != null) { >+ Date dateValue = taskData.getAttributeMapper().getDateValue(commentCreateDate); >+ if (dateValue.getTime() < timestamp) { >+ continue; >+ } >+ TaskAttribute dn = commentAttribute.getMappedAttribute(TaskAttribute.COMMENT_NUMBER); >+ TaskEditor editor = (TaskEditor) event.getEditor(); >+ if (dn != null) { >+ editor.selectReveal(TaskAttribute.PREFIX_COMMENT + dn.getValue()); >+ } >+ break; >+ } >+ } >+ } >+ } > } > }); > } else { >Index: src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java,v >retrieving revision 1.19 >diff -u -r1.19 OpenSearchResultAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java 24 Jul 2009 12:05:46 -0000 1.19 >+++ src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java 26 Mar 2010 19:06:37 -0000 >@@ -55,7 +55,7 @@ > for (Iterator<AbstractTask> it = selection.iterator(); it.hasNext();) { > AbstractTask repositoryHit = it.next(); > TasksUiUtil.openTask(repositoryHit.getRepositoryUrl(), repositoryHit.getTaskId(), >- repositoryHit.getUrl()); >+ repositoryHit.getUrl(), 0); > } > > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java,v >retrieving revision 1.108 >diff -u -r1.108 TasksUiInternal.java >--- src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java 15 Mar 2010 19:10:37 -0000 1.108 >+++ src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java 26 Mar 2010 19:06:37 -0000 >@@ -88,11 +88,11 @@ > import org.eclipse.mylyn.tasks.core.IRepositoryManager; > import org.eclipse.mylyn.tasks.core.IRepositoryQuery; > import org.eclipse.mylyn.tasks.core.ITask; >+import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel; >+import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState; > import org.eclipse.mylyn.tasks.core.ITaskMapping; > import org.eclipse.mylyn.tasks.core.RepositoryStatus; > import org.eclipse.mylyn.tasks.core.TaskRepository; >-import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel; >-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState; > import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource; > import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler; > import org.eclipse.mylyn.tasks.core.data.ITaskDataWorkingCopy; >@@ -839,7 +839,7 @@ > if (connectorUi != null) { > try { > return TasksUiInternal.openRepositoryTask(connectorUi.getConnectorKind(), >- repository.getRepositoryUrl(), taskId, listener); >+ repository.getRepositoryUrl(), taskId, listener, 0); > } catch (Exception e) { > StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, > "Internal error while opening repository task", e)); //$NON-NLS-1$ >@@ -926,8 +926,8 @@ > } > } > >- public static boolean openRepositoryTask(String connectorKind, String repositoryUrl, String id) { >- return openRepositoryTask(connectorKind, repositoryUrl, id, null); >+ public static boolean openRepositoryTask(String connectorKind, String repositoryUrl, String id, long timestamp) { >+ return openRepositoryTask(connectorKind, repositoryUrl, id, null, timestamp); > } > > /** >@@ -937,7 +937,7 @@ > * @return true if the task was successfully opened > */ > public static boolean openRepositoryTask(String connectorKind, String repositoryUrl, String id, >- TaskOpenListener listener) { >+ TaskOpenListener listener, long timestamp) { > IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); > AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(connectorKind); > String taskUrl = connector.getTaskUrl(repositoryUrl, id); >@@ -957,7 +957,8 @@ > } > IWorkbenchPage page = window.getActivePage(); > >- OpenRepositoryTaskJob job = new OpenRepositoryTaskJob(connectorKind, repositoryUrl, id, taskUrl, page); >+ OpenRepositoryTaskJob job = new OpenRepositoryTaskJob(connectorKind, repositoryUrl, id, taskUrl, timestamp, >+ page); > job.setListener(listener); > job.schedule(); > >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java,v >retrieving revision 1.99 >diff -u -r1.99 TaskListDropAdapter.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java 10 Dec 2009 03:14:09 -0000 1.99 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java 26 Mar 2010 19:06:38 -0000 >@@ -208,7 +208,7 @@ > if (repositoryUrl != null && taskId != null) { > // attempt to open task in background > // TODO: consider attaching a listener to OpenRepsitoryTaskJob to move task to drop target >- TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId); >+ TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId, 0); > } > } else { > // create local task, using title of web page as a summary >Index: src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java,v >retrieving revision 1.155 >diff -u -r1.155 TasksUiUtil.java >--- src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java 1 Mar 2010 03:22:42 -0000 1.155 >+++ src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java 26 Mar 2010 19:06:38 -0000 >@@ -39,9 +39,9 @@ > import org.eclipse.mylyn.tasks.core.IRepositoryManager; > import org.eclipse.mylyn.tasks.core.IRepositoryQuery; > import org.eclipse.mylyn.tasks.core.ITask; >+import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState; > import org.eclipse.mylyn.tasks.core.ITaskMapping; > import org.eclipse.mylyn.tasks.core.TaskRepository; >-import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState; > import org.eclipse.mylyn.tasks.ui.wizards.TaskRepositoryWizardDialog; > import org.eclipse.swt.widgets.Shell; > import org.eclipse.ui.IEditorInput; >@@ -262,7 +262,7 @@ > */ > @Deprecated > public static boolean openRepositoryTask(String repositoryUrl, String taskId, String fullUrl) { >- return openTask(repositoryUrl, taskId, fullUrl); >+ return openTask(repositoryUrl, taskId, fullUrl, 0); > } > > /** >@@ -319,7 +319,7 @@ > * > * @since 3.0 > */ >- public static boolean openTask(String repositoryUrl, String taskId, String fullUrl) { >+ public static boolean openTask(String repositoryUrl, String taskId, String fullUrl, long timestamp) { > AbstractTask task = TasksUiInternal.getTask(repositoryUrl, taskId, fullUrl); > > if (task != null) { >@@ -332,12 +332,14 @@ > fullUrl); > if (connector != null) { > if (repositoryUrl != null && taskId != null) { >- opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId); >+ opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId, >+ timestamp); > } else { > repositoryUrl = connector.getRepositoryUrlFromTaskUrl(fullUrl); > taskId = connector.getTaskIdFromTaskUrl(fullUrl); > if (repositoryUrl != null && taskId != null) { >- opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId); >+ opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId, >+ timestamp); > } > } > } >#P org.eclipse.mylyn.team.cvs >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.team.cvs/plugin.xml,v >retrieving revision 1.9 >diff -u -r1.9 plugin.xml >--- plugin.xml 24 Jul 2009 12:05:05 -0000 1.9 >+++ plugin.xml 26 Mar 2010 19:06:40 -0000 >@@ -23,6 +23,11 @@ > class="org.eclipse.mylyn.internal.team.ccvs.CvsLinkedTaskInfoAdapterFactory"> > <adapter type="org.eclipse.mylyn.team.ui.AbstractTaskReference"/> > </factory> >+ >+ <factory adaptableType="org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision" >+ class="org.eclipse.mylyn.internal.team.ccvs.CvsLinkedTaskInfoAdapterFactory"> >+ <adapter type="org.eclipse.mylyn.team.ui.AbstractTaskReference"/> >+ </factory> > > <!-- > <factory adaptableType="org.eclipse.mylyn.internal.team.ui.ContextChangeSet" >Index: src/org/eclipse/mylyn/internal/team/ccvs/CvsLinkedTaskInfoAdapterFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.team.cvs/src/org/eclipse/mylyn/internal/team/ccvs/CvsLinkedTaskInfoAdapterFactory.java,v >retrieving revision 1.10 >diff -u -r1.10 CvsLinkedTaskInfoAdapterFactory.java >--- src/org/eclipse/mylyn/internal/team/ccvs/CvsLinkedTaskInfoAdapterFactory.java 10 Dec 2009 05:46:26 -0000 1.10 >+++ src/org/eclipse/mylyn/internal/team/ccvs/CvsLinkedTaskInfoAdapterFactory.java 26 Mar 2010 19:06:40 -0000 >@@ -17,12 +17,16 @@ > import org.eclipse.mylyn.internal.team.ui.LinkedTaskInfo; > import org.eclipse.mylyn.tasks.core.TaskRepository; > import org.eclipse.mylyn.team.ui.AbstractTaskReference; >+import org.eclipse.mylyn.team.ui.IContextChangeSet; >+import org.eclipse.team.core.history.IFileRevision; > import org.eclipse.team.core.variants.IResourceVariant; > import org.eclipse.team.internal.ccvs.core.CVSException; > import org.eclipse.team.internal.ccvs.core.ICVSResource; > import org.eclipse.team.internal.ccvs.core.client.listeners.LogEntry; >+import org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision; > import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; > import org.eclipse.team.internal.ccvs.core.resources.RemoteResource; >+import org.eclipse.team.internal.core.subscribers.DiffChangeSet; > > /** > * @author Eugene Kuleshov >@@ -50,21 +54,30 @@ > if (comment == null) { > return null; > } >- >+ long timestamp = 0; >+ if (object instanceof CVSFileRevision) { >+ timestamp = ((CVSFileRevision) object).getTimestamp(); >+ } > IResource resource = getResourceForElement(object); > if (resource != null) { > TaskRepository repository = TasksUiPlugin.getDefault().getRepositoryForResource(resource); > if (repository != null) { >- return new LinkedTaskInfo(repository.getRepositoryUrl(), null, null, comment); >+ return new LinkedTaskInfo(repository.getRepositoryUrl(), null, null, comment, timestamp); > } > } > >- return new LinkedTaskInfo(null, null, null, comment); >+ return new LinkedTaskInfo(null, null, null, comment, timestamp); > } > > private static String getCommentForElement(Object element) { >- if (element instanceof LogEntry) { >+ if (element instanceof IContextChangeSet) { >+ return ((IContextChangeSet) element).getComment(false); >+ } else if (element instanceof DiffChangeSet) { >+ return ((DiffChangeSet) element).getComment(); >+ } else if (element instanceof LogEntry) { > return ((LogEntry) element).getComment(); >+ } else if (element instanceof IFileRevision) { >+ return ((IFileRevision) element).getComment(); > } > return null; > } >#P org.eclipse.mylyn.team.ui >Index: src/org/eclipse/mylyn/internal/team/ui/LinkedTaskInfo.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.team.ui/src/org/eclipse/mylyn/internal/team/ui/LinkedTaskInfo.java,v >retrieving revision 1.11 >diff -u -r1.11 LinkedTaskInfo.java >--- src/org/eclipse/mylyn/internal/team/ui/LinkedTaskInfo.java 13 Jan 2009 07:05:27 -0000 1.11 >+++ src/org/eclipse/mylyn/internal/team/ui/LinkedTaskInfo.java 26 Mar 2010 19:06:42 -0000 >@@ -35,6 +35,8 @@ > > private ChangeSet changeSet = null; > >+ private long timestamp = 0; >+ > public LinkedTaskInfo(ITask task, ChangeSet changeSet) { > this.task = task; > this.changeSet = changeSet; >@@ -51,6 +53,14 @@ > this.comment = comment; > } > >+ public LinkedTaskInfo(String repositoryUrl, String taskId, String taskFullUrl, String comment, long timestamp) { >+ this.repositoryUrl = repositoryUrl; >+ this.taskId = taskId; >+ this.taskFullUrl = taskFullUrl; >+ this.comment = comment; >+ this.timestamp = timestamp; >+ } >+ > @Override > public String getRepositoryUrl() { > return repositoryUrl; >@@ -79,4 +89,8 @@ > return changeSet; > } > >+ public long getTimestamp() { >+ return timestamp; >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/team/ui/actions/OpenCorrespondingTaskAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.team.ui/src/org/eclipse/mylyn/internal/team/ui/actions/OpenCorrespondingTaskAction.java,v >retrieving revision 1.62 >diff -u -r1.62 OpenCorrespondingTaskAction.java >--- src/org/eclipse/mylyn/internal/team/ui/actions/OpenCorrespondingTaskAction.java 7 Dec 2008 02:43:28 -0000 1.62 >+++ src/org/eclipse/mylyn/internal/team/ui/actions/OpenCorrespondingTaskAction.java 26 Mar 2010 19:06:42 -0000 >@@ -112,10 +112,14 @@ > */ > private static AbstractTaskReference reconcile(AbstractTaskReference info) { > ITask task; >+ long timestamp; >+ > if (info instanceof LinkedTaskInfo) { > task = ((LinkedTaskInfo) info).getTask(); >+ timestamp = ((LinkedTaskInfo) info).getTimestamp(); > } else { > task = null; >+ timestamp = 0; > } > > if (task != null) { >@@ -212,7 +216,7 @@ > return new LinkedTaskInfo(task, null); > } > >- return new LinkedTaskInfo(repositoryUrl, taskId, taskFullUrl, comment); >+ return new LinkedTaskInfo(repositoryUrl, taskId, taskFullUrl, comment, timestamp); > } > > public static String getUrlFromComment(String comment) { >@@ -284,10 +288,14 @@ > if (info != null) { > info = reconcile(info); > final ITask task; >+ final long timestamp; >+ > if (info instanceof LinkedTaskInfo) { > task = ((LinkedTaskInfo) info).getTask(); >+ timestamp = ((LinkedTaskInfo) info).getTimestamp(); > } else { > task = null; >+ timestamp = 0; > } > if (task != null) { > PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { >@@ -305,7 +313,7 @@ > AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind()); > if (connectorUi != null) { > TasksUiInternal.openRepositoryTask(connectorUi.getConnectorKind(), >- repository.getRepositoryUrl(), taskId); >+ repository.getRepositoryUrl(), taskId, timestamp); > return Status.OK_STATUS; > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
eclipse
:
review?
Actions:
View
|
Diff
Attachments on
bug 178474
:
153117
|
153118
|
161181
| 163114 |
163115
|
168854
|
168855