diff options
author | james | 2002-06-19 21:06:25 +0000 |
---|---|---|
committer | james | 2002-06-19 21:06:25 +0000 |
commit | 9f855a3a159526b15fd02a666561d9ce5df5e54e (patch) | |
tree | 20ea2e9b7f9869d2200ee8043ca571dcfd5339bb | |
parent | a498abee4946b1edd7fc089b7e4b2166b6b0eb11 (diff) | |
download | eclipse.platform.team-9f855a3a159526b15fd02a666561d9ce5df5e54e.tar.gz eclipse.platform.team-9f855a3a159526b15fd02a666561d9ce5df5e54e.tar.xz eclipse.platform.team-9f855a3a159526b15fd02a666561d9ce5df5e54e.zip |
20547: Opening from resource history doesn't use the right editorI20020620
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java index 97bfff122..67d0619ed 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/OpenLogEntryAction.java @@ -24,6 +24,9 @@ import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; import org.eclipse.team.internal.ccvs.ui.Policy; import org.eclipse.team.internal.ccvs.ui.RemoteFileEditorInput; import org.eclipse.team.internal.ui.actions.TeamAction; +import org.eclipse.ui.IEditorDescriptor; +import org.eclipse.ui.IEditorRegistry; +import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; @@ -65,17 +68,28 @@ public class OpenLogEntryAction extends TeamAction { public void run(IAction action) { run(new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException { - IWorkbenchPage page = CVSUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getActivePage(); + IWorkbench workbench = CVSUIPlugin.getPlugin().getWorkbench(); + IEditorRegistry registry = workbench.getEditorRegistry(); + IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage(); final ILogEntry[] entries = getSelectedLogEntries(); for (int i = 0; i < entries.length; i++) { - try { - if (entries[i].isDeletion()) { - MessageDialog.openError(getShell(), Policy.bind("OpenLogEntryAction.deletedTitle"), Policy.bind("OpenLogEntryAction.deleted")); //$NON-NLS-1$ //$NON-NLS-2$ + if (entries[i].isDeletion()) { + MessageDialog.openError(getShell(), Policy.bind("OpenLogEntryAction.deletedTitle"), Policy.bind("OpenLogEntryAction.deleted")); //$NON-NLS-1$ //$NON-NLS-2$ + } else { + ICVSRemoteFile file = entries[i].getRemoteFile(); + String filename = file.getName(); + IEditorDescriptor descriptor = registry.getDefaultEditor(filename); + String id; + if (descriptor == null) { + id = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$ } else { - page.openEditor(new RemoteFileEditorInput(entries[i].getRemoteFile()), "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$ + id = descriptor.getId(); + } + try { + page.openEditor(new RemoteFileEditorInput(file), id); + } catch (PartInitException e) { + throw new InvocationTargetException(e); } - } catch (PartInitException e) { - throw new InvocationTargetException(e); } } } |