/** * Checks whether the given element is adaptable to the toggle breakpoints target. * This method does not force loading of the adapter. * @param adaptable Element to adapt. * @return returns true if element can be adapted. */ private boolean canGetToggleBreakpointsTarget(Object adaptable) { if (adaptable != null) { IToggleBreakpointsTarget adapter = null; if (adaptable instanceof IAdaptable) { adapter = ((IAdaptable)adaptable).getAdapter(IToggleBreakpointsTarget.class); } if (adapter == null) { IAdapterManager adapterManager = Platform.getAdapterManager(); if (adapterManager.hasAdapter(adaptable, IToggleBreakpointsTarget.class.getName())) { return true; } } else { return true; } } return false; }
/** * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) */ @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { if ("launchable".equals(property)) { //$NON-NLS-1$ if (((LaunchManager)(DebugPlugin.getDefault().getLaunchManager())).launchModeAvailable((String)expectedValue)) { return Platform.getAdapterManager().hasAdapter(receiver, "org.eclipse.debug.ui.actions.ILaunchable"); //$NON-NLS-1$ } } return false; }
protected Object getAdapter(IAdaptable adaptable) { Object adapter = adaptable.getAdapter(getAdapterClass()); if (adapter == null) { IAdapterManager adapterManager = Platform.getAdapterManager(); if (adapterManager.hasAdapter(adaptable, getAdapterClass().getName())) { adapter = adapterManager.loadAdapter(adaptable, getAdapterClass().getName()); } } return adapter; }
private void initializeListeners() { IDebugContextManager manager = DebugUITools.getDebugContextManager(); IWorkbenchWindow workbenchWindow = fActivePart.getSite().getWorkbenchWindow(); IDebugContextService service = manager.getContextService(workbenchWindow); service.addDebugContextListener(fContextListener); fPartTarget = fActivePart.getAdapter(IRunToLineTarget.class); if (fPartTarget == null) { IAdapterManager adapterManager = Platform.getAdapterManager(); if (adapterManager.hasAdapter(fActivePart, IRunToLineTarget.class.getName())) { fPartTarget = (IRunToLineTarget) adapterManager.loadAdapter(fActivePart, IRunToLineTarget.class.getName()); } } ISelection activeContext = service.getActiveContext(); fContextListener.contextActivated(activeContext); }
/** * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) */ @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { if ("launchable".equals(property)) { //$NON-NLS-1$ if (DebugUIPlugin.getDefault().getLaunchConfigurationManager().launchModeAvailable((String)expectedValue)) { return Platform.getAdapterManager().hasAdapter(receiver, ILaunchable.class.getName()); } } if("contextlaunch".equals(property)) { //$NON-NLS-1$ if(DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IInternalDebugUIConstants.PREF_USE_CONTEXTUAL_LAUNCH)) { IResource res = getResource(receiver); if(res != null) { return res.isAccessible() && getLaunchConfigurationManager().getLaunchShortcuts(getResource(receiver)).size() > 0 && getLaunchConfigurationManager().isSharedConfig(receiver) == null; } return false; } } return false; }
public EvaluationResult evaluate(IEvaluationContext context) throws CoreException { if (fTypeName == null) return EvaluationResult.FALSE; Object var= context.getDefaultVariable(); Object adapted= null; IAdapterManager manager= Platform.getAdapterManager(); if (Expressions.isInstanceOf(var, fTypeName)) { adapted= var; } else { if (!manager.hasAdapter(var, fTypeName)) return EvaluationResult.FALSE; adapted= manager.getAdapter(var, fTypeName); } // the adapted result is null but hasAdapter returned true check // if the adapter is loaded. if (adapted == null) { if (manager.queryAdapter(var, fTypeName) == IAdapterManager.NOT_LOADED) { return EvaluationResult.NOT_LOADED; } else { return EvaluationResult.FALSE; } } return evaluateAnd(new DefaultVariable(context, adapted)); }
/** * Binds this action to operate on the given part's run to line adapter. * * @param part the workbench part to bind this delegate to */ private void bindTo(IWorkbenchPart part) { IDebugContextManager manager = DebugUITools.getDebugContextManager(); if (fActivePart != null && !fActivePart.equals(part)) { manager.getContextService(fActivePart.getSite().getWorkbenchWindow()).removeDebugContextListener(fContextListener); } fPartTarget = null; fActivePart = part; if (part != null) { IWorkbenchWindow workbenchWindow = part.getSite().getWorkbenchWindow(); IDebugContextService service = manager.getContextService(workbenchWindow); service.addDebugContextListener(fContextListener); fPartTarget = part.getAdapter(IRunToLineTarget.class); if (fPartTarget == null) { IAdapterManager adapterManager = Platform.getAdapterManager(); // TODO: we could restrict loading to cases when the debugging context is on if (adapterManager.hasAdapter(part, IRunToLineTarget.class.getName())) { fPartTarget = (IRunToLineTarget) adapterManager.loadAdapter(part, IRunToLineTarget.class.getName()); } } ISelection activeContext = service.getActiveContext(); fContextListener.contextActivated(activeContext); } update(); } }
if (runToLineAction == null) { IAdapterManager adapterManager = Platform.getAdapterManager(); if (adapterManager.hasAdapter(ed, IRunToLineTarget.class.getName())) { runToLineAction = (IRunToLineTarget) adapterManager.loadAdapter(ed,IRunToLineTarget.class.getName());