public void VerifyThatPersonChangeEventsAreProcessed()
        {
            var viewModel = new ObjectBrowserViewModel(this.session.Object, this.thingDialogNavigationService.Object, this.pluginSettingsService.Object);

            this.person.GivenName = "Jane";
            CDPMessageBus.Current.SendObjectChangeEvent(this.person, EventKind.Updated);

            Assert.AreEqual("Jane Doe", viewModel.Person);
        }
        /// <summary>
        /// returns a new instance of the <see cref="ObjectBrowserViewModel"/> class
        /// </summary>
        /// <param name="session">The <see cref="ISession"/></param>
        /// <param name="thingDialogNavigationService">The <see cref="IThingDialogNavigationService"/></param>
        /// <param name="panelNavigationService">The <see cref="IPanelNavigationService"/></param>
        /// <param name="dialogNavigationService">The <see cref="IDialogNavigationService"/></param>
        /// <returns>An instance of the <see cref="ObjectBrowserViewModel"/> class</returns>
        public static IPanelViewModel InstantiatePanelViewModel(ISession session, IThingDialogNavigationService thingDialogNavigationService, IPanelNavigationService panelNavigationService, IDialogNavigationService dialogNavigationService, IPluginSettingsService pluginSettingsService)
        {
            var stopWatch = Stopwatch.StartNew();
            var viewModel = new ObjectBrowserViewModel(session, thingDialogNavigationService, pluginSettingsService);

            stopWatch.Stop();
            Logger.Info("The Object Browser opened in {0}", stopWatch.Elapsed.ToString("hh':'mm':'ss'.'fff"));

            return(viewModel);
        }
        public void VerifyThatPropertiesAreSet()
        {
            var viewModel = new ObjectBrowserViewModel(this.session.Object, this.thingDialogNavigationService.Object, this.pluginSettingsService.Object);

            Assert.AreEqual("COMET Object Browser", viewModel.Caption);
            Assert.AreEqual("John Doe", viewModel.Person);
            Assert.AreEqual("http://www.rheagroup.com/\nJohn Doe", viewModel.ToolTip);
            Assert.IsNotEmpty(viewModel.Sessions);
            Assert.AreNotEqual(Guid.Empty, viewModel.Identifier);
            Assert.AreEqual("http://www.rheagroup.com/", viewModel.DataSource);
        }
 public ObjectBrowser(ObjectBrowserViewModel viewModel)
 {
     ViewModel = viewModel;
     InitializeComponent();
 }
        public void VerifyThatDisposeCleansUpSubscriptions()
        {
            var viewModel = new ObjectBrowserViewModel(this.session.Object, this.thingDialogNavigationService.Object, this.pluginSettingsService.Object);

            Assert.DoesNotThrow(() => viewModel.Dispose());
        }
