static void InitializeWorkbench(Workbench workbench, IWorkbenchLayout layout)
        {
            SD.Services.AddService(typeof(IWorkbench), workbench);

            SD.Services.AddService(typeof(IWinFormsService), new WinFormsService());
            SD.Services.AddService(typeof(IWinFormsToolbarService), new WinFormsToolbarService());
            SD.Services.AddService(typeof(IWinFormsMenuService), new WinFormsMenuService());
            SD.Services.AddService(typeof(IProjectService), new SDProjectService());
            SD.Services.AddService(typeof(IBuildService), new BuildService());
            SD.Services.AddService(typeof(IParserService), new ParserService());
            SD.Services.AddService(typeof(IFileService), new FileService());
            SD.Services.AddService(typeof(IStatusBarService), new StatusBarService());
            SD.Services.AddService(typeof(IMSBuildEngine), new MSBuildEngine());
            SD.Services.AddService(typeof(IDisplayBindingService), new DisplayBindingService());
            SD.Services.AddService(typeof(IBookmarkManager), new BookmarkManager());

            LanguageService.ValidateLanguage();

            TaskService.Initialize();
            CustomToolsService.Initialize();

            workbench.Initialize();
            workbench.SetMemento(PropertyService.NestedProperties(workbenchMemento));
            workbench.WorkbenchLayout = layout;

            var applicationStateInfoService = SD.GetService <ApplicationStateInfoService>();

            if (applicationStateInfoService != null)
            {
                applicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return(SD.Workbench.ActiveContent); });
            }

            WorkbenchSingleton.OnWorkbenchCreated();

            // initialize workbench-dependent services:
            NavigationService.InitializeService();

            workbench.ActiveContentChanged += delegate
            {
                //Debug.WriteLine("ActiveContentChanged to " + workbench.ActiveContent);
                LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent);
            };
            workbench.ActiveViewContentChanged += delegate
            {
                //Debug.WriteLine("ActiveViewContentChanged to " + workbench.ActiveViewContent);
                LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent);
            };
            workbench.ActiveWorkbenchWindowChanged += delegate
            {
                //Debug.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
                LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
            };
        }
Пример #2
0
        static void InitializeWorkbench(WpfWorkbench workbench, IWorkbenchLayout layout)
        {
            SD.Services.AddService(typeof(IWorkbench), workbench);

            UILanguageService.ValidateLanguage();

            TaskService.Initialize();
            Project.CustomToolsService.Initialize();

            workbench.Initialize();
            workbench.SetMemento(SD.PropertyService.NestedProperties(workbenchMemento));
            workbench.WorkbenchLayout = layout;

            // HACK: eagerly load output pad because pad services cannnot be instanciated from background threads
            SD.Services.AddService(typeof(IOutputPad), CompilerMessageView.Instance);

            var dlgMsgService = SD.MessageService as IDialogMessageService;

            if (dlgMsgService != null)
            {
                dlgMsgService.DialogSynchronizeInvoke = SD.MainThread.SynchronizingObject;
                dlgMsgService.DialogOwner             = workbench.MainWin32Window;
            }

            var applicationStateInfoService = SD.GetService <ApplicationStateInfoService>();

            if (applicationStateInfoService != null)
            {
                applicationStateInfoService.RegisterStateGetter(activeContentState, delegate {
                    return(SD.Workbench.ActiveContent);
                });
            }

            WorkbenchSingleton.OnWorkbenchCreated();

            // initialize workbench-dependent services:
            NavigationService.InitializeService();

            workbench.ActiveContentChanged += delegate {
                Debug.WriteLine("ActiveContentChanged to " + workbench.ActiveContent);
                LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent);
            };
            workbench.ActiveViewContentChanged += delegate {
                Debug.WriteLine("ActiveViewContentChanged to " + workbench.ActiveViewContent);
                LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent);
            };
            workbench.ActiveWorkbenchWindowChanged += delegate {
                Debug.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
                LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
            };
        }