mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-12 10:45:37 +02:00
Follow-up for 183291: Force load of adapter
This commit is contained in:
parent
196349f9fa
commit
aabedf8212
2 changed files with 32 additions and 4 deletions
|
@ -16,6 +16,9 @@ import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants;
|
||||||
import org.eclipse.cdt.debug.internal.ui.views.disassembly.DisassemblyView;
|
import org.eclipse.cdt.debug.internal.ui.views.disassembly.DisassemblyView;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IAdaptable;
|
||||||
|
import org.eclipse.core.runtime.IAdapterManager;
|
||||||
|
import org.eclipse.core.runtime.Platform;
|
||||||
import org.eclipse.debug.core.DebugPlugin;
|
import org.eclipse.debug.core.DebugPlugin;
|
||||||
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
|
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
|
||||||
import org.eclipse.jface.action.Action;
|
import org.eclipse.jface.action.Action;
|
||||||
|
@ -103,10 +106,10 @@ public class ToggleBreakpointRulerAction extends Action {
|
||||||
resource = (IResource) ((IEditorPart)fTargetPart).getEditorInput().getAdapter(IResource.class);
|
resource = (IResource) ((IEditorPart)fTargetPart).getEditorInput().getAdapter(IResource.class);
|
||||||
}
|
}
|
||||||
if (resource != null) {
|
if (resource != null) {
|
||||||
fTargetAdapter = (IToggleBreakpointsTarget)resource.getAdapter(IToggleBreakpointsTarget.class);
|
fTargetAdapter = getAdapter(resource);
|
||||||
}
|
}
|
||||||
if (fTargetAdapter == null) {
|
if (fTargetAdapter == null) {
|
||||||
fTargetAdapter = (IToggleBreakpointsTarget)fTargetPart.getAdapter(IToggleBreakpointsTarget.class);
|
fTargetAdapter = getAdapter(fTargetPart);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (fTargetAdapter == null) {
|
if (fTargetAdapter == null) {
|
||||||
|
@ -114,6 +117,17 @@ public class ToggleBreakpointRulerAction extends Action {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IToggleBreakpointsTarget getAdapter(IAdaptable adaptable) {
|
||||||
|
IToggleBreakpointsTarget adapter= (IToggleBreakpointsTarget)adaptable.getAdapter(IToggleBreakpointsTarget.class);
|
||||||
|
if (adapter == null) {
|
||||||
|
IAdapterManager adapterManager= Platform.getAdapterManager();
|
||||||
|
if (adapterManager.hasAdapter(adaptable, IToggleBreakpointsTarget.class.getName())) {
|
||||||
|
adapter= (IToggleBreakpointsTarget)adapterManager.loadAdapter(adaptable, IToggleBreakpointsTarget.class.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return adapter;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the current selection in the active part, possibly
|
* Returns the current selection in the active part, possibly
|
||||||
* and empty selection, but never <code>null</code>.
|
* and empty selection, but never <code>null</code>.
|
||||||
|
|
|
@ -13,6 +13,9 @@ package org.eclipse.cdt.debug.internal.ui.actions;
|
||||||
|
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IAdaptable;
|
||||||
|
import org.eclipse.core.runtime.IAdapterManager;
|
||||||
|
import org.eclipse.core.runtime.Platform;
|
||||||
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
|
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
import org.eclipse.jface.dialogs.ErrorDialog;
|
import org.eclipse.jface.dialogs.ErrorDialog;
|
||||||
|
@ -98,10 +101,10 @@ public class ToggleWatchpointActionDelegate extends ActionDelegate implements IO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (resource != null) {
|
if (resource != null) {
|
||||||
targetAdapter = (IToggleBreakpointsTarget)resource.getAdapter(IToggleBreakpointsTarget.class);
|
targetAdapter = getAdapter(resource);
|
||||||
}
|
}
|
||||||
if (targetAdapter == null) {
|
if (targetAdapter == null) {
|
||||||
targetAdapter = (IToggleBreakpointsTarget)fTargetPart.getAdapter(IToggleBreakpointsTarget.class);
|
targetAdapter = getAdapter(fTargetPart);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (targetAdapter == null) {
|
if (targetAdapter == null) {
|
||||||
|
@ -110,6 +113,17 @@ public class ToggleWatchpointActionDelegate extends ActionDelegate implements IO
|
||||||
return targetAdapter;
|
return targetAdapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IToggleBreakpointsTarget getAdapter(IAdaptable adaptable) {
|
||||||
|
IToggleBreakpointsTarget adapter= (IToggleBreakpointsTarget)adaptable.getAdapter(IToggleBreakpointsTarget.class);
|
||||||
|
if (adapter == null) {
|
||||||
|
IAdapterManager adapterManager= Platform.getAdapterManager();
|
||||||
|
if (adapterManager.hasAdapter(adaptable, IToggleBreakpointsTarget.class.getName())) {
|
||||||
|
adapter= (IToggleBreakpointsTarget)adapterManager.loadAdapter(adaptable, IToggleBreakpointsTarget.class.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return adapter;
|
||||||
|
}
|
||||||
|
|
||||||
private void setSelection( ISelection selection ) {
|
private void setSelection( ISelection selection ) {
|
||||||
fSelection = selection;
|
fSelection = selection;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue