commandImageManager, commandService[0]);
commandImageService.readRegistry();
serviceLocator.registerService(ICommandImageService.class,
commandImageService);
final WorkbenchMenuService menuService = new WorkbenchMenuService(serviceLocator);
serviceLocator.registerService(IMenuService.class, menuService);
// the service must be registered before it is initialized - its
// initialization uses the service locator to address a dependency on
// the menu service
StartupThreading.runWithoutExceptions(new StartupRunnable() {
public void runWithException() {
menuService.readRegistry();
}});
/*
* 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