private void FillCodeFragments() { foreach (var compilationUnit in _project.CompilationUnits) { foreach (var cl in compilationUnit.Classes) { var clItem = new CodeFragmentViewModel(cl); CodeFragments.Add(clItem); foreach (var method in cl.Children) { var mItem = new CodeFragmentViewModel(method); clItem.AddChild(mItem); } } } UpdateCodeFragments(); }
private void SelectNextFragment() { var nextCodeFragment = FlatList.Find(CurrentCodeFragment)?.Next?.Value; if (nextCodeFragment != null) { if (!CodeFragments.Contains(nextCodeFragment)) { //if the next code fragment is not at the root level, set the root level parent to active var parent = FindRelatedParent(nextCodeFragment); if (parent != null) { parent.IsActive = true; } } nextCodeFragment.IsSelected = true; } }
private void SelectPreviousFragment() { var previousCodeFragment = FlatList.Find(CurrentCodeFragment).Previous.Value; if (previousCodeFragment != null) { if (!CodeFragments.Contains(previousCodeFragment)) { //if the next code fragment is not at the root level, set the root level parent to active var parent = FindRelatedParent(previousCodeFragment); if (parent != null) { parent.IsActive = true; } } previousCodeFragment.IsSelected = true; } }
private CodeFragmentViewModel FindRelatedParent(CodeFragmentViewModel codeFragment) { return(CodeFragments.Where(x => x.Children.Contains(codeFragment)).FirstOrDefault()); }