Index:
ChangeLog =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v retrieving revision
1.88 diff -u -r1.88 ChangeLog --- ChangeLog 4 Feb 2003 19:16:22
-0000 1.88 +++ ChangeLog 4 Feb 2003 23:46:04 -0000 @@ -1,4 +1,13
@@ 2003-02-04 Mikhail Khodjaiants + Implementation of the
'Resume Without Signal' action. + *
SignalZeroActionDelegate.java + * plugin.properties + *
plugin.xml + icons/full/clcl16/signal0_co.gif + icons/full/dlcl16/signal0_co.gif + icons/full/elcl16/signal0_co.gif + +2003-02-04
Mikhail Khodjaiants 'DebugException' handling in the 'Signals'
view. * SignalsView.java *
SignalsViewer.java Index:
plugin.properties =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.ui/plugin.properties,v retrieving
revision 1.31 diff -u -r1.31 plugin.properties ---
plugin.properties 4 Feb 2003 19:16:06 -0000 1.31 +++
plugin.properties 4 Feb 2003 23:46:04 -0000 @@ -56,4 +56,5
@@ LoadSymbolsAction.label=Load
Symbols SignalAction.label=Deliver
Signal +SignalZeroAction.label=Resume Without Signal Index:
plugin.xml =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.ui/plugin.xml,v retrieving revision
1.48 diff -u -r1.48 plugin.xml --- plugin.xml 31 Jan 2003 22:38:15
-0000 1.48 +++ plugin.xml 4 Feb 2003 23:46:04 -0000 @@ -698,6
+698,25
@@
</enablement>
</action>
</objectContribution> +
<objectContribution +
objectClass="org.eclipse.cdt.debug.core.model.IResumeWithoutSignal" +
id="org.eclipse.cdt.debug.ui.DebugTargetActions"> +
<action +
label="%SignalZeroAction.label" +
icon="icons/full/clcl16/signal0_co.gif" +
helpContextId="signal_zero_action_context" +
class="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroActionDelegate" +
menubarPath="threadGroup" +
enablesFor="1" +
id="org.eclipse.cdt.debug.internal.ui.actions.SignalZeroActionDelegate"> +
<enablement> +
<pluginState +
id="org.eclipse.cdt.debug.ui" +
value="activated"> +
</pluginState> +
</enablement> +
</action> +
</objectContribution>
</extension>
<extension
point="org.eclipse.ui.viewActions"> Index:
icons/full/clcl16/signal0_co.gif =================================================================== RCS
file: icons/full/clcl16/signal0_co.gif diff -N
icons/full/clcl16/signal0_co.gif Binary files /dev/null and signal0_co.gif
differ Index:
icons/full/dlcl16/signal0_co.gif =================================================================== RCS
file: icons/full/dlcl16/signal0_co.gif diff -N
icons/full/dlcl16/signal0_co.gif Binary files /dev/null and signal0_co.gif
differ Index:
icons/full/elcl16/signal0_co.gif =================================================================== RCS
file: icons/full/elcl16/signal0_co.gif diff -N
icons/full/elcl16/signal0_co.gif Binary files /dev/null and signal0_co.gif
differ Index:
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java,v retrieving
revision 1.2 diff -u -r1.2 SignalActionDelegate.java ---
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java 3
Feb 2003 23:08:44 -0000 1.2 +++
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java 4
Feb 2003 23:46:04 -0000 @@ -81,7 +81,6
@@ CDebugUIPlugin.log( ms
); } } - } } Index:
src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroActionDelegate.java =================================================================== RCS
file:
src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroActionDelegate.java diff
-N
src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroActionDelegate.java ---
/dev/null 1 Jan 1970 00:00:00 -0000 +++
src/org/eclipse/cdt/debug/internal/ui/actions/SignalZeroActionDelegate.java 4
Feb 2003 23:46:04 -0000 @@ -0,0 +1,123 @@ +/* + *(c) Copyright QNX
Software Systems Ltd. 2002. + * All Rights Reserved. + * +
*/ +package org.eclipse.cdt.debug.internal.ui.actions; + +import
org.eclipse.cdt.debug.core.model.IResumeWithoutSignal; +import
org.eclipse.cdt.debug.ui.CDebugUIPlugin; +import
org.eclipse.core.runtime.MultiStatus; +import
org.eclipse.debug.core.DebugException; +import
org.eclipse.jface.action.IAction; +import
org.eclipse.jface.viewers.ISelection; +import
org.eclipse.jface.viewers.IStructuredSelection; +import
org.eclipse.swt.custom.BusyIndicator; +import
org.eclipse.swt.widgets.Display; +import
org.eclipse.ui.IObjectActionDelegate; +import
org.eclipse.ui.IWorkbenchPart; +import
org.eclipse.ui.IWorkbenchWindow; + +/** + * Enter type comment. + *
+ * @since: Feb 4, 2003 + */ +public class SignalZeroActionDelegate
implements IObjectActionDelegate +{ + private IResumeWithoutSignal
fTarget = null; + + /** + * Constructor for
SignalZeroActionDelegate. + */ + public
SignalZeroActionDelegate() + { + super(); + } + + /*
(non-Javadoc) + * @see
org.eclipse.ui.IObjectActionDelegate#setActivePart(IAction,
IWorkbenchPart) + */ + public void setActivePart( IAction
action, IWorkbenchPart targetPart ) + { + } + + /*
(non-Javadoc) + * @see
org.eclipse.ui.IActionDelegate#run(IAction) + */ + public void
run( IAction action ) + { + if ( getTarget() != null
) + { + final MultiStatus ms = new
MultiStatus( CDebugUIPlugin.getUniqueIdentifier(),
+ DebugException.REQUEST_FAILED,
+ "Unable
to resume ignoring signal.",
+ null
); + BusyIndicator.showWhile( Display.getCurrent(),
+ new
Runnable() + { + public
void
run() + { + try + { + doAction(
getTarget()
); + } + catch(
DebugException e
) + { + ms.merge(
e.getStatus()
); + } + } + }
); + if ( !ms.isOK()
) + { + IWorkbenchWindow window =
CDebugUIPlugin.getActiveWorkbenchWindow(); + if (
window != null
) + { + CDebugUIPlugin.errorDialog(
"Operation failed.", ms
); + } + else + { + CDebugUIPlugin.log(
ms
); + } + } + } + } + + /*
(non-Javadoc) + * @see
org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection) +
*/ + public void selectionChanged( IAction action, ISelection selection
) + { + if ( selection instanceof IStructuredSelection
) + { + Object element =
((IStructuredSelection)selection).getFirstElement(); + if (
element instanceof IResumeWithoutSignal
) + { + boolean enabled =
((IResumeWithoutSignal)element).canResumeWithoutSignal(); + action.setEnabled(
enabled ); + if ( enabled
) + { + setTarget(
(IResumeWithoutSignal)element
); + return; + } + } + } + action.setEnabled(
false ); + setTarget( null ); + } + + protected
void doAction( IResumeWithoutSignal target ) throws
DebugException + { + target.resumeWithoutSignal(); + } + + protected
IResumeWithoutSignal getTarget() + { + return
fTarget; + } + + protected void setTarget(
IResumeWithoutSignal target ) + { + fTarget =
target; + } +}
|