Example #6
0
    public override IRootDock CreateLayout()
    {
        // Tool Windows - Libraries

        var styleLibraryViewModel = new StyleLibraryViewModel()
        {
            Id    = "StyleLibrary",
            Title = "Styles"
        };

        var groupLibraryViewModel = new GroupLibraryViewModel()
        {
            Id    = "GroupLibrary",
            Title = "Groups"
        };

        var databaseLibraryViewModel = new DatabaseLibraryViewModel()
        {
            Id    = "DatabaseLibrary",
            Title = "Databases"
        };

        var templateLibraryViewModel = new TemplateLibraryViewModel()
        {
            Id    = "TemplateLibrary",
            Title = "Templates"
        };

        var scriptLibraryViewModel = new ScriptLibraryViewModel()
        {
            Id    = "ScriptLibrary",
            Title = "Scripts"
        };

        // Tool Windows - Options

        var projectOptionsViewModel = new ProjectOptionsViewModel()
        {
            Id    = "ProjectOptions",
            Title = "Options"
        };

        var rendererOptionsViewModel = new RendererOptionsViewModel()
        {
            Id    = "RendererOptions",
            Title = "Renderer"
        };

        var zoomOptionsViewModel = new ZoomOptionsViewModel()
        {
            Id    = "ZoomOptions",
            Title = "Zoom"
        };

        var imageOptionsViewModel = new ImageOptionsViewModel()
        {
            Id    = "ImageOptions",
            Title = "Images"
        };

        // Tool Windows - Properties

        var pagePropertiesViewModel = new PagePropertiesViewModel()
        {
            Id    = "PageProperties",
            Title = "Page"
        };

        var shapePropertiesViewModel = new ShapePropertiesViewModel()
        {
            Id    = "ShapeProperties",
            Title = "Shape"
        };

        var stylePropertiesViewModel = new StylePropertiesViewModel()
        {
            Id    = "StyleProperties",
            Title = "Style"
        };

        var dataPropertiesViewModel = new DataPropertiesViewModel()
        {
            Id    = "DataProperties",
            Title = "Data"
        };

        var statePropertiesViewModel = new StatePropertiesViewModel()
        {
            Id    = "StateProperties",
            Title = "State"
        };

        // Tool Windows

        var projectExplorerViewModel = new ProjectExplorerViewModel()
        {
            Id    = "ProjectExplorer",
            Title = "Project Explorer"
        };

        var objectBrowserViewModel = new ObjectBrowserViewModel()
        {
            Id    = "ObjectBrowser",
            Title = "Object Browser"
        };

        // Home Perspective

        var leftTopToolDock = new ToolDock
        {
            ActiveDockable   = projectExplorerViewModel,
            VisibleDockables = CreateList <IDockable>(
                projectExplorerViewModel,
                objectBrowserViewModel,
                scriptLibraryViewModel),
            Alignment = Alignment.Left,
            GripMode  = GripMode.Visible
        };

        var leftBottomToolDock = new ToolDock
        {
            Proportion       = 0.35,
            ActiveDockable   = pagePropertiesViewModel,
            VisibleDockables = CreateList <IDockable>(
                pagePropertiesViewModel,
                projectOptionsViewModel,
                rendererOptionsViewModel,
                zoomOptionsViewModel,
                imageOptionsViewModel),
            Alignment = Alignment.Right,
            GripMode  = GripMode.Visible
        };

        var rightTopToolDock = new ToolDock
        {
            Proportion       = 0.35,
            ActiveDockable   = shapePropertiesViewModel,
            VisibleDockables = CreateList <IDockable>(
                shapePropertiesViewModel,
                dataPropertiesViewModel,
                statePropertiesViewModel,
                templateLibraryViewModel),
            Alignment = Alignment.Right,
            GripMode  = GripMode.Visible
        };

        var rightBottomToolDock = new ToolDock
        {
            ActiveDockable   = stylePropertiesViewModel,
            VisibleDockables = CreateList <IDockable>(
                stylePropertiesViewModel,
                styleLibraryViewModel,
                groupLibraryViewModel,
                databaseLibraryViewModel),
            Alignment = Alignment.Right,
            GripMode  = GripMode.Visible
        };

        var leftDock = new ProportionalDock
        {
            Proportion       = 0.20,
            Orientation      = Orientation.Vertical,
            ActiveDockable   = leftTopToolDock,
            VisibleDockables = CreateList <IDockable>
                               (
                leftTopToolDock,
                new ProportionalDockSplitter(),
                leftBottomToolDock
                               )
        };

        var rightDock = new ProportionalDock
        {
            Proportion       = 0.20,
            Orientation      = Orientation.Vertical,
            ActiveDockable   = rightTopToolDock,
            VisibleDockables = CreateList <IDockable>
                               (
                rightTopToolDock,
                new ProportionalDockSplitter(),
                rightBottomToolDock
                               )
        };

        var documentDock = new PageDocumentDock
        {
            Id                = "PageDocumentDock",
            Title             = "Pages",
            ActiveDockable    = null,
            VisibleDockables  = CreateList <IDockable>(),
            CanCreateDocument = true,
            IsCollapsable     = false
        };

        var homeDock = new ProportionalDock
        {
            Id               = "HomeDock",
            Orientation      = Orientation.Horizontal,
            ActiveDockable   = documentDock,
            VisibleDockables = CreateList <IDockable>
                               (
                leftDock,
                new ProportionalDockSplitter(),
                documentDock,
                new ProportionalDockSplitter(),
                rightDock
                               ),
            IsCollapsable = false
        };

        var homeMenuViewModel = new HomeMenuViewModel()
        {
            Id   = "HomeMenuView",
            Dock = DockMode.Top
        };

        var homeStatusBarViewModel = new HomeStatusBarViewModel()
        {
            Id   = "HomeStatusBarView",
            Dock = DockMode.Bottom
        };

        var homeViewModel = new HomeViewModel
        {
            Id               = "HomeView",
            Dock             = DockMode.Center,
            ActiveDockable   = homeDock,
            VisibleDockables = CreateList <IDockable>(homeDock),
            IsCollapsable    = false
        };

        var homeDockDock = new DockDock()
        {
            Id               = "HomeDockDock",
            LastChildFill    = true,
            VisibleDockables = CreateList <IDockable>
                               (
                homeMenuViewModel,
                homeStatusBarViewModel,
                homeViewModel
                               ),
            IsCollapsable = false
        };

        // Dashboard Perspective

        var dashboardMenuViewModel = new DashboardMenuViewModel()
        {
            Id            = "DashboardMenuView",
            Title         = "Dashboard Menu",
            Dock          = DockMode.Top,
            IsCollapsable = false
        };

        var dashboardViewModel = new DashboardViewModel
        {
            Id            = "DashboardView",
            Title         = "Dashboard",
            Dock          = DockMode.Center,
            IsCollapsable = false
        };

        var dashboardDockDock = new DockDock()
        {
            Id               = "DashboardDock",
            Proportion       = 1.0,
            LastChildFill    = true,
            VisibleDockables = CreateList <IDockable>
                               (
                dashboardMenuViewModel,
                dashboardViewModel
                               ),
            IsCollapsable = false
        };

        // Root Perspective

        var dashboardRootDock = CreateRootDock();

        dashboardRootDock.Id               = "Dashboard";
        dashboardRootDock.ActiveDockable   = dashboardDockDock;
        dashboardRootDock.DefaultDockable  = dashboardDockDock;
        dashboardRootDock.VisibleDockables = CreateList <IDockable>(dashboardDockDock);
        dashboardRootDock.IsCollapsable    = false;

        var homeRootDock = CreateRootDock();

        homeRootDock.Id               = "Home";
        homeRootDock.ActiveDockable   = homeDockDock;
        homeRootDock.DefaultDockable  = homeDockDock;
        homeRootDock.VisibleDockables = CreateList <IDockable>(homeDockDock);
        homeRootDock.IsCollapsable    = false;

        // Root Dock

        var rootDock = CreateRootDock();

        rootDock.Id               = "Root";
        rootDock.ActiveDockable   = dashboardRootDock;
        rootDock.DefaultDockable  = dashboardRootDock;
        rootDock.VisibleDockables = CreateList <IDockable>(dashboardRootDock, homeRootDock);
        rootDock.IsCollapsable    = false;

        _rootDock  = rootDock;
        _pagesDock = documentDock;
        _homeDock  = homeDock;

        return(rootDock);
    }
