Community
Participate
Working Groups
Handlers that are activated at the global level need to use their activeWhen clause to determine the correct handler if there are more than one. PW
Created attachment 142064 [details] Activate handlers that pass in core Expressions v01 If a handler is activated with a core expression, try and make sure the active handler is the active handler with the greatest priority. It involves some runAndTrack chicanery ... it both calls get on "HANDLER_PREFIX + cmdId" and an activeHandler on the EHandlerService (which is a set on that). It appears to be tracking a number of handler activations correctly now and I haven't noticed a loop ... but that's not proof. PW
(In reply to comment #1) > It involves some runAndTrack chicanery ... hehe! > It appears to be tracking a number of handler activations correctly now and I > haven't noticed a loop ... but that's not proof. If you are concerned about cyclic dependencies (infinite loops) those would be detected and logged.
Created attachment 142084 [details] Activate handlers that pass in core Expressions v03 Activate the handlers, also include more new variables for bug 283182 Most of the crazy work is done in org.eclipse.ui.LegacyHandlerService.EHandlerActivation.run() and the fragment Workbench and WorkbenchWindow have to "shuffle" to provide useful variables to the expressions. PW
(In reply to comment #3) > Created an attachment (id=142084) [details] > Activate handlers that pass in core Expressions v03 Released for I20090720-2100 PW
This is available in the current build ... we try and honour activeWhen clauses and programmatic core Expressions. PW