mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 17:05:26 +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.core.resources.IResource;
|
||||
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.ui.actions.IToggleBreakpointsTarget;
|
||||
import org.eclipse.jface.action.Action;
|
||||
|
@ -103,10 +106,10 @@ public class ToggleBreakpointRulerAction extends Action {
|
|||
resource = (IResource) ((IEditorPart)fTargetPart).getEditorInput().getAdapter(IResource.class);
|
||||
}
|
||||
if (resource != null) {
|
||||
fTargetAdapter = (IToggleBreakpointsTarget)resource.getAdapter(IToggleBreakpointsTarget.class);
|
||||
fTargetAdapter = getAdapter(resource);
|
||||
}
|
||||
if (fTargetAdapter == null) {
|
||||
fTargetAdapter = (IToggleBreakpointsTarget)fTargetPart.getAdapter(IToggleBreakpointsTarget.class);
|
||||
fTargetAdapter = getAdapter(fTargetPart);
|
||||
}
|
||||
}
|
||||
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
|
||||
* 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.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.jface.action.IAction;
|
||||
import org.eclipse.jface.dialogs.ErrorDialog;
|
||||
|
@ -98,10 +101,10 @@ public class ToggleWatchpointActionDelegate extends ActionDelegate implements IO
|
|||
}
|
||||
}
|
||||
if (resource != null) {
|
||||
targetAdapter = (IToggleBreakpointsTarget)resource.getAdapter(IToggleBreakpointsTarget.class);
|
||||
targetAdapter = getAdapter(resource);
|
||||
}
|
||||
if (targetAdapter == null) {
|
||||
targetAdapter = (IToggleBreakpointsTarget)fTargetPart.getAdapter(IToggleBreakpointsTarget.class);
|
||||
targetAdapter = getAdapter(fTargetPart);
|
||||
}
|
||||
}
|
||||
if (targetAdapter == null) {
|
||||
|
@ -110,6 +113,17 @@ public class ToggleWatchpointActionDelegate extends ActionDelegate implements IO
|
|||
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 ) {
|
||||
fSelection = selection;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue