Ejemplo n.º 1
0
        public VarietyPairsViewModel(IProjectService projectService, IBusyService busyService, IDialogService dialogService, IExportService exportService, IAnalysisService analysisService,
                                     VarietyPairViewModel.Factory varietyPairFactory)
            : base("Variety Pairs")
        {
            _projectService     = projectService;
            _busyService        = busyService;
            _dialogService      = dialogService;
            _exportService      = exportService;
            _analysisService    = analysisService;
            _varietyPairFactory = varietyPairFactory;

            _projectService.ProjectOpened += _projectService_ProjectOpened;

            _sortPropertyName = "PhoneticSimilarityScore";
            _sortDirection    = ListSortDirection.Descending;

            Messenger.Default.Register <PerformingComparisonMessage>(this, msg =>
            {
                if (msg.VarietyPair == null)
                {
                    ClearComparison();
                }
            });
            Messenger.Default.Register <ComparisonPerformedMessage>(this, msg =>
            {
                if (msg.VarietyPair == null)
                {
                    SetSelectedVarietyPair();
                }
            });
            Messenger.Default.Register <DomainModelChangedMessage>(this, msg =>
            {
                if (msg.AffectsComparison)
                {
                    ClearComparison();
                }
            });
            Messenger.Default.Register <SwitchViewMessage>(this, HandleSwitchView);

            _findCommand = new RelayCommand(Find);
            _performComparisonCommand = new RelayCommand(PerformComparison);

            _selectedWordPairsMonitor = new SimpleMonitor();
            _varietyPairState         = VarietyPairState.NotSelected;
            TaskAreas.Add(new TaskAreaItemsViewModel("Common tasks",
                                                     new TaskAreaCommandViewModel("Compare variety pair", new RelayCommand(PerformComparison, CanPerformComparison)),
                                                     new TaskAreaCommandViewModel("Find words", _findCommand),
                                                     new TaskAreaItemsViewModel("Sort word pairs by", new TaskAreaCommandGroupViewModel(
                                                                                    new TaskAreaCommandViewModel("Similarity", new RelayCommand(() => SortWordPairsBy("PhoneticSimilarityScore", ListSortDirection.Descending))),
                                                                                    new TaskAreaCommandViewModel("Gloss", new RelayCommand(() => SortWordPairsBy("Meaning.Gloss", ListSortDirection.Ascending)))))));
            TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks",
                                                     new TaskAreaCommandViewModel("Export results for variety pair", new RelayCommand(ExportVarietyPair, CanExportVarietyPair))));
        }
Ejemplo n.º 2
0
 private void SetSelectedVarietyPair()
 {
     if (_selectedVariety1 != null && _selectedVariety2 != null && _selectedVariety1 != _selectedVariety2)
     {
         VarietyPair pair;
         if (_selectedVariety1.DomainVariety.VarietyPairs.TryGet(_selectedVariety2.DomainVariety, out pair))
         {
             _busyService.ShowBusyIndicatorUntilFinishDrawing();
             SelectedVarietyPair = _varietyPairFactory(pair, _selectedVariety1.DomainVariety == pair.Variety1);
             VarietyPairState    = VarietyPairState.SelectedAndCompared;
         }
         else
         {
             SelectedVarietyPair = null;
             VarietyPairState    = VarietyPairState.SelectedAndNotCompared;
         }
     }
     else
     {
         SelectedVarietyPair = null;
         VarietyPairState    = VarietyPairState.NotSelected;
     }
 }
Ejemplo n.º 3
0
        public VarietyPairsViewModel(IProjectService projectService, IBusyService busyService, IDialogService dialogService, IExportService exportService, IAnalysisService analysisService,
			VarietyPairViewModel.Factory varietyPairFactory)
            : base("Variety Pairs")
        {
            _projectService = projectService;
            _busyService = busyService;
            _dialogService = dialogService;
            _exportService = exportService;
            _analysisService = analysisService;
            _varietyPairFactory = varietyPairFactory;

            _projectService.ProjectOpened += _projectService_ProjectOpened;

            _sortPropertyName = "PhoneticSimilarityScore";
            _sortDirection = ListSortDirection.Descending;

            Messenger.Default.Register<ComparisonPerformedMessage>(this, msg => SetSelectedVarietyPair());
            Messenger.Default.Register<DomainModelChangedMessage>(this, msg =>
                {
                    if (msg.AffectsComparison)
                        ClearComparison();
                });
            Messenger.Default.Register<PerformingComparisonMessage>(this, msg => ClearComparison());
            Messenger.Default.Register<SwitchViewMessage>(this, HandleSwitchView);

            _findCommand = new RelayCommand(Find);

            _selectedWordPairsMonitor = new SimpleMonitor();
            _varietyPairState = VarietyPairState.NotSelected;
            TaskAreas.Add(new TaskAreaItemsViewModel("Common tasks",
                new TaskAreaCommandViewModel("Compare this variety pair", new RelayCommand(PerformComparison)),
                new TaskAreaCommandViewModel("Find words", _findCommand),
                new TaskAreaItemsViewModel("Sort word pairs by", new TaskAreaCommandGroupViewModel(
                    new TaskAreaCommandViewModel("Similarity", new RelayCommand(() => SortWordPairsBy("PhoneticSimilarityScore", ListSortDirection.Descending))),
                    new TaskAreaCommandViewModel("Gloss", new RelayCommand(() => SortWordPairsBy("Meaning.Gloss", ListSortDirection.Ascending)))))));
            TaskAreas.Add(new TaskAreaItemsViewModel("Other tasks",
                new TaskAreaCommandViewModel("Export results for this variety pair", new RelayCommand(ExportVarietyPair))));
        }
