1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-21 21:52:10 +02:00

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
This commit is contained in:
Jonah Graham 2019-06-25 15:19:53 -04:00
parent d54fbd7da2
commit 936dec3517
5 changed files with 6 additions and 157 deletions

View file

@ -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)",

View file

@ -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
}

View file

@ -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.
* <p>
* 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.
* </p>
* <ol>
* <li>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
* <code>IEditorRegistry.getDefaultEditor(String)</code>.</li>
* <li>The operating system is consulted to determine if an in-place
* component editor is available (e.g. OLE editor on Win32 platforms).</li>
* <li>The operating system is consulted to determine if an external editor
* is available.</li>
* <li>The workbench editor registry is consulted to determine if the
* default text editor is available.</li>
* </ol>
* </p>
*
* @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 <code>null</code>
* @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;
}
}

View file

@ -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",

View file

@ -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);
}