Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjames2002-06-19 21:06:25 +0000
committerjames2002-06-19 21:06:25 +0000
commit9f855a3a159526b15fd02a666561d9ce5df5e54e (patch)
tree20ea2e9b7f9869d2200ee8043ca571dcfd5339bb
parenta498abee4946b1edd7fc089b7e4b2166b6b0eb11 (diff)
downloadeclipse.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.java28
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);
}
}
}

Back to the top