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(); }
private void AddPage() { var template = new PageTemplate(); var page = new AnalysisPageViewModel(template, _analyser); page.OnDelete += PageOnOnDelete; _pages.Add(page); _viewTemplate.Add(template); UpdateCanBeDeleted(); }
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(); }
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(); }
private void PageOnOnDelete(AnalysisPageViewModel analysisPageViewModel) { _pages.Remove(analysisPageViewModel); _viewTemplate.Remove(analysisPageViewModel.Template); UpdateCanBeDeleted(); }