コード例 #1
0
        public AnalysisViewModel(IDispatcher dispatcher,
                                 AnalysisViewTemplate viewTemplate,
                                 IAnalysis analyser,
                                 IAnalysisStorage analysisStorage,
                                 IPluginLoader pluginLoader)
        {
            _dispatcher             = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher));
            _analyser               = analyser ?? throw new ArgumentNullException(nameof(analyser));
            _analysisStorage        = analysisStorage ?? throw new ArgumentNullException(nameof(analysisStorage));
            _viewTemplate           = viewTemplate ?? throw new ArgumentNullException(nameof(viewTemplate));
            _pluginLoader           = pluginLoader ?? throw new ArgumentNullException(nameof(pluginLoader));
            _pages                  = new ObservableCollection <AnalysisPageViewModel>();
            _addPageCommand         = new DelegateCommand(AddNewPage);
            _removeCommand          = new DelegateCommand(RemoveThis);
            _captureSnapshotCommand = new DelegateCommand2(CaptureSnapshot)
            {
                CanBeExecuted = true
            };

            if (viewTemplate.Pages.Any())
            {
                foreach (var pageTemplate in viewTemplate.Pages)
                {
                    // TODO: Solve this conundrum!
                    AddPage((PageTemplate)pageTemplate);
                }
            }
            else
            {
                AddNewPage();
            }

            _selectedPage = _pages.FirstOrDefault();
        }
コード例 #2
0
        private void AddPage()
        {
            var template = new PageTemplate();
            var page     = new AnalysisPageViewModel(template, _analyser);

            page.OnDelete += PageOnOnDelete;

            _pages.Add(page);
            _viewTemplate.Add(template);

            UpdateCanBeDeleted();
        }
コード例 #3
0
        public AnalysisViewModel(IDispatcher dispatcher,
                                 AnalysisViewTemplate viewTemplate,
                                 IAnalysis analyser,
                                 IAnalysisStorage analysisStorage,
                                 IPluginLoader pluginLoader)
        {
            _dispatcher             = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher));
            _analyser               = analyser ?? throw new ArgumentNullException(nameof(analyser));
            _analysisStorage        = analysisStorage ?? throw new ArgumentNullException(nameof(analysisStorage));
            _viewTemplate           = viewTemplate ?? throw new ArgumentNullException(nameof(viewTemplate));
            _pluginLoader           = pluginLoader ?? throw new ArgumentNullException(nameof(pluginLoader));
            _pages                  = new ObservableCollection <AnalysisPageViewModel>();
            _addPageCommand         = new DelegateCommand(AddPage);
            _removeCommand          = new DelegateCommand(RemoveThis);
            _captureSnapshotCommand = new DelegateCommand2(CaptureSnapshot)
            {
                CanBeExecuted = true
            };

            AddPage();
            _selectedPage = _pages.FirstOrDefault();
        }
コード例 #4
0
        public AnalysisViewModel(IDispatcher dispatcher,
                                 AnalysisViewTemplate viewTemplate,
                                 IAnalysis analyser,
                                 IAnalysisStorage analysisStorage)
        {
            if (dispatcher == null)
            {
                throw new ArgumentNullException(nameof(dispatcher));
            }
            if (viewTemplate == null)
            {
                throw new ArgumentNullException(nameof(viewTemplate));
            }
            if (analyser == null)
            {
                throw new ArgumentNullException(nameof(analyser));
            }
            if (analysisStorage == null)
            {
                throw new ArgumentNullException(nameof(analysisStorage));
            }

            _dispatcher             = dispatcher;
            _analyser               = analyser;
            _analysisStorage        = analysisStorage;
            _viewTemplate           = viewTemplate;
            _pages                  = new ObservableCollection <AnalysisPageViewModel>();
            _addPageCommand         = new DelegateCommand(AddPage);
            _removeCommand          = new DelegateCommand(RemoveThis);
            _captureSnapshotCommand = new DelegateCommand2(CaptureSnapshot)
            {
                CanBeExecuted = true
            };
            _name = "Unsaved analysis";

            AddPage();
            _selectedPage = _pages.FirstOrDefault();
        }
コード例 #5
0
 private void PageOnOnDelete(AnalysisPageViewModel analysisPageViewModel)
 {
     _pages.Remove(analysisPageViewModel);
     _viewTemplate.Remove(analysisPageViewModel.Template);
     UpdateCanBeDeleted();
 }