/// <summary> /// Reset selection. /// </summary> protected override void OnReset() { if (this.selectedItemViewModel != null) { this.selectedItemViewModel.IsSelected = false; } this.clickedItemViewModel = null; this.selectedItemViewModel = null; this.contextMenu = null; this.contextMenu = this.defaultContextMenu; if (rootViewModels != null) { rootViewModels.Clear(); } rootViewModels = null; if (rootTreeViewItemViewModelStorage != null) { rootTreeViewItemViewModelStorage.Dispose(); } rootTreeViewItemViewModelStorage = null; base.OnReset(); }
private void InitVM() { if (rootViewModels == null && this.ModelData.CurrentModelContext.RootElement != null) { rootTreeViewItemViewModelStorage = this.ViewModelStore.Factory.CreateModelElementTreeViewModel(this.ModelData.CurrentModelContext.RootElement, true, true, null); rootViewModels = new System.Collections.ObjectModel.ObservableCollection <BaseModelElementTreeViewModel>(); rootViewModels.Add(rootTreeViewItemViewModelStorage); } OnPropertyChanged("RootViewModels"); }
/// <summary> /// Updates the model tree, based on SelectedItemsCollection. /// </summary> private void UpdateModelTree() { if (selectedItemsCollection == null) { // clear selection if (this.SelectedItemViewModel != null) { this.SelectedItemViewModel.IsSelected = false; } this.SelectedItemViewModel = null; return; } if (selectedItemsCollection.Count == 1) { // search for the view model and select it BaseModelElementTreeViewModel foundModel = null; foreach (BaseModelElementTreeViewModel m in RootViewModels) { foundModel = m.FindViewModel(selectedItemsCollection[0] as ModelElement); if (foundModel != null) { //foundModel.IsSelected = true; this.SelectedItemViewModel = foundModel; } } if (foundModel == null) { // clear selection if (this.SelectedItemViewModel != null) { this.SelectedItemViewModel.IsSelected = false; } this.SelectedItemViewModel = null; } } else { // clear selection if (this.SelectedItemViewModel != null) { this.SelectedItemViewModel.IsSelected = false; } this.SelectedItemViewModel = null; } }
private void SetSelectedElementInTree(BaseModelElementTreeViewModel treeElement, ModelElement modelElement) { if (treeElement.Element.Id == modelElement.Id) { //ModelTreeSelectedElement = treeElement; treeElement.IsSelected = true; treeElement.IsExpanded = true; return; } foreach (BaseModelElementTreeViewModel v in treeElement.Children) { SetSelectedElementInTree(v, modelElement); } }
private void ResetVM() { SelectedPath = ""; if (rootViewModels != null) { rootViewModels.Clear(); } rootViewModels = null; if (rootTreeViewItemViewModelStorage != null) { rootTreeViewItemViewModelStorage.Dispose(); } rootTreeViewItemViewModelStorage = null; OnPropertyChanged("RootViewModels"); }
/// <summary> /// Finds a view model that is representing the given model element. /// </summary> /// <param name="elementId">Model element id.</param> /// <returns>View model if found; Null otherwise.</returns> public virtual string FindViewModel(Guid elementId, BaseModelElementTreeViewModel vm) { // search the children (without their children) first foreach (BaseModelElementTreeViewModel viewModel in vm.Children) { if (viewModel.Element.Id == elementId) { return(viewModel.Id.ToString()); } } // continue search among children's children foreach (BaseModelElementTreeViewModel viewModel in vm.Children) { string modelFound = FindViewModel(elementId, viewModel); if (modelFound != null) { return(viewModel.Id + "\\" + modelFound); } } return(null); }