public HierarchicalGraphViewModel(IProjectService projectService, IImageExportService exportService, IGraphService graphService) : base("Hierarchical Graph") { _projectService = projectService; _exportService = exportService; _graphService = graphService; _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register<ComparisonPerformedMessage>(this, msg => { if (_projectService.AreAllVarietiesCompared) Graph = _graphService.GenerateHierarchicalGraph(_graphType, _clusteringMethod, _similarityMetric); }); Messenger.Default.Register<DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) Graph = null; }); Messenger.Default.Register<PerformingComparisonMessage>(this, msg => Graph = null); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Graph type", new TaskAreaCommandViewModel("Dendrogram", new RelayCommand(() => GraphType = HierarchicalGraphType.Dendrogram)), new TaskAreaCommandViewModel("Tree", new RelayCommand(() => GraphType = HierarchicalGraphType.Tree)))); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Clustering method", new TaskAreaCommandViewModel("UPGMA", new RelayCommand(() => ClusteringMethod = ClusteringMethod.Upgma)), new TaskAreaCommandViewModel("Neighbor-joining", new RelayCommand(() => ClusteringMethod = ClusteringMethod.NeighborJoining)))); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Similarity metric", new TaskAreaCommandViewModel("Lexical", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Lexical)), new TaskAreaCommandViewModel("Phonetic", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Phonetic)))); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Export graph", new RelayCommand(Export, CanExport)))); _graphType = HierarchicalGraphType.Dendrogram; }
public NetworkGraphViewModel(IProjectService projectService, IImageExportService imageExportService, IGraphService graphService) : base("Network Graph") { _projectService = projectService; _imageExportService = imageExportService; _graphService = graphService; _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register <ComparisonPerformedMessage>(this, msg => Graph = _graphService.GenerateNetworkGraph(_similarityMetric)); Messenger.Default.Register <DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) { Graph = null; } }); Messenger.Default.Register <PerformingComparisonMessage>(this, msg => Graph = null); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Similarity metric", new TaskAreaCommandViewModel("Lexical", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Lexical)), new TaskAreaCommandViewModel("Phonetic", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Phonetic)))); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Export this graph", new RelayCommand(Export)))); _similarityScoreFilter = 0.7; }
public GeographicalViewModel(IProjectService projectService, IDialogService dialogService, IImportService importService, IImageExportService imageExportService, GeographicalVarietyViewModel.Factory varietyFactory) : base("Geographical") { _projectService = projectService; _dialogService = dialogService; _importService = importService; _imageExportService = imageExportService; _varietyFactory = varietyFactory; _newRegionCommand = new RelayCommand<IEnumerable<Tuple<double, double>>>(AddNewRegion); _currentClusters = new List<Cluster<Variety>>(); _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register<ComparisonPerformedMessage>(this, msg => ClusterVarieties()); Messenger.Default.Register<DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) ResetClusters(); if (_selectedRegion != null && (!_varieties.Contains(_selectedRegion.Variety) || !_selectedRegion.Variety.Regions.Contains(_selectedRegion))) SelectedRegion = null; }); Messenger.Default.Register<PerformingComparisonMessage>(this, msg => ResetClusters()); _similarityScoreThreshold = 0.7; TaskAreas.Add(new TaskAreaCommandGroupViewModel("Similarity metric", new TaskAreaCommandViewModel("Lexical", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Lexical)), new TaskAreaCommandViewModel("Phonetic", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Phonetic)))); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Import regions", new RelayCommand(ImportRegions)), new TaskAreaCommandViewModel("Export this map", new RelayCommand(Export)))); }
public HierarchicalGraphViewModel(IProjectService projectService, IImageExportService exportService, IGraphService graphService) : base("Hierarchical Graph") { _projectService = projectService; _exportService = exportService; _graphService = graphService; _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register <ComparisonPerformedMessage>(this, msg => Graph = _graphService.GenerateHierarchicalGraph(_graphType, _clusteringMethod, _similarityMetric)); Messenger.Default.Register <DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) { Graph = null; } }); Messenger.Default.Register <PerformingComparisonMessage>(this, msg => Graph = null); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Graph type", new TaskAreaCommandViewModel("Dendrogram", new RelayCommand(() => GraphType = HierarchicalGraphType.Dendrogram)), new TaskAreaCommandViewModel("Tree", new RelayCommand(() => GraphType = HierarchicalGraphType.Tree)))); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Clustering method", new TaskAreaCommandViewModel("UPGMA", new RelayCommand(() => ClusteringMethod = ClusteringMethod.Upgma)), new TaskAreaCommandViewModel("Neighbor-joining", new RelayCommand(() => ClusteringMethod = ClusteringMethod.NeighborJoining)))); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Similarity metric", new TaskAreaCommandViewModel("Lexical", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Lexical)), new TaskAreaCommandViewModel("Phonetic", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Phonetic)))); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Export this graph", new RelayCommand(Export)))); _graphType = HierarchicalGraphType.Dendrogram; }
public NetworkGraphViewModel(IProjectService projectService, IImageExportService imageExportService, IGraphService graphService) : base("Network Graph") { _projectService = projectService; _imageExportService = imageExportService; _graphService = graphService; _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register<ComparisonPerformedMessage>(this, msg => { if (_projectService.AreAllVarietiesCompared) Graph = _graphService.GenerateNetworkGraph(_similarityMetric); }); Messenger.Default.Register<DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) Graph = null; }); Messenger.Default.Register<PerformingComparisonMessage>(this, msg => Graph = null); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Similarity metric", new TaskAreaCommandViewModel("Lexical", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Lexical)), new TaskAreaCommandViewModel("Phonetic", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Phonetic)))); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Export graph", new RelayCommand(Export, CanExport)))); _similarityScoreFilter = 0.7; }
public GlobalCorrespondencesViewModel(IProjectService projectService, IBusyService busyService, IDialogService dialogService, IImageExportService imageExportService, IGraphService graphService, WordPairsViewModel.Factory wordPairsFactory, WordPairViewModel.Factory wordPairFactory) : base("Global Correspondences") { _projectService = projectService; _busyService = busyService; _dialogService = dialogService; _imageExportService = imageExportService; _graphService = graphService; _wordPairFactory = wordPairFactory; _selectedVarieties = new HashSet <Variety>(); _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register <ComparisonPerformedMessage>(this, msg => GenerateGraph()); Messenger.Default.Register <DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) { ClearGraph(); } }); Messenger.Default.Register <PerformingComparisonMessage>(this, msg => ClearGraph()); _findCommand = new RelayCommand(Find); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Syllable position", new TaskAreaCommandViewModel("Onset", new RelayCommand(() => SyllablePosition = SyllablePosition.Onset)), new TaskAreaCommandViewModel("Nucleus", new RelayCommand(() => SyllablePosition = SyllablePosition.Nucleus)), new TaskAreaCommandViewModel("Coda", new RelayCommand(() => SyllablePosition = SyllablePosition.Coda)))); _correspondenceFilter = new TaskAreaIntegerViewModel("Frequency threshold"); _correspondenceFilter.PropertyChanging += _correspondenceFilter_PropertyChanging; _correspondenceFilter.PropertyChanged += _correspondenceFilter_PropertyChanged; TaskAreas.Add(_correspondenceFilter); TaskAreas.Add(new TaskAreaItemsViewModel("Common tasks", new TaskAreaCommandViewModel("Find words", _findCommand), new TaskAreaItemsViewModel("Sort word pairs by", new TaskAreaCommandGroupViewModel( new TaskAreaCommandViewModel("Gloss", new RelayCommand(() => _observedWordPairs.UpdateSort("Meaning.Gloss", ListSortDirection.Ascending))), new TaskAreaCommandViewModel("Similarity", new RelayCommand(() => _observedWordPairs.UpdateSort("PhoneticSimilarityScore", ListSortDirection.Descending))))), new TaskAreaCommandViewModel("Select varieties", new RelayCommand(SelectVarieties)) )); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Export chart", new RelayCommand(ExportChart, CanExportChart)))); _observedWordPairs = wordPairsFactory(); _observedWordPairs.IncludeVarietyNamesInSelectedText = true; _observedWordPairs.UpdateSort("Meaning.Gloss", ListSortDirection.Ascending); }
public GlobalCorrespondencesViewModel(IProjectService projectService, IBusyService busyService, IDialogService dialogService, IImageExportService imageExportService, IGraphService graphService, WordPairsViewModel.Factory wordPairsFactory, WordPairViewModel.Factory wordPairFactory) : base("Global Correspondences") { _projectService = projectService; _busyService = busyService; _dialogService = dialogService; _imageExportService = imageExportService; _graphService = graphService; _wordPairFactory = wordPairFactory; _selectedVarieties = new HashSet<Variety>(); _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register<ComparisonPerformedMessage>(this, msg => GenerateGraph()); Messenger.Default.Register<DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) ClearGraph(); }); Messenger.Default.Register<PerformingComparisonMessage>(this, msg => ClearGraph()); _findCommand = new RelayCommand(Find); TaskAreas.Add(new TaskAreaCommandGroupViewModel("Syllable position", new TaskAreaCommandViewModel("Onset", new RelayCommand(() => SyllablePosition = SyllablePosition.Onset)), new TaskAreaCommandViewModel("Nucleus", new RelayCommand(() => SyllablePosition = SyllablePosition.Nucleus)), new TaskAreaCommandViewModel("Coda", new RelayCommand(() => SyllablePosition = SyllablePosition.Coda)))); _correspondenceFilter = new TaskAreaIntegerViewModel("Frequency threshold"); _correspondenceFilter.PropertyChanging += _correspondenceFilter_PropertyChanging; _correspondenceFilter.PropertyChanged += _correspondenceFilter_PropertyChanged; TaskAreas.Add(_correspondenceFilter); TaskAreas.Add(new TaskAreaItemsViewModel("Common tasks", new TaskAreaCommandViewModel("Find words", _findCommand), new TaskAreaItemsViewModel("Sort word pairs by", new TaskAreaCommandGroupViewModel( new TaskAreaCommandViewModel("Gloss", new RelayCommand(() => _observedWordPairs.UpdateSort("Meaning.Gloss", ListSortDirection.Ascending))), new TaskAreaCommandViewModel("Similarity", new RelayCommand(() => _observedWordPairs.UpdateSort("PhoneticSimilarityScore", ListSortDirection.Descending))))), new TaskAreaCommandViewModel("Select varieties", new RelayCommand(SelectVarieties)) )); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Export chart", new RelayCommand(ExportChart, CanExportChart)))); _observedWordPairs = wordPairsFactory(); _observedWordPairs.IncludeVarietyNamesInSelectedText = true; _observedWordPairs.UpdateSort("Meaning.Gloss", ListSortDirection.Ascending); }
public MainWindowViewModel(IProjectService projectService, IDialogService dialogService, IImportService importService, IExportService exportService, IImageExportService imageExportService, IAnalysisService analysisService, InputViewModel input, CompareViewModel compare, AnalyzeViewModel analyze) : base("Cog", input, compare, analyze) { _dialogService = dialogService; _importService = importService; _exportService = exportService; _imageExportService = imageExportService; _projectService = projectService; _analysisService = analysisService; NewCommand = new RelayCommand(New); OpenCommand = new RelayCommand(Open); SaveCommand = new RelayCommand(Save, CanSave); SaveAsCommand = new RelayCommand(SaveAs); ImportWordListsFromFileCommand = new RelayCommand(ImportWordListsFromFile); ImportWordListsFromClipboardCommand = new RelayCommand(ImportWordListsFromClipboard, CanImportWordListsFromClipboard); ImportGeographicRegionsCommand = new RelayCommand(ImportGeographicRegions); ExportWordListsCommand = new RelayCommand(ExportWordLists, CanExportWordLists); ExportSimilarityMatrixCommand = new RelayCommand(ExportSimilarityMatrix, CanExportSimilarityMatrix); ExportCognateSetsCommand = new RelayCommand(ExportCognateSets, CanExportCognateSets); ExportSegmentFrequenciesCommand = new RelayCommand(ExportSegmentFrequencies, CanExportSegmentFrequencies); ExportHierarchicalGraphCommand = new RelayCommand(ExportHierarchicalGraph, CanExportHierarchicalGraph); ExportNetworkGraphCommand = new RelayCommand(ExportNetworkGraph, CanExportNetworkGraph); ExportGlobalCorrespondencesChartCommand = new RelayCommand(ExportGlobalCorrespondencesChart, CanExportGlobalCorrespondencesChart); PerformComparisonCommand = new RelayCommand(PerformComparison, CanPerformComparison); RunStemmerCommand = new RelayCommand(RunStemmer, CanRunStemmer); AboutCommand = new RelayCommand(ShowAbout); ShowTutorialCommand = new RelayCommand(() => Process.Start("https://github.com/sillsdev/cog/wiki/Cog-Tutorial")); ShowGettingStartedCommand = new RelayCommand(ShowGettingStarted); foreach (ContainerViewModelBase childView in Views.OfType <ContainerViewModelBase>()) { childView.PropertyChanging += childView_PropertyChanging; } PropertyChanging += OnPropertyChanging; ICommand nullCommand = new RelayCommand(() => {}, () => false); _findCommand = nullCommand; Messenger.Default.Register <SwitchViewMessage>(this, HandleSwitchView); Messenger.Default.Register <HookFindMessage>(this, msg => FindCommand = msg.FindCommand ?? nullCommand); }
public MainWindowViewModel(IProjectService projectService, IDialogService dialogService, IImportService importService, IExportService exportService, IImageExportService imageExportService, IAnalysisService analysisService, InputViewModel input, CompareViewModel compare, AnalyzeViewModel analyze) : base("Cog", input, compare, analyze) { _dialogService = dialogService; _importService = importService; _exportService = exportService; _imageExportService = imageExportService; _projectService = projectService; _analysisService = analysisService; _newCommand = new RelayCommand(New); _openCommand = new RelayCommand(Open); _saveCommand = new RelayCommand(Save, CanSave); _saveAsCommand = new RelayCommand(SaveAs); _importWordListsCommand = new RelayCommand(ImportWordLists); _importGeographicRegionsCommand = new RelayCommand(ImportGeographicRegions); _exportWordListsCommand = new RelayCommand(ExportWordLists, CanExportWordLists); _exportSimilarityMatrixCommand = new RelayCommand(ExportSimilarityMatrix, CanExportSimilarityMatrix); _exportCognateSetsCommand = new RelayCommand(ExportCognateSets, CanExportCognateSets); _exportSegmentFrequenciesCommand = new RelayCommand(ExportSegmentFrequencies, CanExportSegmentFrequencies); _exportHierarchicalGraphCommand = new RelayCommand(ExportHierarchicalGraph, CanExportHierarchicalGraph); _exportNetworkGraphCommand = new RelayCommand(ExportNetworkGraph, CanExportNetworkGraph); _exportGlobalCorrespondencesChartCommand = new RelayCommand(ExportGlobalCorrespondencesChart, CanExportGlobalCorrespondencesChart); _performComparisonCommand = new RelayCommand(PerformComparison, CanPerformComparison); _runStemmerCommand = new RelayCommand(RunStemmer, CanRunStemmer); _aboutCommand = new RelayCommand(ShowAbout); _showTutorialCommand = new RelayCommand(() => Process.Start("https://github.com/sillsdev/cog/wiki/Cog-Tutorial")); _showGettingStartedCommand = new RelayCommand(ShowGettingStarted); foreach (ContainerViewModelBase childView in Views.OfType<ContainerViewModelBase>()) childView.PropertyChanging += childView_PropertyChanging; PropertyChanging += OnPropertyChanging; _nullCommand = new RelayCommand(() => {}, () => false); _findCommand = _nullCommand; Messenger.Default.Register<SwitchViewMessage>(this, HandleSwitchView); Messenger.Default.Register<HookFindMessage>(this, msg => FindCommand = msg.FindCommand ?? _nullCommand); }
public GeographicalViewModel(IProjectService projectService, IDialogService dialogService, IImportService importService, IImageExportService imageExportService, GeographicalVarietyViewModel.Factory varietyFactory) : base("Geographical") { _projectService = projectService; _dialogService = dialogService; _importService = importService; _imageExportService = imageExportService; _varietyFactory = varietyFactory; _newRegionCommand = new RelayCommand <IEnumerable <Tuple <double, double> > >(AddNewRegion); _currentClusters = new List <Cluster <Variety> >(); _projectService.ProjectOpened += _projectService_ProjectOpened; Messenger.Default.Register <ComparisonPerformedMessage>(this, msg => ClusterVarieties()); Messenger.Default.Register <DomainModelChangedMessage>(this, msg => { if (msg.AffectsComparison) { ResetClusters(); } if (_selectedRegion != null && (!_varieties.Contains(_selectedRegion.Variety) || !_selectedRegion.Variety.Regions.Contains(_selectedRegion))) { SelectedRegion = null; } }); Messenger.Default.Register <PerformingComparisonMessage>(this, msg => ResetClusters()); _similarityScoreThreshold = 0.7; TaskAreas.Add(new TaskAreaCommandGroupViewModel("Similarity metric", new TaskAreaCommandViewModel("Lexical", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Lexical)), new TaskAreaCommandViewModel("Phonetic", new RelayCommand(() => SimilarityMetric = SimilarityMetric.Phonetic)))); TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks", new TaskAreaCommandViewModel("Import regions", new RelayCommand(ImportRegions)), new TaskAreaCommandViewModel("Export map", new RelayCommand(Export)))); }
public ExportController(IImageExportService imageExportService) { _imageExportService = imageExportService; }