Bonjour,
Je voudrais savoir s'il y a un moyen d'écouter Eclipse et de choper toutes les commandes qu'ils executent ?
Les commandes style "make all" ...
D'avance merci, je ne sais vraiment pas dans quel sens chercher !
Bonjour,
Je voudrais savoir s'il y a un moyen d'écouter Eclipse et de choper toutes les commandes qu'ils executent ?
Les commandes style "make all" ...
D'avance merci, je ne sais vraiment pas dans quel sens chercher !
Salut,
la méthode addExecutionListener(IExecutionListener listener) de la classe ICommandService. te permettra de faire ça.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Bonjour,
suite à ta réponse j'ai ajouté un point d'extension org.eclipse.ui.startup:
Le listener est bien créé au startup de mon appli.
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 public class ActivateListenerCommands implements IStartup { @Override public void earlyStartup() { ICommandService commandService = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class); commandService.addExecutionListener(new IExecutionListener() { @Override public void notHandled(String commandId, NotHandledException exception) { System.out.println("notHandled"); } @Override public void postExecuteFailure(String commandId, ExecutionException exception) { System.out.println("postExecuteFailure"); } @Override public void postExecuteSuccess(String commandId, Object returnValue) { System.out.println("postExecuteSuccess"); } @Override public void preExecute(String commandId, ExecutionEvent event) { System.out.println("preExecute"); } }); } }
Mais je ne passe jamais dans les méthodes du listener... une idée ?
Merci en tout cas !
Salut,
À tester aussi, tu as la classe ExternalActionManager (si jamais tu as un mélange d'actions et de commandes dans ton application RCP). Elle te permettra d'ajouter un listener sur les changements de propriétés des actions. Du coup, il te faut voir les états qui sont renvoyés par ce listener (pas testé pour l'instant).
Tu aurais donc un code qui ressemble à ça pour tes actions:Voilà, à+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ExternalActionManager.getInstance().getCallback().addPropertyChangeListener("my.identifier", new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { ... } });
Gueritarish
Pas de questions technique par MP, les forums sont là pour ça.
Gueritarish,
et si je ne connais pas les actions ?
Parce que ce qui me pose justement problème ce sont les commandes et actions que je n'ai pas développées et que je souhaite tracer quand même.
Je surcharge un IDE eclipse, donc toutes les actions CDT par exemple j'en hérite .. (build project, clean project...)
a+
Ça va être vachement plus délicat...
Je ne connais pas de mécanismes pour accéder à l'ensemble des actions (ce qui ne veut absolument pas dire qu'un tel mécanisme n'existe pas...).
Après, ce que tu peux faire c'est parcourir les extensions pour le point d'extension org.eclipse.ui.actionSets et garder ceux qui concerne CDT, mais ça reste un peu bancal (je pense notamment aux actions qui sont ajouté dans le code)...
J'ai pas mieux pour l'instant
Pas de questions technique par MP, les forums sont là pour ça.
Si les actions que tu veux monitorer sont des jobs (généralement le cas pour les builds/refactorings & cie), alors tu peux récupérer le JobManager et y installer un JobChangedListener.
Fais attention en implémentant ce genre de listener globaux, il vont tourner très très très souvent, donc il faut faire attention à ce qu'ils ne soient pas gourmand en temps, surtout si quand ils sont appelés pour rien.
Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
Follow me on twitter
Je récupère bien les jobs de build, clean.... mais je ne récupère que peu d'information sur ce job : Son nom par ex (Rebuilding selected project...), c'est déjà pas mal mais puis-je m'y fier pour récupérer que ceux que je veux logger ?
ex:
en tout cas je vais creuser par là, Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(event.getJob().getName().equalsIgnoreCase("Rebuilding selected project...")){ //blabla }
Le nom, je ne pense pas qu'il faut s'y fier, d'autant plus que ca ressemble surtout a un label, qui est internationalisable.
Peut-etre ces actions ont-elles des types specifiques pour leurs job. Auquel cas tu pourrais essayer de regarder le type et de les caster.
Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
Follow me on twitter
Hello !
alors oui les jobs ont des types spécifiques, par exemple : AutoBuildJob MAIS ce sont des types non visibles "The type AutoBuildJob is not visible"
Voilà qui clos le débat je crois !
Tant pis ! merci pour votre aide quand même
Chris
Salut,
et en faisant :
est-ce que tu ne pourrais pas faire ce que tu cherches à faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 org.eclipse.core.resources.ResourcesPlugin.getWorkspace().addResourceChangeListener(new IResourceChangeListener() { public void resourceChanged(IResourceChangeEvent event) { System.out.println(event.getType()); // pour les types d'évenement voir les constantes dans IResourceChangeVent } };
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Hello Joel !
Avec ton code, je ne différencie pas le "build" du "rebuild", à la rigueur passe..
Mais je ne vois pas passer le "clean" par exemple, ni le "build all configurations" par exemple.
Mais merci
Avec IResourceChangeEvent.getBuildKind(), tu peux connaitre le type de build (AUTO, FULL, INCREMENTAL, ou suite à un CLEAN) : je ne vois pas trop ce que tu appelles rebuid par contre.
Je suppose qu'un type PRE_BUILD avec un buildKind CLEAN_BUILD devrait signifier "après clean" : à vérifier...
le "Build all configurations" doit pouvoir se traiter en trouvant comment récupérer ce qui est buildé (par getResource() je pense) et en le comparant à une liste de projets : à mon avis, tu n'auras pas un type particulier...
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
getBuildKind()
"Returns the kind of build that caused this event, or 0 if not applicable to this type of event."
J'ai toujours 0 ...
Mmm... c'est censé vouloir dire qu'il n'y a pas de buildKind ?! Du coups je ne sais pas trop ce que ça signifie.
En debug, tu pourrais mettre un break point et regarder d'ou vient l'appel (la stacktrace), c'est peut être normal dans ton cas... et tu pourras l'interpréter du coup.
Si je regardes le code, je vois bien le passage du buildKind adéquate, par exemple pour la build auto.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager