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 158401 Details for
Bug 298364
task hyperlink duplicates the platform's URL hyperlink
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]
updated patch
clipboard.txt (text/plain), 12.08 KB, created by
Steffen Pingel
on 2010-02-07 19:37:45 EST
(
hide
)
Description:
updated patch
Filename:
MIME Type:
Creator:
Steffen Pingel
Created:
2010-02-07 19:37:45 EST
Size:
12.08 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.tests >Index: src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java,v >retrieving revision 1.4 >diff -u -r1.4 TaskUrlHyperlinkDetectorTest.java >--- src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java 8 Dec 2009 04:27:11 -0000 1.4 >+++ src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskUrlHyperlinkDetectorTest.java 8 Feb 2010 00:37:17 -0000 >@@ -14,14 +14,20 @@ > > import junit.framework.TestCase; > >+import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jface.text.Document; > import org.eclipse.jface.text.IDocument; > import org.eclipse.jface.text.Region; > import org.eclipse.jface.text.TextViewer; > import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector; > import org.eclipse.jface.text.hyperlink.IHyperlink; >+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; > import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlink; > import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlinkDetector; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.tests.TaskTestUtil; >+import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; >+import org.eclipse.mylyn.tasks.ui.TasksUi; > > /** > * @author Steffen Pingel >@@ -29,8 +35,21 @@ > */ > public class TaskUrlHyperlinkDetectorTest extends TestCase { > >+ private TaskRepository repository; >+ >+ @Override >+ protected void setUp() throws Exception { >+ repository = TaskTestUtil.createMockRepository(); >+ } >+ > protected IHyperlink[] detect(final String text, int start, int length) { > AbstractHyperlinkDetector detector = new TaskUrlHyperlinkDetector(); >+ detector.setContext(new IAdaptable() { >+ @SuppressWarnings("rawtypes") >+ public Object getAdapter(Class adapter) { >+ return repository; >+ } >+ }); > return detector.detectHyperlinks(new TextViewer() { > @Override > public IDocument getDocument() { >@@ -123,4 +142,52 @@ > assertEquals(new Region(0, 22), hyperlinks[0].getHyperlinkRegion()); > } > >+ public void testDetectionNoRepositoryRegularUrl() { >+ repository = null; >+ IHyperlink[] hyperlinks = detect("aa http://www.eclipse.org test", 4, 0); >+ assertNull(hyperlinks); >+ } >+ >+ /** >+ * Tests hyperlink detector in mode outside of task editor. >+ */ >+ public void testDetectionNoRepositoryRepositoryUrl() { >+ repository = null; >+ TaskRepository repository1 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, >+ "http://repo1.test/foo"); >+ try { >+ TasksUi.getRepositoryManager().addRepository(repository1); >+ >+ String text = "aa http://repo1.test/foo http://www.eclipse.org test"; >+ IHyperlink[] hyperlinks = detect(text, 0, text.length()); >+ assertNotNull(hyperlinks); >+ assertEquals(1, hyperlinks.length); >+ assertEquals(new Region(3, 21), hyperlinks[0].getHyperlinkRegion()); >+ } finally { >+ TasksUiPlugin.getRepositoryManager().removeRepository(repository1); >+ } >+ } >+ >+ /** >+ * Tests hyperlink detector in mode outside of task editor with multiple task URLs. >+ */ >+ public void testDetectionNoRepositoryMultipleRepositoryUrls() { >+ repository = null; >+ TaskRepository repository1 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, >+ "http://repo1.test/foo"); >+ TaskRepository repository2 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://repo2.test"); >+ try { >+ TasksUi.getRepositoryManager().addRepository(repository1); >+ TasksUi.getRepositoryManager().addRepository(repository2); >+ >+ String text = "aa http://repo2.test http://repo1.test/foo http://repo1.test/bar http://www.eclipse.org test"; >+ IHyperlink[] hyperlinks = detect(text, 0, text.length()); >+ assertNotNull(hyperlinks); >+ assertEquals(2, hyperlinks.length); >+ } finally { >+ TasksUiPlugin.getRepositoryManager().removeRepository(repository1); >+ TasksUiPlugin.getRepositoryManager().removeRepository(repository2); >+ } >+ } >+ > } >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java,v >retrieving revision 1.52 >diff -u -r1.52 CopyTaskDetailsAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java 12 Dec 2009 00:24:44 -0000 1.52 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java 8 Feb 2010 00:37:19 -0000 >@@ -29,7 +29,7 @@ > public static final String ID = "org.eclipse.mylyn.tasklist.actions.copy"; //$NON-NLS-1$ > > public enum Mode { >- KEY, URL, SUMMARY_URL >+ KEY, URL, SUMMARY, SUMMARY_URL > } > > private Mode mode; >@@ -53,6 +53,9 @@ > case URL: > setText(Messages.CopyTaskDetailsAction_Url_Menu_Label); > break; >+ case SUMMARY: >+ setText("Summary"); >+ break; > case SUMMARY_URL: > setText(Messages.CopyTaskDetailsAction_Summary_and_Url_Menu_Label); > break; >@@ -92,6 +95,20 @@ > } > } > break; >+ case SUMMARY: >+ if (object instanceof ITask) { >+ ITask task = (ITask) object; >+ if (task.getTaskKey() != null) { >+ sb.append(TasksUiInternal.getTaskPrefix(task.getConnectorKind())); >+ sb.append(task.getTaskKey()); >+ sb.append(": "); //$NON-NLS-1$ >+ } >+ sb.append(task.getSummary()); >+ } else if (object instanceof IRepositoryElement) { >+ IRepositoryElement element = (IRepositoryElement) object; >+ sb.append(element.getSummary()); >+ } >+ break; > case SUMMARY_URL: > if (object instanceof ITask) { > ITask task = (ITask) object; >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java,v >retrieving revision 1.26 >diff -u -r1.26 Messages.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java 14 Oct 2009 02:54:48 -0000 1.26 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/Messages.java 8 Feb 2010 00:37:19 -0000 >@@ -262,4 +262,6 @@ > public static String TaskEditorExtensionSettingsContribution_Plain_Text; > > public static String TaskEditorExtensionSettingsContribution_Select_the_capabilities_of_the_task_editor; >+ >+ public static String TaskUrlHyperlink_Open_URL_in_Task_Editor; > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java,v >retrieving revision 1.6 >diff -u -r1.6 TaskUrlHyperlink.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java 13 Jan 2009 07:07:35 -0000 1.6 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlink.java 8 Feb 2010 00:37:19 -0000 >@@ -14,14 +14,22 @@ > import org.eclipse.jface.text.IRegion; > import org.eclipse.jface.text.hyperlink.URLHyperlink; > import org.eclipse.mylyn.tasks.ui.TasksUiUtil; >+import org.eclipse.osgi.util.NLS; > > /** > * @author Rob Elves > */ > public class TaskUrlHyperlink extends URLHyperlink { > >- public TaskUrlHyperlink(IRegion region, String urlString) { >+ private final String hyperlinkText; >+ >+ public TaskUrlHyperlink(IRegion region, String urlString, String hyperlinkText) { > super(region, urlString); >+ this.hyperlinkText = hyperlinkText; >+ } >+ >+ public TaskUrlHyperlink(IRegion region, String urlString) { >+ this(region, urlString, null); > } > > @Override >@@ -29,4 +37,12 @@ > TasksUiUtil.openTask(getURLString()); > } > >+ @Override >+ public String getHyperlinkText() { >+ if (hyperlinkText != null) { >+ return hyperlinkText; >+ } >+ return NLS.bind(Messages.TaskUrlHyperlink_Open_URL_in_Task_Editor, getURLString()); >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java,v >retrieving revision 1.11 >diff -u -r1.11 TaskUrlHyperlinkDetector.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java 8 Dec 2009 04:27:12 -0000 1.11 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskUrlHyperlinkDetector.java 8 Feb 2010 00:37:19 -0000 >@@ -23,6 +23,8 @@ > import org.eclipse.jface.text.ITextViewer; > import org.eclipse.jface.text.Region; > import org.eclipse.jface.text.hyperlink.IHyperlink; >+import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >+import org.eclipse.mylyn.tasks.core.TaskRepository; > import org.eclipse.mylyn.tasks.ui.AbstractTaskHyperlinkDetector; > > /** >@@ -37,6 +39,9 @@ > // so we do the same here > private static final Pattern URL_PATTERN = Pattern.compile("([a-zA-Z][a-zA-Z+.-]{0,10}://[a-zA-Z0-9%._~!$&?#'()*+,;:@/=-]*[a-zA-Z0-9%_~!$&?#'(*+;:@/=-])"); //$NON-NLS-1$ > >+ public TaskUrlHyperlinkDetector() { >+ } >+ > @Override > protected List<IHyperlink> detectHyperlinks(ITextViewer textViewer, String content, int indexInContent, > int contentOffset) { >@@ -44,16 +49,27 @@ > Matcher m = URL_PATTERN.matcher(content); > while (m.find()) { > if (isInRegion(indexInContent, m)) { >- try { >- String urlString = m.group(1); >- new URL(urlString); >+ String urlString = m.group(1); >+ TaskUrlHyperlink link = null; >+ if (getAdapter(TaskRepository.class) != null) { >+ try { >+ new URL(urlString); >+ link = new TaskUrlHyperlink(determineRegion(contentOffset, m), urlString); >+ } catch (MalformedURLException e) { >+ // ignore >+ } >+ >+ } else { >+ if (TasksUiInternal.isTaskUrl(urlString)) { >+ link = new TaskUrlHyperlink(determineRegion(contentOffset, m), urlString); >+ } >+ } > >+ if (link != null) { > if (links == null) { > links = new ArrayList<IHyperlink>(); > } >- links.add(new TaskUrlHyperlink(determineRegion(contentOffset, m), urlString)); >- } catch (MalformedURLException e) { >- // ignore >+ links.add(link); > } > } > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties,v >retrieving revision 1.34 >diff -u -r1.34 messages.properties >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties 14 Oct 2009 07:17:11 -0000 1.34 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/messages.properties 8 Feb 2010 00:37:19 -0000 >@@ -148,3 +148,4 @@ > TaskEditorExtensionSettingsContribution_Editor=Task Editor Settings > TaskEditorExtensionSettingsContribution_Plain_Text=Plain Text > TaskEditorExtensionSettingsContribution_Select_the_capabilities_of_the_task_editor=Select the capabilities of the task editor >+TaskUrlHyperlink_Open_URL_in_Task_Editor=Open ''{0}'' in Task Editor >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.104 >diff -u -r1.104 TasksUiInternal.java >--- src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java 8 Dec 2009 03:47:39 -0000 1.104 >+++ src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java 8 Feb 2010 00:37:19 -0000 >@@ -1029,6 +1029,17 @@ > return null; > } > >+ public static boolean isTaskUrl(String taskUrl) { >+ Assert.isNotNull(taskUrl); >+ List<TaskRepository> repositories = TasksUiPlugin.getRepositoryManager().getAllRepositories(); >+ for (TaskRepository repository : repositories) { >+ if (taskUrl.startsWith(repository.getUrl())) { >+ return true; >+ } >+ } >+ return false; >+ } >+ > /** > * Cleans text for use as the text of an action to ensure that it is displayed properly. > *
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 298364
:
154908
|
157424
|
157425
|
157426
| 158401