* Phase 2 of the initialization of commands. The source providers that
* the workbench provides are creating and registered with the above
* services. These source providers notify the services when particular
* pieces of workbench state change.
*/
final ISourceProviderService sourceProviderService = new SourceProviderService();
serviceLocator.registerService(ISourceProviderService.class,
sourceProviderService);
StartupThreading.runWithoutExceptions(new StartupRunnable() {
public void runWithException() {
final ActiveShellSourceProvider activeShellSourceProvider = new ActiveShellSourceProvider(
Workbench.this);
evaluationService.addSourceProvider(activeShellSourceProvider);
handlerService[0].addSourceProvider(activeShellSourceProvider);
contextService.addSourceProvider(activeShellSourceProvider);
menuService.addSourceProvider(activeShellSourceProvider);
sourceProviderService.registerProvider(activeShellSourceProvider);
}});
StartupThreading.runWithoutExceptions(new StartupRunnable() {
public void runWithException() {
final ActivePartSourceProvider activePartSourceProvider = new ActivePartSourceProvider(
Workbench.this);
evaluationService.addSourceProvider(activePartSourceProvider);
handlerService[0].addSourceProvider(activePartSourceProvider);
contextService.addSourceProvider(activePartSourceProvider);
menuService.addSourceProvider(activePartSourceProvider);
sourceProviderService.registerProvider(activePartSourceProvider);
}});
StartupThreading.runWithoutExceptions(new StartupRunnable() {
public void runWithException() {
final ActiveContextSourceProvider activeContextSourceProvider = new ActiveContextSourceProvider(
contextService);
evaluationService.addSourceProvider(activeContextSourceProvider);
handlerService[0].addSourceProvider(activeContextSourceProvider);
menuService.addSourceProvider(activeContextSourceProvider);
sourceProviderService.registerProvider(activeContextSourceProvider);
}});
StartupThreading.runWithoutExceptions(new StartupRunnable() {
public void runWithException() {
final CurrentSelectionSourceProvider currentSelectionSourceProvider = new CurrentSelectionSourceProvider(
Workbench.this);
evaluationService.addSourceProvider(currentSelectionSourceProvider);
handlerService[0].addSourceProvider(currentSelectionSourceProvider);
contextService.addSourceProvider(currentSelectionSourceProvider);
menuService.addSourceProvider(currentSelectionSourceProvider);
sourceProviderService.registerProvider(currentSelectionSourceProvider);
actionSetSourceProvider = new ActionSetSourceProvider();
evaluationService.addSourceProvider(actionSetSourceProvider);
handlerService[0].addSourceProvider(actionSetSourceProvider);
contextService.addSourceProvider(actionSetSourceProvider);
menuService.addSourceProvider(actionSetSourceProvider);
sourceProviderService.registerProvider(actionSetSourceProvider);
FocusControlSourceProvider focusControl = new FocusControlSourceProvider();
serviceLocator.registerService(IFocusService.class, focusControl);
evaluationService.addSourceProvider(focusControl);
handlerService[0].addSourceProvider(focusControl);
contextService.addSourceProvider(focusControl);
menuService.addSourceProvider(focusControl);
sourceProviderService.registerProvider(focusControl);
menuSourceProvider = new MenuSourceProvider();
evaluationService.addSourceProvider(menuSourceProvider);
handlerService[0].addSourceProvider(menuSourceProvider);
contextService.addSourceProvider(menuSourceProvider);
menuService.addSourceProvider(menuSourceProvider);
sourceProviderService.registerProvider(menuSourceProvider);
}});
/*
* Phase 3 of the initialization of commands. This handles the creation
* of wrappers for legacy APIs. By the time this phase completes, any