Ejemplo n.º 4
0
 private void SetSelectedVarietyPair()
 {
     if (_selectedVariety1 != null && _selectedVariety2 != null && _selectedVariety1 != _selectedVariety2)
     {
         VarietyPair pair;
         if (_selectedVariety1.DomainVariety.VarietyPairs.TryGetValue(_selectedVariety2.DomainVariety, out pair))
         {
             _busyService.ShowBusyIndicatorUntilFinishDrawing();
             SelectedVarietyPair = _varietyPairFactory(pair, _selectedVariety1.DomainVariety == pair.Variety1);
             VarietyPairState = VarietyPairState.SelectedAndCompared;
         }
         else
         {
             SelectedVarietyPair = null;
             VarietyPairState = VarietyPairState.SelectedAndNotCompared;
         }
     }
     else
     {
         SelectedVarietyPair = null;
         VarietyPairState = VarietyPairState.NotSelected;
     }
 }
Ejemplo n.º 5
0
        private void PerformComparison()
        {
            if (_varietyPairState == VarietyPairState.NotSelected || _selectedVarietyPair != null)
                return;

            _busyService.ShowBusyIndicatorUntilFinishDrawing();
            CogProject project = _projectService.Project;
            var pair = new VarietyPair(_selectedVariety1.DomainVariety, _selectedVariety2.DomainVariety);
            project.VarietyPairs.Add(pair);

            _analysisService.Compare(pair);

            SelectedVarietyPair = _varietyPairFactory(pair, true);
            VarietyPairState = VarietyPairState.SelectedAndCompared;
        }
Ejemplo n.º 6
0
        private void HandleSwitchView(SwitchViewMessage msg)
        {
            if (msg.ViewModelType == GetType())
            {
                _busyService.ShowBusyIndicatorUntilFinishDrawing();

                var pair = (VarietyPair) msg.DomainModels[0];
                SelectedVarietyPair = _varietyPairFactory(pair, true);
                Set(() => SelectedVariety1, ref _selectedVariety1, _varieties[pair.Variety1]);
                Set(() => SelectedVariety2, ref _selectedVariety2, _varieties[pair.Variety2]);
                VarietyPairState = pair.Variety1.VarietyPairs.Contains(pair.Variety2)
                    ? VarietyPairState.SelectedAndCompared : VarietyPairState.SelectedAndNotCompared;
                if (msg.DomainModels.Count > 1)
                {
                    var meaning = (Meaning) msg.DomainModels[1];
                    _selectedVarietyPair.Cognates.SelectedWordPairs.Clear();
                    _selectedVarietyPair.Cognates.SelectedWordPairs.AddRange(_selectedVarietyPair.Cognates.WordPairs.Where(wp => wp.Meaning.DomainMeaning == meaning));
                    _selectedVarietyPair.Noncognates.SelectedWordPairs.Clear();
                    _selectedVarietyPair.Noncognates.SelectedWordPairs.AddRange(_selectedVarietyPair.Noncognates.WordPairs.Where(wp => wp.Meaning.DomainMeaning == meaning));
                }
            }
        }
Ejemplo n.º 7
0
 private void ClearComparison()
 {
     ResetSelectedVarietyPair();
     SelectedVarietyPair = null;
     if (VarietyPairState == VarietyPairState.SelectedAndCompared)
         VarietyPairState = VarietyPairState.SelectedAndNotCompared;
 }
Ejemplo n.º 8
0
        private void PerformComparison()
        {
            CogProject project = _projectService.Project;
            VarietyPair pair;
            if (_selectedVarietyPair == null)
            {
                pair = new VarietyPair(_selectedVariety1.DomainVariety, _selectedVariety2.DomainVariety);
                project.VarietyPairs.Add(pair);
            }
            else
            {
                pair = _selectedVarietyPair.DomainVarietyPair;
            }

            _analysisService.Compare(pair);

            if (_selectedVarietyPair == null)
                SelectedVarietyPair = _varietyPairFactory(pair, true);
            VarietyPairState = VarietyPairState.SelectedAndCompared;
        }