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 168854 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
[patch]
commited patch
178474.txt (text/plain), 17.49 KB, created by
Frank Becker
on 2010-05-17 23:41:14 EDT
(
hide
)
Description:
commited patch
Filename:
MIME Type:
Creator:
Frank Becker
Created:
2010-05-17 23:41:14 EDT
Size:
17.49 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.search >Index: src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.search/src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java,v >retrieving revision 1.1 >diff -u -r1.1 OpenSearchResultAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java 26 Feb 2010 20:59:36 -0000 1.1 >+++ src/org/eclipse/mylyn/internal/tasks/ui/search/OpenSearchResultAction.java 18 May 2010 03:39:57 -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); > } > > } >#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 18 May 2010 03:39:58 -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; > } > > /** >@@ -79,7 +86,9 @@ > if (repository == null) { > PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { > public void run() { >- MessageDialog.openError(null, Messages.OpenRepositoryTaskJob_Repository_Not_Found, >+ MessageDialog.openError( >+ null, >+ Messages.OpenRepositoryTaskJob_Repository_Not_Found, > MessageFormat.format( > Messages.OpenRepositoryTaskJob_Could_not_find_repository_configuration_for_X, > repositoryUrl) >@@ -95,7 +104,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 +114,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/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.111 >diff -u -r1.111 TasksUiInternal.java >--- src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java 15 May 2010 20:13:08 -0000 1.111 >+++ src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java 18 May 2010 03:39:58 -0000 >@@ -958,6 +958,17 @@ > */ > public static boolean openRepositoryTask(String connectorKind, String repositoryUrl, String id, > TaskOpenListener listener) { >+ return openRepositoryTask(connectorKind, repositoryUrl, id, listener, 0); >+ } >+ >+ /** >+ * Only override if task should be opened by a custom editor, default behavior is to open with a rich editor, >+ * falling back to the web browser if not available. >+ * >+ * @return true if the task was successfully opened >+ */ >+ public static boolean openRepositoryTask(String connectorKind, String repositoryUrl, String id, >+ TaskOpenListener listener, long timestamp) { > IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); > AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(connectorKind); > String taskUrl = connector.getTaskUrl(repositoryUrl, id); >@@ -977,7 +988,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 18 May 2010 03:39:58 -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, null, 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.157 >diff -u -r1.157 TasksUiUtil.java >--- src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java 6 May 2010 21:12:29 -0000 1.157 >+++ src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java 18 May 2010 03:39:58 -0000 >@@ -258,11 +258,11 @@ > /** > * Either pass in a repository and taskId, or fullUrl, or all of them > * >- * @deprecated Use {@link #openTask(String,String,String)} instead >+ * @deprecated Use {@link #openTask(String,String,String,long)} instead > */ > @Deprecated > public static boolean openRepositoryTask(String repositoryUrl, String taskId, String fullUrl) { >- return openTask(repositoryUrl, taskId, fullUrl); >+ return openTask(repositoryUrl, taskId, fullUrl, 0); > } > > /** >@@ -318,8 +318,20 @@ > * Either pass in a repository and taskId, or fullUrl, or all of them > * > * @since 3.0 >+ * @deprecated Use {@link #openTask(String,String,String,long)} instead > */ >+ @Deprecated > public static boolean openTask(String repositoryUrl, String taskId, String fullUrl) { >+ return openTask(repositoryUrl, taskId, fullUrl, 0); >+ } >+ >+ /** >+ * Either pass in a repository and taskId, or fullUrl, or all of them the timestamp is used for seleting the correct >+ * comment >+ * >+ * @since 3.4 >+ */ >+ public static boolean openTask(String repositoryUrl, String taskId, String fullUrl, long timestamp) { > AbstractTask task = TasksUiInternal.getTask(repositoryUrl, taskId, fullUrl); > > if (task != null) { >@@ -332,12 +344,14 @@ > fullUrl); > if (connector != null) { > if (repositoryUrl != null && taskId != null) { >- opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId); >+ opened = TasksUiInternal.openRepositoryTask(connector.getConnectorKind(), repositoryUrl, taskId, null, >+ 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, >+ null, 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 18 May 2010 03:39:59 -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 18 May 2010 03:39:59 -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 >@@ -51,11 +55,16 @@ > 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); > } > } > >@@ -63,8 +72,14 @@ > } > > 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 18 May 2010 03:40:00 -0000 >@@ -35,11 +35,27 @@ > > private ChangeSet changeSet = null; > >+ private long timestamp = 0; >+ >+ 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; >+ } >+ > public LinkedTaskInfo(ITask task, ChangeSet changeSet) { > this.task = task; > this.changeSet = changeSet; > } > >+ public LinkedTaskInfo(ITask task, ChangeSet changeSet, long timestamp) { >+ this.task = task; >+ this.changeSet = changeSet; >+ this.timestamp = timestamp; >+ } >+ > public LinkedTaskInfo(String taskFullUrl) { > this.taskFullUrl = taskFullUrl; > } >@@ -79,4 +95,7 @@ > 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 18 May 2010 03:40:00 -0000 >@@ -50,9 +50,7 @@ > import org.eclipse.ui.internal.ObjectPluginAction; > > /** >- * Action used to open linked task. >- * >- * TODO: this class has evolved into a complete mess and has to be fixed. >+ * Action used to open linked task. TODO: this class has evolved into a complete mess and has to be fixed. > * > * @author Mik Kersten > * @author Eugene Kuleshov >@@ -106,16 +104,19 @@ > } > > /** >- * Reconcile <code>ILinkedTaskInfo</code> data. >- * >- * This is used in order to keep LinkedTaskInfo lightweight with minimal dependencies. >+ * Reconcile <code>ILinkedTaskInfo</code> data. This is used in order to keep LinkedTaskInfo lightweight with >+ * minimal dependencies. > */ > 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) { >@@ -208,11 +209,8 @@ > } > } > } >- if (task != null) { >- 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 +282,13 @@ > 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 +306,7 @@ > AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(repository.getConnectorKind()); > if (connectorUi != null) { > TasksUiInternal.openRepositoryTask(connectorUi.getConnectorKind(), >- repository.getRepositoryUrl(), taskId); >+ repository.getRepositoryUrl(), taskId, null, 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
Actions:
View
|
Diff
Attachments on
bug 178474
:
153117
|
153118
|
161181
|
163114
|
163115
| 168854 |
168855