Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementation of the 'Resume Without Signal' action

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

Back to the top