From 936dec35174222ecac199460f07657d4b5caed11 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Tue, 25 Jun 2019 15:19:53 -0400 Subject: Remove workaround for private methods in IDE Now that Bug 516470 is resolved, we don't need the workaround in CDT anymore. Change-Id: I3e8b0f0ce7fc272a81d6b7437ce7a8d588e91991 --- .../org.eclipse.cdt.debug.ui/META-INF/MANIFEST.MF | 4 +- .../debug/internal/ui/CDebugModelPresentation.java | 2 +- .../cdt/debug/internal/ui/CDebugUIUtils.java | 150 --------------------- dsf/org.eclipse.cdt.dsf.ui/META-INF/MANIFEST.MF | 4 +- .../ui/sourcelookup/DsfSourceDisplayAdapter.java | 3 +- 5 files changed, 6 insertions(+), 157 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.ui/META-INF/MANIFEST.MF b/debug/org.eclipse.cdt.debug.ui/META-INF/MANIFEST.MF index 794cf9ae125..d142f46b72a 100644 --- a/debug/org.eclipse.cdt.debug.ui/META-INF/MANIFEST.MF +++ b/debug/org.eclipse.cdt.debug.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.debug.ui; singleton:=true -Bundle-Version: 8.3.100.qualifier +Bundle-Version: 8.3.200.qualifier Bundle-Activator: org.eclipse.cdt.debug.ui.CDebugUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -41,7 +41,7 @@ Export-Package: org.eclipse.cdt.debug.internal.ui;x-friends:="org.eclipse.cdt.ds org.eclipse.cdt.debug.ui.preferences, org.eclipse.cdt.debug.ui.provisional;x-internal:=true, org.eclipse.cdt.debug.ui.sourcelookup -Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.13.0,4.0.0)", +Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.16.0,4.0.0)", org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)", org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,4.0.0)", org.eclipse.ui.editors;bundle-version="[3.2.0,4.0.0)", diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java index 5777b4fa77e..50f266f578a 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugModelPresentation.java @@ -235,7 +235,7 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode URI uri = uriEditorInput.getURI(); try { IFileStore fileStore = EFS.getStore(uri); - id = CDebugUIUtils.getEditorId(fileStore, false); + id = IDE.getEditorDescriptorForFileStore(fileStore, false).getId(); } catch (CoreException e) { // fallback to default case } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugUIUtils.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugUIUtils.java index 73502f46f39..6feaf454d8b 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugUIUtils.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugUIUtils.java @@ -14,8 +14,6 @@ *******************************************************************************/ package org.eclipse.cdt.debug.internal.ui; -import java.io.IOException; -import java.io.InputStream; import java.net.URI; import java.util.Iterator; @@ -27,8 +25,6 @@ import org.eclipse.cdt.debug.core.model.ICValue; import org.eclipse.cdt.debug.core.model.IEnableDisableTarget; import org.eclipse.cdt.debug.ui.CDebugUIPlugin; import org.eclipse.cdt.debug.ui.breakpoints.CBreakpointPropertyDialogAction; -import org.eclipse.core.filesystem.EFS; -import org.eclipse.core.filesystem.IFileStore; import org.eclipse.core.filesystem.URIUtil; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; @@ -36,9 +32,7 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.content.IContentType; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.model.IBreakpoint; @@ -62,23 +56,12 @@ import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorRegistry; import org.eclipse.ui.IFileEditorInput; import org.eclipse.ui.IPathEditorInput; import org.eclipse.ui.IStorageEditorInput; import org.eclipse.ui.IURIEditorInput; import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.ide.FileStoreEditorInput; -import org.eclipse.ui.ide.IDE; -import org.eclipse.ui.ide.IUnassociatedEditorStrategy; -import org.eclipse.ui.internal.ide.IDEWorkbenchMessages; -import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; -import org.eclipse.ui.internal.ide.registry.SystemEditorOrTextEditorStrategy; -import org.eclipse.ui.internal.ide.registry.UnassociatedEditorStrategyRegistry; import org.eclipse.ui.progress.UIJob; import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.texteditor.SimpleMarkerAnnotation; @@ -376,137 +359,4 @@ public class CDebugUIUtils { // this should actually all be delegated to KeyStroke class return KeyStroke.getInstance(modifierKeys, KeyStroke.NO_KEY).format() + keyOrClick; } - - /** - * Returns an editor id appropriate for opening the given file - * store. - *

- * The editor descriptor is determined using a multi-step process. This - * method will attempt to resolve the editor based on content-type bindings - * as well as traditional name/extension bindings. - *

- *
    - *
  1. The workbench editor registry is consulted to determine if an editor - * extension has been registered for the file type. If so, an instance of - * the editor extension is opened on the file. See - * IEditorRegistry.getDefaultEditor(String).
  2. - *
  3. The operating system is consulted to determine if an in-place - * component editor is available (e.g. OLE editor on Win32 platforms).
  4. - *
  5. The operating system is consulted to determine if an external editor - * is available.
  6. - *
  7. The workbench editor registry is consulted to determine if the - * default text editor is available.
  8. - *
- *

