Bonjour,
Je développe des plugins que j'installe à un Eclipse CDT pour faire du dévelopemment d'appli C
Je voudrais ajouter un bouton à la barre debug.
Pour cela je me suis inspire du bouton "Resume" ! J'ai fait tout pareil en changeant seulement les id et les noms mais pour le moment mon bouton devrait avoir le même comportement que le bouton Resume.
Sauf que non !
Non seulement, il est par défaut "enabled" alors qu'aucun debug n'est lance mais en plus je le vois aussi dans les autres perspectives !
J'en perds mon latin !!!
Voici le code :
Du plugin.xml:
Des sources associées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 // L'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> // La 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 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; } }Le code de la classe ResetCommandAction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 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); } }
Voilà si vous voyez quelque chose de louche ou si vous avez un tuyau ... je suis preneuse !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 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; } }
Merci
Chris
Partager