Example #7
0
        public async void CreateWindows()
        {
            const int margin     = 5;
            const int leftOffset = 150;
            const int topOffset  = 150;

            var isInEditMode = _dataProvider.CommonSettings.AppMode == AppMode.Editor;

            var mainViewModel = new MainViewModel(_dataProvider);

            _mainWindow = new MainWindow(mainViewModel);

            var objectBrowserViewModel = new ObjectBrowserViewModel(_dataProvider);

            _objectBrowser = new ObjectBrowser(objectBrowserViewModel)
            {
                Height = _mainWindow.Height
            };

            var toolsPanelViewModel = new ToolsPanelViewModel(_dataProvider);

            _toolsPanel = new ToolsPanel(toolsPanelViewModel);

            var variablesViewerViewModel = new VariablesViewerViewModel(_dataProvider);

            _variablesViewer = new VariablesViewer(variablesViewerViewModel);

            if (_dataProvider.CommonSettings.ObjectBrowserSettings.IsSet)
            {
                _objectBrowser.Left = _dataProvider.CommonSettings.ObjectBrowserSettings.Left;
                _objectBrowser.Top  = _dataProvider.CommonSettings.ObjectBrowserSettings.Top;
            }
            else
            {
                _objectBrowser.Left = leftOffset;
                _objectBrowser.Top  = topOffset + _toolsPanel.Height + margin;
            }

            _toolsPanel.Width = _objectBrowser.Width + _mainWindow.Width + margin;
            if (_dataProvider.CommonSettings.ToolsPanelSettings.IsSet)
            {
                _toolsPanel.Left = _dataProvider.CommonSettings.ToolsPanelSettings.Left;
                _toolsPanel.Top  = _dataProvider.CommonSettings.ToolsPanelSettings.Top;
            }
            else
            {
                _toolsPanel.Left = leftOffset;
                _toolsPanel.Top  = topOffset;
            }

            _variablesViewer.Height = _toolsPanel.Height + _mainWindow.Height + margin;
            if (_dataProvider.CommonSettings.VariablesViewerSettings.IsSet)
            {
                _variablesViewer.Left = _dataProvider.CommonSettings.VariablesViewerSettings.Left;
                _variablesViewer.Top  = _dataProvider.CommonSettings.VariablesViewerSettings.Top;
            }
            else
            {
                _variablesViewer.Left = _mainWindow.Left + _mainWindow.Width + margin;
                _variablesViewer.Top  = _toolsPanel.Top;
            }

            if (_dataProvider.CommonSettings.MainWindowSettings.IsSet)
            {
                _mainWindow.Left = _dataProvider.CommonSettings.MainWindowSettings.Left;
                _mainWindow.Top  = _dataProvider.CommonSettings.MainWindowSettings.Top;
            }
            else
            {
                _mainWindow.Left = leftOffset + _objectBrowser.Width + margin;
                _mainWindow.Top  = topOffset + _toolsPanel.Height + margin;
            }

            Application.Current.MainWindow = _mainWindow;
            _mainWindow.Activated         += GotFocus;
            _mainWindow.Closing           += OnClose;
            _mainWindow.StateChanged      += OnStateChanged;


            _toolsPanel.Closing += (sender, e) =>
            {
                e.Cancel = true;
                HideToolsPanel();
            };
            _objectBrowser.Closing += (sender, e) =>
            {
                e.Cancel = true;
                HideObjectBrowser();
            };
            _variablesViewer.Closing += (sender, e) =>
            {
                e.Cancel = true;
                HideVariablesViewer();
            };

            _toolsPanel.Hide();
            _variablesViewer.Hide();
            _objectBrowser.Hide();
            CenterMainWindow();

            _mainWindow.Show();
            SetVisibility();

            if (!_dataProvider.CommonSettings.IsSet)
            {
                await _dataProvider.DialogsManager.OpenConfiguration(_dataProvider);
            }
            else if (!isInEditMode)
            {
                await _dataProvider.DialogsManager.ShowMenu();
            }
        }