public WordPairViewModel(IProjectService projectService, IAnalysisService analysisService, WordPair wordPair, bool areVarietiesInOrder) { _projectService = projectService; _analysisService = analysisService; _wordPair = wordPair; _areVarietiesInOrder = areVarietiesInOrder; _meaning = new MeaningViewModel(_wordPair.Word1.Meaning); _variety1 = new VarietyViewModel(_wordPair.VarietyPair.Variety1); _variety2 = new VarietyViewModel(_wordPair.VarietyPair.Variety2); IWordAlignerResult results = _projectService.Project.WordAligners[ComponentIdentifiers.PrimaryWordAligner].Compute(_wordPair); _alignment = results.GetAlignments().First(); _prefixNode = new AlignedNodeViewModel(_alignment.Prefixes[0], _alignment.Prefixes[1]); var nodes = new List <AlignedNodeViewModel>(); int i = 0; for (int column = 0; column < _alignment.ColumnCount; column++) { string note = null; if (i < _wordPair.AlignmentNotes.Count) { note = _wordPair.AlignmentNotes[i]; } nodes.Add(new AlignedNodeViewModel(column, _alignment[0, column], _alignment[1, column], note)); i++; } _suffixNode = new AlignedNodeViewModel(_alignment.Suffixes[0], _alignment.Suffixes[1]); _alignedNodes = new ReadOnlyCollection <AlignedNodeViewModel>(nodes); _showInMultipleWordAlignmentCommand = new RelayCommand(ShowInMultipleWordAlignment); _pinUnpinCommand = new RelayCommand(PinUnpin); }
public WordPairViewModel(IWordAligner aligner, WordPair wordPair, bool areVarietiesInOrder) { _wordPair = wordPair; _areVarietiesInOrder = areVarietiesInOrder; _meaning = new MeaningViewModel(_wordPair.Word1.Meaning); _variety1 = new VarietyViewModel(_wordPair.VarietyPair.Variety1); _variety2 = new VarietyViewModel(_wordPair.VarietyPair.Variety2); IWordAlignerResult results = aligner.Compute(_wordPair); _alignment = results.GetAlignments().First(); _prefixNode = new AlignedNodeViewModel(_alignment.Prefixes[0], _alignment.Prefixes[1]); var nodes = new List<AlignedNodeViewModel>(); int i = 0; for (int column = 0; column < _alignment.ColumnCount; column++) { string note = null; if (i < _wordPair.AlignmentNotes.Count) note = _wordPair.AlignmentNotes[i]; nodes.Add(new AlignedNodeViewModel(column, _alignment[0, column], _alignment[1, column], note)); i++; } _suffixNode = new AlignedNodeViewModel(_alignment.Suffixes[0], _alignment.Suffixes[1]); _alignedNodes = new ReadOnlyCollection<AlignedNodeViewModel>(nodes); _showInMultipleWordAlignmentCommand = new RelayCommand(ShowInMultipleWordAlignment); }
public WordPairViewModel(IWordAligner aligner, WordPair wordPair, bool areVarietiesInOrder) { _wordPair = wordPair; _areVarietiesInOrder = areVarietiesInOrder; _meaning = new MeaningViewModel(_wordPair.Word1.Meaning); _variety1 = new VarietyViewModel(_wordPair.VarietyPair.Variety1); _variety2 = new VarietyViewModel(_wordPair.VarietyPair.Variety2); IWordAlignerResult results = aligner.Compute(_wordPair); _alignment = results.GetAlignments().First(); _prefixNode = new AlignedNodeViewModel(_alignment.Prefixes[0], _alignment.Prefixes[1]); var nodes = new List <AlignedNodeViewModel>(); int i = 0; for (int column = 0; column < _alignment.ColumnCount; column++) { string note = null; if (i < _wordPair.AlignmentNotes.Count) { note = _wordPair.AlignmentNotes[i]; } nodes.Add(new AlignedNodeViewModel(column, _alignment[0, column], _alignment[1, column], note)); i++; } _suffixNode = new AlignedNodeViewModel(_alignment.Suffixes[0], _alignment.Suffixes[1]); _alignedNodes = new ReadOnlyCollection <AlignedNodeViewModel>(nodes); }
private void AddNewMeaning() { var vm = new EditMeaningViewModel(_projectService.Project.Meanings); if (_dialogService.ShowModalDialog(this, vm) == true) { var newMeaning = new Meaning(vm.Gloss, vm.Category); _projectService.Project.Meanings.Add(newMeaning); Messenger.Default.Send(new DomainModelChangedMessage(true)); SelectedMeaning = _meanings.Single(s => s.DomainMeaning == newMeaning); } }
public WordViewModel(IBusyService busyService, IAnalysisService analysisService, Word word) { _busyService = busyService; _analysisService = analysisService; _meaning = new MeaningViewModel(word.Meaning); _word = word; LoadSegments(); _monitor = new SimpleMonitor(); _showInWordListsCommand = new RelayCommand(ShowInWordLists); _showInVarietiesCommand = new RelayCommand(ShowInVarieties); _word.PropertyChanged += WordPropertyChanged; }
private void _projectService_ProjectOpened(object sender, EventArgs e) { IsEmpty = true; Set("Meanings", ref _meanings, new MirroredBindableList<Meaning, MeaningViewModel>(_projectService.Project.Meanings, meaning => new MeaningViewModel(meaning), vm => vm.DomainMeaning)); _selectedMeaning = null; }
private void _projectService_ProjectOpened(object sender, EventArgs e) { IsEmpty = true; Set("Meanings", ref _meanings, new MirroredBindableList <Meaning, MeaningViewModel>(_projectService.Project.Meanings, meaning => new MeaningViewModel(meaning), vm => vm.DomainMeaning)); _selectedMeaning = null; }
private void _projectService_ProjectOpened(object sender, EventArgs e) { Set("Meanings", ref _meanings, new MirroredBindableList<Meaning, MeaningViewModel>(_projectService.Project.Meanings, meaning => new MeaningViewModel(meaning), vm => vm.DomainMeaning)); _meanings.CollectionChanged += MeaningsChanged; SelectedMeaning = _meanings.Count > 0 ? _meanings[0] : null; }
private void RemoveSelectedMeaning() { if (_dialogService.ShowYesNoQuestion(this, "Are you sure you want to remove this Meaning?", "Cog")) { int index = _meanings.IndexOf(_selectedMeaning); _projectService.Project.Meanings.Remove(_selectedMeaning.DomainMeaning); Messenger.Default.Send(new DomainModelChangedMessage(true)); if (index == _meanings.Count) index--; SelectedMeaning = _meanings.Count > 0 ? _meanings[index] : null; } }
private void MeaningsChanged(object sender, NotifyCollectionChangedEventArgs e) { if (_selectedMeaning == null || !_meanings.Contains(_selectedMeaning)) SelectedMeaning = _meanings.Count > 0 ? _meanings[0] : null; }