mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
Bug 360588 - [breakpoints] Allow user to edit all its properties prior to creating the breakpoint
Added a default toggle target to add watchpoint action.
This commit is contained in:
parent
d76485935e
commit
bfdf65cacd
2 changed files with 34 additions and 44 deletions
|
@ -39,7 +39,7 @@ public class AddWatchpointActionDelegate extends ActionDelegate implements IView
|
|||
|
||||
private IViewPart fView;
|
||||
private ISelection fSelection;
|
||||
|
||||
private ToggleBreakpointAdapter fDefaultToggleTarget = new ToggleBreakpointAdapter();
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
|
||||
|
@ -68,14 +68,19 @@ public class AddWatchpointActionDelegate extends ActionDelegate implements IView
|
|||
@Override
|
||||
public void run( IAction action ) {
|
||||
IToggleBreakpointsTarget toggleTarget = DebugUITools.getToggleBreakpointsTargetManager().getToggleBreakpointsTarget(fView, fSelection);
|
||||
IToggleBreakpointsTargetCExtension cToggleTarget = null;
|
||||
if (toggleTarget instanceof IToggleBreakpointsTargetCExtension) {
|
||||
cToggleTarget = (IToggleBreakpointsTargetCExtension)toggleTarget;
|
||||
} else {
|
||||
cToggleTarget = fDefaultToggleTarget;
|
||||
}
|
||||
|
||||
try {
|
||||
((IToggleBreakpointsTargetCExtension)toggleTarget).createWatchpoingsInteractive(fView, fSelection);
|
||||
cToggleTarget.createWatchpoingsInteractive(fView, fSelection);
|
||||
} catch (CoreException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
// AddWatchpointDialog dlg = new AddWatchpointDialog( CDebugUIPlugin.getActiveWorkbenchShell(), getMemorySpaceManagement() );
|
||||
// if ( dlg.open() == Window.OK ) {
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.internal.ui.breakpoints;
|
||||
|
||||
import org.eclipse.cdt.debug.core.CDIDebugModel;
|
||||
import org.eclipse.cdt.debug.core.model.ICAddressBreakpoint;
|
||||
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
||||
import org.eclipse.cdt.debug.core.model.ICEventBreakpoint;
|
||||
|
@ -23,10 +24,8 @@ import org.eclipse.cdt.debug.ui.breakpoints.CBreakpointUIContributionFactory;
|
|||
import org.eclipse.cdt.debug.ui.breakpoints.ICBreakpointContext;
|
||||
import org.eclipse.cdt.debug.ui.breakpoints.ICBreakpointsUIContribution;
|
||||
import org.eclipse.cdt.debug.ui.preferences.ReadOnlyFieldEditor;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IMarker;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.debug.core.model.ILineBreakpoint;
|
||||
|
@ -272,23 +271,18 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement
|
|||
}
|
||||
else if ( breakpoint instanceof ICWatchpoint ) {
|
||||
ICWatchpoint watchpoint = (ICWatchpoint)breakpoint;
|
||||
String expression = ""; //$NON-NLS-1$
|
||||
try {
|
||||
expression = watchpoint.getExpression();
|
||||
}
|
||||
catch( CoreException ce ) {
|
||||
CDebugUIPlugin.log( ce );
|
||||
}
|
||||
IProject project = breakpoint.getMarker().getResource().getProject();
|
||||
String expression = getPreferenceStore().getString(ICWatchpoint.EXPRESSION);
|
||||
|
||||
IMarker marker = breakpoint.getMarker();
|
||||
if (marker != null) {
|
||||
IProject project = marker.getResource().getProject();
|
||||
if ( project != null ) {
|
||||
addField( createLabelEditor( getFieldEditorParent(), BreakpointsMessages.getString( "CBreakpointPropertyPage.10" ), project.getName() ) ); //$NON-NLS-1$
|
||||
}
|
||||
IResource resource = breakpoint.getMarker().getResource();
|
||||
if ( resource instanceof IFile ) {
|
||||
String filename = resource.getLocation().toOSString();
|
||||
if ( filename != null ) {
|
||||
addField( createLabelEditor( getFieldEditorParent(), BreakpointsMessages.getString( "CBreakpointPropertyPage.20" ), filename ) ); //$NON-NLS-1$
|
||||
}
|
||||
String filename = getPreferenceStore().getString(ICBreakpoint.SOURCE_HANDLE);
|
||||
if (!"".equals(filename)) { //$NON-NLS-1$
|
||||
addField( createLabelEditor( getFieldEditorParent(), BreakpointsMessages.getString( "CBreakpointPropertyPage.20" ), filename ) ); //$NON-NLS-1$
|
||||
}
|
||||
addField( createLabelEditor( getFieldEditorParent(), BreakpointsMessages.getString( "CBreakpointPropertyPage.14" ), expression ) ); //$NON-NLS-1$
|
||||
}
|
||||
|
@ -315,29 +309,20 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement
|
|||
if (breakpoint instanceof ICEventBreakpoint)
|
||||
return BreakpointsMessages.getString("CBreakpointPropertyPage.21"); //$NON-NLS-1$
|
||||
if (breakpoint instanceof ICWatchpoint) {
|
||||
ICWatchpoint watchpoint = (ICWatchpoint) breakpoint;
|
||||
String type = ""; //$NON-NLS-1$
|
||||
try {
|
||||
if (watchpoint.isReadType() && !watchpoint.isWriteType())
|
||||
boolean isReadType = getPreferenceStore().getBoolean(ICWatchpoint.READ);
|
||||
boolean isWriteType = getPreferenceStore().getBoolean(ICWatchpoint.WRITE);
|
||||
if (isReadType && !isWriteType)
|
||||
type = BreakpointsMessages.getString("CBreakpointPropertyPage.11"); //$NON-NLS-1$
|
||||
else if (!watchpoint.isReadType() && watchpoint.isWriteType())
|
||||
else if (!isReadType && isWriteType)
|
||||
type = BreakpointsMessages.getString("CBreakpointPropertyPage.12"); //$NON-NLS-1$
|
||||
else
|
||||
type = BreakpointsMessages.getString("CBreakpointPropertyPage.13"); //$NON-NLS-1$
|
||||
|
||||
} catch (CoreException ce) {
|
||||
CDebugUIPlugin.log(ce);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
// default main label is the label of marker type for the breakpoint
|
||||
String type = ""; //$NON-NLS-1$
|
||||
try {
|
||||
type = breakpoint.getMarker().getType(); // TODO: how to get label?
|
||||
} catch (CoreException ce) {
|
||||
CDebugUIPlugin.log(ce);
|
||||
}
|
||||
return type;
|
||||
return CDIDebugModel.calculateMarkerType(breakpoint);
|
||||
}
|
||||
protected void createLineNumberEditor( Composite parent ) {
|
||||
String title = BreakpointsMessages.getString( "CBreakpointPropertyPage.9" ); //$NON-NLS-1$
|
||||
|
|
Loading…
Add table
Reference in a new issue