- * - * @param fileStore - * the file store - * @return the id of an editor, appropriate for opening the file - * @throws PartInitException - * if no editor can be found - * @todo The IDE class has this method as a private, copied here so that it can be - * exposed. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=516470 - * @deprecated Deprecated on creation as this is waiting for Bug 516470 to be resolved - */ - @Deprecated - public static String getEditorId(IFileStore fileStore, boolean allowInteractive) throws PartInitException { - String name = fileStore.fetchInfo().getName(); - if (name == null) { - throw new IllegalArgumentException(); - } - - IContentType contentType = null; - try { - InputStream is = null; - try { - is = fileStore.openInputStream(EFS.NONE, null); - contentType = Platform.getContentTypeManager().findContentTypeFor(is, name); - } finally { - if (is != null) { - is.close(); - } - } - } catch (CoreException ex) { - // continue without content type - } catch (IOException ex) { - // continue without content type - } - - IEditorRegistry editorReg = PlatformUI.getWorkbench().getEditorRegistry(); - - IEditorDescriptor defaultEditor = editorReg.getDefaultEditor(name, contentType); - defaultEditor = IDE.overrideDefaultEditorAssociation(new FileStoreEditorInput(fileStore), contentType, - defaultEditor); - return getEditorDescriptor(name, editorReg, defaultEditor, allowInteractive).getId(); - } - - /** - * Get the editor descriptor for a given name using the editorDescriptor - * passed in as a default as a starting point. - * - * @param name - * The name of the element to open. - * @param editorReg - * The editor registry to do the lookups from. - * @param defaultDescriptor - * IEditorDescriptor or null - * @return IEditorDescriptor - * @throws PartInitException - * if no valid editor can be found - * - * @todo The IDE class has this method as a private, copied here so that it can be - * exposed via getEditorId. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=516470 - * @deprecated Deprecated on creation as this is waiting for Bug 516470 to be resolved - */ - @Deprecated - private static IEditorDescriptor getEditorDescriptor(String name, IEditorRegistry editorReg, - IEditorDescriptor defaultDescriptor, boolean allowInteractive) throws PartInitException { - - if (defaultDescriptor != null) { - return defaultDescriptor; - } - - IUnassociatedEditorStrategy strategy = getUnassociatedEditorStrategy(allowInteractive); - IEditorDescriptor editorDesc; - try { - editorDesc = strategy.getEditorDescriptor(name, editorReg); - } catch (CoreException e) { - throw new PartInitException(IDEWorkbenchMessages.IDE_noFileEditorFound, e); - } - - // if no valid editor found, bail out - if (editorDesc == null) { - throw new PartInitException(IDEWorkbenchMessages.IDE_noFileEditorFound); - } - - return editorDesc; - } - - /** - * @param allowInteractive - * Whether interactive strategies are considered - * @return The strategy to use in order to open unknown file. Either as set - * by preference, or a {@link SystemEditorOrTextEditorStrategy} if - * none is explicitly configured. Never returns {@code null}. - * - * @todo The IDE class has this method as a private, copied here so that it can be - * exposed via getEditorId. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=516470 - * @deprecated Deprecated on creation as this is waiting for Bug 516470 to be resolved - */ - @Deprecated - private static IUnassociatedEditorStrategy getUnassociatedEditorStrategy(boolean allowInteractive) { - String preferedStrategy = IDEWorkbenchPlugin.getDefault().getPreferenceStore() - .getString(IDE.UNASSOCIATED_EDITOR_STRATEGY_PREFERENCE_KEY); - IUnassociatedEditorStrategy res = null; - UnassociatedEditorStrategyRegistry registry = IDEWorkbenchPlugin.getDefault() - .getUnassociatedEditorStrategyRegistry(); - if (allowInteractive || !registry.isInteractive(preferedStrategy)) { - res = registry.getStrategy(preferedStrategy); - } - if (res == null) { - res = new SystemEditorOrTextEditorStrategy(); - } - return res; - } - } diff --git a/dsf/org.eclipse.cdt.dsf.ui/META-INF/MANIFEST.MF b/dsf/org.eclipse.cdt.dsf.ui/META-INF/MANIFEST.MF index b6c30d5553d..71403ec9cac 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/META-INF/MANIFEST.MF +++ b/dsf/org.eclipse.cdt.dsf.ui/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.cdt.dsf.ui;singleton:=true -Bundle-Version: 2.5.100.qualifier +Bundle-Version: 2.5.200.qualifier Bundle-Activator: org.eclipse.cdt.dsf.internal.ui.DsfUIPlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.ui;bundle-version="3.5.0", @@ -15,7 +15,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.5.0", org.eclipse.cdt.debug.ui;bundle-version="6.1.0", org.eclipse.jface.text;bundle-version="3.4.0", org.eclipse.ui.editors;bundle-version="3.4.0", - org.eclipse.ui.ide;bundle-version="3.5.0", + org.eclipse.ui.ide;bundle-version="3.16.0", org.eclipse.cdt.ui;bundle-version="5.1.0", org.eclipse.core.expressions;bundle-version="3.4.0", org.eclipse.core.filesystem;bundle-version="1.2.0", diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/sourcelookup/DsfSourceDisplayAdapter.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/sourcelookup/DsfSourceDisplayAdapter.java index 016b6c9b950..a1c5fd9cbe2 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/sourcelookup/DsfSourceDisplayAdapter.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/sourcelookup/DsfSourceDisplayAdapter.java @@ -28,7 +28,6 @@ import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CCorePreferenceConstants; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.debug.internal.core.sourcelookup.CSourceNotFoundElement; -import org.eclipse.cdt.debug.internal.ui.CDebugUIUtils; import org.eclipse.cdt.debug.internal.ui.sourcelookup.CSourceNotFoundEditorInput; import org.eclipse.cdt.debug.ui.ICDebugUIConstants; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; @@ -281,7 +280,7 @@ public class DsfSourceDisplayAdapter implements ISourceDisplay, ISteppingControl private String getEditorIdForFileStore(IFileStore fileStore) { try { - return CDebugUIUtils.getEditorId(fileStore, false); + return IDE.getEditorDescriptorForFileStore(fileStore, false).getId(); } catch (PartInitException exc) { DsfUIPlugin.log(exc); } -- cgit v1.2.3