Hi,
 
I develop plugins installed on a CDT Eclipse to do C/C++ application.
I would like to add a button to the debug toolbar next to “Resume” button for example or not so far ….
To do that I was inspired by the button “Resume”. I did the same things, I just changed the id and name but for the moment my button should have the same behavior
 that Resume button !
But no
L !
 
By default it’s enabled when no debug is launched and more annoying it’s visible in the others perspectives !
 
I put breakpoints on “init” function of ResumeCommandActionDelegate and ResetCommandActionDelegate (my commandActionDelegate). When I open the debug perspective,
 the breakpoint on “init” function of ResumeCommandActionDelegate is detected but not in my commandActionDelegate, the breakpoint is detected only when I click on the button … but too late !
I think my action isn’t register !
But I don’t know why ….
 
See the sources code :
plugin.xml:
[CODE]
// actionSets
<extension
         point="org.eclipse.ui.actionSets">
     
<actionSet
            id="blabla.debug.reset.actionset"
            label="Reset"
            visible="true">
         <action
               class="blabla.debug.actions.ResetCommandActionDelegate"
               definitionId="blabla.debug.commands.Reset"
               disabledIcon="icons/unselected_restart.gif"
               hoverIcon="icons/selected_restart.gif"
               icon="icons/selected_restart.gif"
               id="blabla.debug.action.reset"
               label="Reset"
               menubarPath="org.eclipse.ui.run/stepGroup"
               toolbarPath="org.eclipse.debug.ui.main.toolbar/additions"
               tooltip="Reset the chip to restart the process">
        
</action>
      </actionSet>
   </extension>
// Command
<command
           
categoryId="org.eclipse.debug.ui.category.run"
            defaultHandler="blabla.debug.commands.ResetHandler"
            description="Reset the chip to restart the process"
            id="blabla.debug.commands.Reset"
           
name="Reset">
      </command>
[/CODE]
 
Associated sources:
[CODE]
package blabla.debug.commands;
 
import org.eclipse.debug.core.commands.IRestartHandler;
import org.eclipse.debug.core.commands.IResumeHandler;
import org.eclipse.debug.ui.actions.DebugCommandHandler;
 
 
 
public class ResetHandler extends DebugCommandHandler {
 
            @Override
                        protected Class<IResumeHandler> getCommandType() {
                    return IResumeHandler.class;
                }
 
}
[/CODE]
 
[CODE]
package blabla.debug.actions;
 
import org.eclipse.debug.ui.actions.DebugCommandAction;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.IActionDelegate2;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
 
public class ResetCommandActionDelegate implements IWorkbenchWindowActionDelegate, IActionDelegate2 {
 
           
            private DebugCommandActionfDebugAction = new ResetCommandAction();
   
    @Override
            public void dispose() {
        fDebugAction.dispose();
    }
 
    @Override
            public void init(IWorkbenchWindow window) {
        fDebugAction.init(window);
    }
 
    @Override
            public void run(IAction action) {
        fDebugAction.run();
    }
 
    @Override
            public void selectionChanged(IAction action, ISelection selection) {
        // do nothing
    }
 
    @Override
            public void init(IAction action) {
        fDebugAction.setActionProxy(action);
       
    }
 
    @Override
            public void runWithEvent(IAction action, Event event) {
        run(action);
   
}
}
[/CODE]
 
[CODE]
package blabla.debug.actions;
 
import org.eclipse.debug.core.commands.IRestartHandler;
import org.eclipse.debug.core.commands.IResumeHandler;
import org.eclipse.debug.internal.ui.DebugPluginImages;
import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
import org.eclipse.debug.internal.ui.actions.ActionMessages;
import org.eclipse.debug.ui.actions.DebugCommandAction;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
 
import blabla.debug.MCUDebugPlugin;
 
public class ResetCommandAction extends DebugCommandAction {
 
           
            public ResetCommandAction() {
                        setActionDefinitionId("org.eclipse.debug.ui.commands.Resume"); //$NON-NLS-1$
           
}
 
    @Override
            public String getText() {
        return ActionMessages.ResumeAction_0;
    }
 
    @Override
            public String getHelpContextId() {
        return "org.eclipse.debug.ui.resume_action_context"; //$NON-NLS-1$
    }
 
    @Override
            public String getId() {
        return "org.eclipse.debug.ui.debugview.toolbar.resume"; //$NON-NLS-1$
    }
 
    @Override
            public String getToolTipText() {
        return ActionMessages.ResumeAction_3;
    }
 
    @Override
            public ImageDescriptor getDisabledImageDescriptor() {
        return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_RESUME);
    }
 
    @Override
            public ImageDescriptor getHoverImageDescriptor() {
        return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_RESUME);
    }
 
    @Override
            public ImageDescriptor getImageDescriptor() {
        return DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_RESUME);
    }
 
            @Override
            protected Class<IResumeHandler> getCommandType() {
                        return IResumeHandler.class;
            }
 
}
[/CODE]
 
If you have any idea ….
Many thanks !!!
 
Chris