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 157931 Details for
Bug 296963
[api] allow different URL's for opening task in browser and copying task details
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
getAuthenticatedUrl implementation
mylynPatch.txt (text/plain), 10.88 KB, created by
Steve Elsemore
on 2010-02-02 12:38:34 EST
(
hide
)
Description:
getAuthenticatedUrl implementation
Filename:
MIME Type:
Creator:
Steve Elsemore
Created:
2010-02-02 12:38:34 EST
Size:
10.88 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.core >Index: src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java,v >retrieving revision 1.116 >diff -u -r1.116 AbstractRepositoryConnector.java >--- src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java 25 Sep 2009 20:43:46 -0000 1.116 >+++ src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java 2 Feb 2010 17:26:27 -0000 >@@ -11,6 +11,7 @@ > > package org.eclipse.mylyn.tasks.core; > >+import java.net.URL; > import java.util.Collection; > import java.util.Date; > >@@ -180,6 +181,10 @@ > */ > public abstract String getTaskUrl(String repositoryUrl, String taskId); > >+ public URL getAuthenticatedUrl(TaskRepository taskRepository, IRepositoryElement element) { >+ return null; >+ } >+ > /** > * @since 3.0 > */ >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java,v >retrieving revision 1.30 >diff -u -r1.30 OpenWithBrowserAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java 10 Dec 2009 05:46:09 -0000 1.30 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java 2 Feb 2010 17:26:28 -0000 >@@ -11,13 +11,19 @@ > > package org.eclipse.mylyn.internal.tasks.ui.actions; > >+import java.net.URL; > import java.util.Iterator; > > import org.eclipse.jface.viewers.IStructuredSelection; > import org.eclipse.mylyn.internal.tasks.core.AbstractTask; >+import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylyn.tasks.core.IRepositoryElement; >+import org.eclipse.mylyn.tasks.core.IRepositoryManager; > import org.eclipse.mylyn.tasks.core.ITask; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.TasksUi; > import org.eclipse.mylyn.tasks.ui.TasksUiUtil; > import org.eclipse.ui.actions.BaseSelectionListenerAction; > >@@ -46,14 +52,38 @@ > > private void runWithSelection(Object selectedObject) { > String urlString = null; >- if (selectedObject instanceof ITask) { >- AbstractTask task = (AbstractTask) selectedObject; >- if (TasksUiInternal.isValidUrl(task.getUrl())) { >- urlString = task.getUrl(); >+ if (selectedObject instanceof IRepositoryElement) { >+ IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); >+ if (selectedObject instanceof ITask) { >+ AbstractTask task = (AbstractTask) selectedObject; >+ TaskRepository repository = repositoryManager.getRepository(task.getConnectorKind(), >+ task.getRepositoryUrl()); >+ AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repository.getConnectorKind()); >+ String taskUrl; >+ URL url = connector.getAuthenticatedUrl(repository, task); >+ if (url == null) { >+ taskUrl = task.getUrl(); >+ } else { >+ taskUrl = url.toString(); >+ } >+ if (TasksUiInternal.isValidUrl(taskUrl)) { >+ urlString = taskUrl; >+ } >+ } else if (selectedObject instanceof RepositoryQuery) { >+ RepositoryQuery query = (RepositoryQuery) selectedObject; >+ TaskRepository repository = repositoryManager.getRepository(query.getConnectorKind(), >+ query.getRepositoryUrl()); >+ AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repository.getConnectorKind()); >+ URL url = connector.getAuthenticatedUrl(repository, query); >+ if (url == null) { >+ urlString = query.getUrl(); >+ } else { >+ urlString = url.toString(); >+ } >+ } else { >+ IRepositoryElement element = (IRepositoryElement) selectedObject; >+ urlString = element.getUrl(); > } >- } else if (selectedObject instanceof IRepositoryElement) { >- IRepositoryElement query = (IRepositoryElement) selectedObject; >- urlString = query.getUrl(); > } > > if (urlString != null) { >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java,v >retrieving revision 1.24 >diff -u -r1.24 OpenTaskAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java 24 Jul 2009 12:05:46 -0000 1.24 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java 2 Feb 2010 17:26:27 -0000 >@@ -11,11 +11,17 @@ > > package org.eclipse.mylyn.internal.tasks.ui.actions; > >+import java.net.URL; >+ > import org.eclipse.jface.action.IAction; > import org.eclipse.jface.window.Window; > import org.eclipse.mylyn.internal.tasks.core.AbstractTask; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; >+import org.eclipse.mylyn.tasks.core.IRepositoryManager; > import org.eclipse.mylyn.tasks.core.ITask; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.TasksUi; > import org.eclipse.mylyn.tasks.ui.TasksUiUtil; > import org.eclipse.ui.IWorkbenchWindow; > import org.eclipse.ui.IWorkbenchWindowActionDelegate; >@@ -47,8 +53,19 @@ > if (result instanceof ITask) { > AbstractTask task = (AbstractTask) result; > if (dlg.getOpenInBrowser()) { >- if (TasksUiInternal.isValidUrl(task.getUrl())) { >- TasksUiUtil.openUrl(task.getUrl()); >+ IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); >+ TaskRepository repository = repositoryManager.getRepository(task.getConnectorKind(), >+ task.getRepositoryUrl()); >+ AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repository.getConnectorKind()); >+ String taskUrl; >+ URL url = connector.getAuthenticatedUrl(repository, task); >+ if (url == null) { >+ taskUrl = task.getUrl(); >+ } else { >+ taskUrl = url.toString(); >+ } >+ if (TasksUiInternal.isValidUrl(taskUrl)) { >+ TasksUiUtil.openUrl(taskUrl); > } > } else { > TasksUiInternal.refreshAndOpenTaskListElement(task); >Index: src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java,v >retrieving revision 1.188 >diff -u -r1.188 TaskEditor.java >--- src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java 10 Dec 2009 05:46:09 -0000 1.188 >+++ src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java 2 Feb 2010 17:26:28 -0000 >@@ -13,6 +13,7 @@ > package org.eclipse.mylyn.tasks.ui.editors; > > import java.lang.reflect.Field; >+import java.net.URL; > import java.util.ArrayList; > import java.util.Arrays; > import java.util.Collections; >@@ -64,9 +65,12 @@ > import org.eclipse.mylyn.internal.tasks.ui.util.PlatformUtil; > import org.eclipse.mylyn.internal.tasks.ui.util.TaskDragSourceListener; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; >+import org.eclipse.mylyn.tasks.core.IRepositoryManager; > import org.eclipse.mylyn.tasks.core.ITask; > import org.eclipse.mylyn.tasks.core.TaskRepository; > import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; >+import org.eclipse.mylyn.tasks.ui.TasksUi; > import org.eclipse.mylyn.tasks.ui.TasksUiImages; > import org.eclipse.mylyn.tasks.ui.TasksUiUtil; > import org.eclipse.swt.SWT; >@@ -921,7 +925,17 @@ > toolBarManager.add(new GroupMarker("open")); //$NON-NLS-1$ > toolBarManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); > >- final String taskUrl = task.getUrl(); >+ IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); >+ AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(task.getConnectorKind()); >+ URL url = connector.getAuthenticatedUrl(repositoryManager.getRepository(task.getConnectorKind(), >+ task.getRepositoryUrl()), task); >+ String urlString; >+ if (url == null) { >+ urlString = task.getUrl(); >+ } else { >+ urlString = url.toString(); >+ } >+ final String taskUrl = urlString; > if (taskUrl != null && taskUrl.length() > 0) { > Action openWithBrowserAction = new Action() { > @Override >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.153 >diff -u -r1.153 TasksUiUtil.java >--- src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java 8 Oct 2009 01:04:14 -0000 1.153 >+++ src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java 2 Feb 2010 17:26:28 -0000 >@@ -11,6 +11,8 @@ > > package org.eclipse.mylyn.tasks.ui; > >+import java.net.URL; >+ > import org.eclipse.core.resources.IResource; > import org.eclipse.core.runtime.Assert; > import org.eclipse.core.runtime.IAdaptable; >@@ -36,6 +38,8 @@ > import org.eclipse.mylyn.internal.tasks.ui.wizards.MultiRepositoryAwareWizard; > import org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; >+import org.eclipse.mylyn.tasks.core.IRepositoryElement; >+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.ITaskMapping; >@@ -297,7 +301,10 @@ > boolean openWithBrowser = !TasksUiPlugin.getDefault().getPreferenceStore().getBoolean( > ITasksUiPreferenceConstants.EDITOR_TASKS_RICH); > if (openWithBrowser) { >- openUrl(task.getUrl()); >+ IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); >+ TaskRepository repository = repositoryManager.getRepository(task.getConnectorKind(), >+ task.getRepositoryUrl()); >+ openUrl(repository, task); > return true; > } else { > TaskRepository taskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(), >@@ -420,6 +427,19 @@ > WorkbenchUtil.openUrl(location, FLAG_NO_RICH_EDITOR); > } > >+ public static void openUrl(TaskRepository repository, IRepositoryElement element) { >+ IRepositoryManager repositoryManager = TasksUi.getRepositoryManager(); >+ AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repository.getConnectorKind()); >+ String openUrl = null; >+ URL authenticatedUrl = connector.getAuthenticatedUrl(repository, element); >+ if (authenticatedUrl == null) { >+ openUrl = element.getUrl(); >+ } else { >+ openUrl = authenticatedUrl.toString(); >+ } >+ openUrl(openUrl); >+ } >+ > /** > * If task is already open and has incoming, must force refresh in place > */
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 296963
: 157931