The code from two years back had to be upgraded to E4, and now a bunch of stuff does not work anymore. One of these is the IEvaluationService
if used like this:
<handler class="org.acme.PrintHandler" commandId="org.eclipse.ui.file.print">
<activeWhen>
<with variable="activePart">
<test property="org.acme.printable" />
</with>
</activeWhen>
</handler>
IEvaluationService service = (IEvaluationService) PlatformUI.getWorkbench().getService(IEvaluationService.class);
service.requestEvaluation("org.acme.printable");
How do I (re)trigger the evaluation of a PropertyTester
? Since E4 is really not even close to being production ready, I need a workaround for E3 (compatibility layer).
Related question - but this user was searching for the equivalent in E4, while I need one that works in E3.
Funnily enough, if I replace the <activeWhen>
tags with <enabledWhen>
it works. In that case IEventBroker#post
and IEventBroker#send
work, too.
This is a similar question. That user used Eclipse 4.2 - I tested the problem with 4.5, 4.6 and 4.7.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…