diff options
author | Dani Megert | 2012-01-16 17:01:15 +0000 |
---|---|---|
committer | Dani Megert | 2012-01-17 16:08:09 +0000 |
commit | 465ec762a55e70fb743d4334d0150ed487c68cda (patch) | |
tree | e74ef25432f9cf0e0b4ea703bc13e49ca65d3bac | |
parent | 45e2a2fe42c326895aaa0a4323b9650225fa7863 (diff) | |
download | eclipse.platform.team-20120117-1608.tar.gz eclipse.platform.team-20120117-1608.tar.xz eclipse.platform.team-20120117-1608.zip |
Fixed bug 251776: [Content Type] Need a better way to arbitrate contentv20120117-1608
types and/or editor associations
-rw-r--r-- | bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java | 23 | ||||
-rw-r--r-- | bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/OpenWithMenu.java | 8 |
2 files changed, 20 insertions, 11 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java index a5f2affc6..dd7df1675 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -1132,21 +1132,28 @@ public class Utils { } public static IEditorDescriptor[] getEditors(IFileRevision revision) { + String name= revision.getName(); IEditorRegistry registry = PlatformUI.getWorkbench() .getEditorRegistry(); // so far only the revision name is used to find editors - return registry.getEditors(revision.getName()/*, getContentType(revision) */); + IEditorDescriptor[] editorDescs= registry.getEditors(name/* , getContentType(revision) */); + return IDE.overrideEditorAssociations(name, null, editorDescs); } public static IEditorDescriptor getDefaultEditor(IFileRevision revision) { + String name= revision.getName(); // so far only the revision name is used to find the default editor - IEditorRegistry registry = PlatformUI.getWorkbench() - .getEditorRegistry(); - return registry.getDefaultEditor(revision.getName()/*, getContentType(revision) */); + try { + return IDE.getEditorDescriptor(name); + } catch (PartInitException e) { + // Fallback to old way of getting the editor + IEditorRegistry registry= PlatformUI.getWorkbench().getEditorRegistry(); + return registry.getDefaultEditor(name); + } } private static String getEditorId(FileRevisionEditorInput editorInput) { - String id = getEditorId(editorInput.getFileRevision().getName(), getContentType(editorInput)); + String id= getEditorId(editorInput, getContentType(editorInput)); return id; } @@ -1184,9 +1191,11 @@ public class Utils { return type; } - private static String getEditorId(String fileName, IContentType type) { + private static String getEditorId(FileRevisionEditorInput editorInput, IContentType type) { + String fileName= editorInput.getFileRevision().getName(); IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor descriptor = registry.getDefaultEditor(fileName, type); + IDE.overrideDefaultEditorAssociation(editorInput, type, descriptor); String id; if (descriptor == null || descriptor.isOpenExternal()) { id = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$ diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/OpenWithMenu.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/OpenWithMenu.java index 948f5bd38..c9c93340e 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/OpenWithMenu.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/OpenWithMenu.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 IBM Corporation and others. + * Copyright (c) 2008, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -297,15 +297,15 @@ public class OpenWithMenu extends ContributionItem { job.setSystem(true); job.schedule();*/ - createDefaultMenuItem(menu, fileRevision); + createDefaultMenuItem(menu, fileRevision, preferredEditor == null); // add Other... menu item createOtherMenuItem(menu); } - public void createDefaultMenuItem(Menu menu, final IFileRevision revision) { + public void createDefaultMenuItem(Menu menu, final IFileRevision revision, boolean markAsSelected) { final MenuItem menuItem = new MenuItem(menu, SWT.RADIO); - menuItem.setSelection(Utils.getDefaultEditor(revision) == null); + menuItem.setSelection(markAsSelected); menuItem .setText(TeamUIMessages.LocalHistoryPage_OpenWithMenu_DefaultEditorDescription); |