diff options
author | Patrick Chuong | 2011-03-30 13:56:31 +0000 |
---|---|---|
committer | Patrick Chuong | 2011-03-30 13:56:31 +0000 |
commit | c1d6a1cffe3eb58e5b41caef41ff3b40490c42ab (patch) | |
tree | 5d6ee952ab18c981d368ad4b8f10f80aee72d893 /dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug | |
parent | 16fdcfdd185330e552f89a7b3681f29928c2a6c5 (diff) | |
download | org.eclipse.cdt-c1d6a1cffe3eb58e5b41caef41ff3b40490c42ab.tar.gz org.eclipse.cdt-c1d6a1cffe3eb58e5b41caef41ff3b40490c42ab.tar.xz org.eclipse.cdt-c1d6a1cffe3eb58e5b41caef41ff3b40490c42ab.zip |
Bug 340177 - [breakpoints] Update CDT ToggleBreakpointTargetFactory enablement
Diffstat (limited to 'dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug')
-rw-r--r-- | dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyToggleBreakpointTester.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyToggleBreakpointTester.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyToggleBreakpointTester.java new file mode 100644 index 00000000000..e872b33742e --- /dev/null +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyToggleBreakpointTester.java @@ -0,0 +1,61 @@ +/***************************************************************** + * Copyright (c) 2011 Texas Instruments and others + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Patrick Chuong (Texas Instruments) - + * Update CDT ToggleBreakpointTargetFactory enablement (340177 ) + *****************************************************************/ +package org.eclipse.cdt.dsf.debug.internal.ui.disassembly; + +import org.eclipse.cdt.debug.core.CDIDebugModel; +import org.eclipse.cdt.debug.core.CDebugUtils; +import org.eclipse.cdt.debug.core.model.ICBreakpoint; +import org.eclipse.cdt.dsf.debug.internal.ui.disassembly.provisional.IDisassemblyPart; +import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.debug.core.model.IDebugElement; +import org.eclipse.debug.core.model.IDebugModelProvider; +import org.eclipse.debug.ui.DebugUITools; + +/** + * Disassembly toggle breakpoint factory enablement tester. + * + * @since 2.2 + */ +public class DisassemblyToggleBreakpointTester extends PropertyTester { + + /* + * (non-Javadoc) + * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) + */ + public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { + if ("isDisassemblyViewSupportsCBreakpoint".equals(property) && (receiver instanceof IDisassemblyPart)) { //$NON-NLS-1$ + IDisassemblyPart view = ((IDisassemblyPart) receiver); + if (!CDebugUtils.isCustomToggleBreakpointFactory()) + return true; + + IAdaptable element = DebugUITools.getPartDebugContext(view.getSite()); + if (element != null) { + IDebugModelProvider modelProvider = (IDebugModelProvider)element.getAdapter(IDebugModelProvider.class); + if (modelProvider != null) { + String[] models = modelProvider.getModelIdentifiers(); + for (String model : models) { + if (CDIDebugModel.getPluginIdentifier().equals(model) || + ICBreakpoint.C_BREAKPOINTS_DEBUG_MODEL_ID.equals(model)) { + return true; + } + } + } else if (element instanceof IDebugElement) { + if (CDIDebugModel.getPluginIdentifier().equals(((IDebugElement)element).getModelIdentifier()) ) { + return true; + } + } + } + } + return false; + } +}
\ No newline at end of file |