1
0
Fork 0
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:
Anton Leherbauer 2007-05-30 10:17:19 +00:00
parent 196349f9fa
commit aabedf8212
2 changed files with 32 additions and 4 deletions

View file

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

View file

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