Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] [CDT Platform] Add a button to the debug toolbar

ConnectCommandHandler.java eventually leads to GdbConnectCommand.java which has a method called isExecutable()
________________________________________
From: cdt-dev-bounces@xxxxxxxxxxx [cdt-dev-bounces@xxxxxxxxxxx] on behalf of Christelle BURGUERA [Christelle.BURGUERA@xxxxxx]
Sent: November 27, 2015 7:25 AM
To: CDT General developers list.
Subject: Re: [cdt-dev] [CDT Platform] Add a button to the debug toolbar

Hi,

I really not understand how can I do to enable and disable my button....
I want it enabled if debug is launching and disabled if not.

I mimic the connect button, so I created a contributionMenu, a command and an handler (to test it I copied the "enabledWhen"). But the state of my button doesn’t change.
I don’t' understand the handler you use. There is no enable function ..

Thank you
Christelle


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Jonah Graham
Sent: Thursday, November 26, 2015 5:10 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] [CDT Platform] Add a button to the debug toolbar

Hi Christelle,

You want something like this, note the locationURI.

      <menuContribution
            locationURI="toolbar:org.eclipse.debug.ui.DebugView?before=stepGroup">
         <command
               commandId="org.eclipse.cdt.debug.ui.command.connect"
               icon="icons/obj16/connect.gif"
               label="%Connect.label"
               style="push"
               tooltip="%Connect.tooltip">
         </command>
      </menuContribution>

The above snippet comes from here:
http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/tree/debug/org.eclipse.cdt.debug.ui/plugin.xml#n2726

If you search the file for the id
"org.eclipse.cdt.debug.ui.command.connect" you should see all the parts you need to connect together.

Jonah

~~~
Jonah Graham
Kichwa Coders Ltd.
www.kichwacoders.com


On 26 November 2015 at 15:18, Christelle BURGUERA <Christelle.BURGUERA@xxxxxx> wrote:
> Hi Marc,
>
>
>
> I’ll have a look.
>
> Do you know the plugin’s name where I can find this button ?
>
>
>
> Thank you !
>
> Christelle
>
>
>
> From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
> On Behalf Of Marc Khouzam
> Sent: Thursday, November 26, 2015 4:11 PM
> To: CDT General developers list.
> Subject: Re: [cdt-dev] [CDT Platform] Add a button to the debug
> toolbar
>
>
>
> I haven't looked deeply at the code you posted but I didn't notice the
> use of the menu.ui extension point.  When I use the command framework
> I use the extension points:
> Command
> Handler
> Menu
>
> I recommend you mimic the connect button which is added by CDT to the
> Debug toolbar. That should be the closest example you can find to what
> you seem to want.
>
> BR,
>
> Marc
>
>
>
> From: Christelle BURGUERA <Christelle.BURGUERA@xxxxxx>
> Sent: Nov 26, 2015 03:11
> To: cdt-dev@xxxxxxxxxxx
> Subject: [cdt-dev] [CDT Platform] Add a button to the debug toolbar
>
>
>
> 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_DLC
> L_RESUME);
>
>     }
>
>
>
>     @Override
>
>             public ImageDescriptor getHoverImageDescriptor() {
>
>         return
> DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELC
> L_RESUME);
>
>     }
>
>
>
>     @Override
>
>             public ImageDescriptor getImageDescriptor() {
>
>         return
> DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELC
> L_RESUME);
>
>     }
>
>
>
>             @Override
>
>             protected Class<IResumeHandler> getCommandType() {
>
>                         return IResumeHandler.class;
>
>             }
>
>
>
> }
>
> [/CODE]
>
>
>
> If you have any idea ….
>
> Many thanks !!!
>
>
>
> Chris
>
>
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or
> unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top