예제 #1
0
        private void MonitorExtension()
        {
            ViewModel = new ApplicationViewModel();

            ViewModel.MainMenuItems.Add(new MenuItem
            {
                Text = "主页",
                Url  = "/"
            });
            BundleRuntime.Instance.AddService <ApplicationViewModel>(ViewModel);
            _extensionHooker = new ExtensionHooker(BundleRuntime.Instance.GetFirstOrDefaultService <IExtensionManager>());
            _extensionHooker.HookExtension("MainMenu", new MainMenuExtensionHandler(ViewModel));
        }
예제 #2
0
        private void MonitorExtension()
        {
            ViewModel = new ApplicationViewModel();

            //Register pages in Shell project.
            ViewModel.MainMenuItems.Add(new MenuItem
            {
                Text = "Home",
                URL  = "/"
            });

            BundleRuntime.Instance.AddService <ApplicationViewModel>(ViewModel);
            _extensionHooker = new ExtensionHooker(BundleRuntime.Instance.GetFirstOrDefaultService <IExtensionManager>());
            _extensionHooker.HookExtension("MainMenu", new MainMenuExtensionHandler(ViewModel));
            _extensionHooker.HookExtension("SidebarMenu", new SidebarExtensionHandler(ViewModel));
        }
예제 #3
0
        public void Start(IBundleContext context)
        {
            _context = context;
            context.AddService <ICommandBusService>(
                new CommandBusService(context.GetFirstOrDefaultService <IMessageBusService>()));

            var factory = new AdapterFactoryCatalog <IEditHandler>();

            factory.RegisterFactory(new TextBoxAdapterFactory());
            context.AddService <IAdapterFactoryCatalog <IEditHandler> >(factory);
            context.AddService <IEditManager>(new EditManager(factory));
            context.AddService <IDocumentManager>(new DocumentManager());
            var layoutView = context.GetFirstOrDefaultService <IShellLayoutView>();

            _extensionManager = context.GetFirstOrDefaultService <IExtensionManager>();
            _extensionHooker  = new ExtensionHooker(_extensionManager);

            var extensionChangeHandler = new ExtensionChangeHandler(new ToolStripBuilder(),
                                                                    toolStrip =>
                                                                    layoutView.AddToolStrip((ToolStrip)toolStrip),
                                                                    toolStrip =>
                                                                    layoutView.RemoveToolStrip((ToolStrip)toolStrip));

            _extensionHooker.HookExtension(ExtensionPointNames.ToolStrip, extensionChangeHandler);

            extensionChangeHandler = new ExtensionChangeHandler(new MainMenuBuilder(),
                                                                toolStripItem => layoutView.AddMenuItem((ToolStripItem)toolStripItem),
                                                                toolStripItem => layoutView.RemoveMenuItem((ToolStripItem)toolStripItem));
            _extensionHooker.HookExtension(ExtensionPointNames.MainMenu, extensionChangeHandler);

            var docManager = _context.GetFirstOrDefaultService <IDocumentManager>();

            extensionChangeHandler = new ExtensionChangeHandler(new FileFilterBuilder(),
                                                                documentFactory => docManager.Register((IDocumentFactory)documentFactory),
                                                                documentFactory => docManager.UnRegister((IDocumentFactory)documentFactory));
            _extensionHooker.HookExtension(ExtensionPointNames.FileFilters, extensionChangeHandler);
            StartActiveControlMonitor();
        }