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()); }
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); }
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(); } }