public void Initialise(IDockFactory layoutFactory = null)
        {
            if (layoutFactory == null)
            {
                Factory = new DefaultLayoutFactory();
            }
            else
            {
                Factory = layoutFactory;
            }

            LoadLayout();

            foreach (var extension in _extensions)
            {
                if (extension.Value is IActivatableExtension activatable)
                {
                    activatable.BeforeActivation();
                }
            }

            _layout.WhenAnyValue(l => l.FocusedView).Subscribe(focused =>
            {
                if (focused?.Context is IDocumentTabViewModel doc)
                {
                    SelectedDocument = doc;
                }
                else
                {
                    SelectedDocument = null;
                }
            });

            foreach (var extension in _extensions)
            {
                if (extension.Value is IActivatableExtension activatable)
                {
                    activatable.Activation();
                }
            }

            foreach (var command in _commandService.GetKeyGestures())
            {
                foreach (var keyGesture in command.Value)
                {
                    _keyBindings.Add(new KeyBinding {
                        Command = command.Key.Command, Gesture = KeyGesture.Parse(keyGesture)
                    });
                }
            }

            IoC.Get <IStatusBar>().ClearText();
        }
示例#2
0
        public void Initialise(IFactory layoutFactory = null)
        {
            if (layoutFactory == null)
            {
                Factory = new DefaultLayoutFactory();
            }
            else
            {
                Factory = layoutFactory;
            }

            LoadLayout();

            foreach (var extension in _extensions)
            {
                if (extension.Value is IActivatableExtension activatable)
                {
                    activatable.BeforeActivation();
                }
            }

            foreach (var extension in _extensions)
            {
                if (extension.Value is IActivatableExtension activatable)
                {
                    activatable.Activation();
                }
            }

            foreach (var command in _commandService.GetKeyGesture())
            {
                if (command.Value != null)
                {
                    _keyBindings.Add(new KeyBinding {
                        Command = command.Key.Command, Gesture = KeyGesture.Parse(command.Value)
                    });
                }
            }

            IoC.Get <IStatusBar>().ClearText();
        }
示例#3
0
        public void Initialise(IDockFactory layoutFactory = null)
        {
            foreach (var extension in _extensions)
            {
                if (extension.Value is IActivatableExtension activatable)
                {
                    activatable.BeforeActivation();
                }
            }

            if (layoutFactory == null)
            {
                Factory = new DefaultLayoutFactory();
            }
            else
            {
                Factory = layoutFactory;
            }

            LoadLayout();

            Layout.WhenAnyValue(l => l.FocusedView).Subscribe(focused =>
            {
                if (focused is IDocumentTabViewModel doc)
                {
                    SelectedDocument = doc;
                }
                else
                {
                    SelectedDocument = null;
                }
            });

            if (Layout.Factory.ViewLocator.ContainsKey("LeftDock"))
            {
                _leftPane = Layout.Factory.ViewLocator["LeftDock"]() as ToolDock;
            }

            if (Layout.Factory.ViewLocator.ContainsKey("DocumentDock"))
            {
                _documentDock = Layout.Factory.ViewLocator["DocumentDock"]() as DocumentDock;
            }

            if (Layout.Factory.ViewLocator.ContainsKey("RightDock"))
            {
                _rightPane = Layout.Factory.ViewLocator["RightDock"]() as ToolDock;
            }

            if (Layout.Factory.ViewLocator.ContainsKey("BottomDock"))
            {
                _bottomPane = Layout.Factory.ViewLocator["BottomDock"]() as ToolDock;
            }

            foreach (var extension in _extensions)
            {
                if (extension.Value is IActivatableExtension activatable)
                {
                    activatable.Activation();
                }
            }

            foreach (var command in _commandService.GetKeyGestures())
            {
                foreach (var keyGesture in command.Value)
                {
                    _keyBindings.Add(new KeyBinding {
                        Command = command.Key.Command, Gesture = KeyGesture.Parse(keyGesture)
                    });
                }
            }

            foreach (var tool in _toolControls)
            {
                switch (tool.Value.DefaultLocation)
                {
                case Location.Bottom:
                    DockView(_bottomPane, tool.Value);
                    break;

                //case Location.BottomRight:
                //    BottomRightTabs.Tools.Add(tool);
                //    break;

                //case Location.RightBottom:
                //    RightBottomTabs.Tools.Add(tool);
                //    break;

                //case Location.RightMiddle:
                //    RightMiddleTabs.Tools.Add(tool);
                //    break;

                //case Location.RightTop:
                //    RightTopTabs.Tools.Add(tool);
                //    break;

                //case Location.MiddleTop:
                //    MiddleTopTabs.Tools.Add(tool);
                //    break;

                case Location.Left:
                    DockView(_leftPane, tool.Value);
                    break;

                case Location.Right:
                    DockView(_rightPane, tool.Value);
                    break;
                }
            }

            IoC.Get <IStatusBar>().ClearText();
        }