public override void SelectObject(object obj) { if (obj is TableTreeViewItemViewModel viewModel) { var query = from viewModelItem in this.GetViewModels(viewModel) join unresolvedItem in viewModel.Source.UnresolvedItems on viewModelItem.Target equals unresolvedItem select viewModelItem; this.itemList.Clear(); foreach (var item in query) { var itemViewModel = new TableUnresolvedItemListBoxItemViewModel(item); itemList.Add(itemViewModel); itemViewModel.PropertyChanged += ItemViewModel_PropertyChanged; } foreach (var item in itemList) { this.compositionService.SatisfyImportsOnce(item); } this.viewModel = viewModel; this.selectedItem = itemList.FirstOrDefault(); } else { this.itemList.Clear(); this.viewModel = null; } this.NotifyOfPropertyChange(nameof(this.DisplayName)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.Items)); }
public override void SelectObject(object obj) { if (this.viewModel != null) { this.viewModel.PropertyChanged -= ViewModel_PropertyChanged; } this.viewModel = obj as TableTreeViewItemViewModel; if (this.viewModel != null) { this.DisplayName = $"{Resources.Title_ColumnInfo}({this.GetHeader(this.viewModel)})"; this.tableInfo = this.GetTableInfo(this.viewModel); this.viewModel.PropertyChanged += ViewModel_PropertyChanged; } else { this.tableInfo = null; } if (this.tableInfo != null) { this.Columns = this.tableInfo.Value.Columns.Select(item => new TableColumnInfoItemViewModel(item)).ToArray(); } else { this.Columns = new TableColumnInfoItemViewModel[] { } }; this.NotifyOfPropertyChange(nameof(this.Columns)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.SelectedObject)); }
public override void SelectObject(object obj) { if (obj is TableTreeViewItemViewModel viewModel) { var query = from viewModelItem in this.GetViewModels(viewModel) join unresolvedItem in viewModel.Source.UnresolvedItems on viewModelItem.Target equals unresolvedItem select viewModelItem; this.Items.Clear(); foreach (var item in query) { var itemViewModel = new TableUnresolvedItemListBoxItemViewModel(this.ServiceProvider, item); Items.Add(itemViewModel); itemViewModel.PropertyChanged += ItemViewModel_PropertyChanged; } this.viewModel = viewModel; } else { this.Items.Clear(); this.viewModel = null; } this.NotifyOfPropertyChange(nameof(this.DisplayName)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.Items)); }
private IEnumerable <TreeViewItemViewModel> GetViewModels(TableTreeViewItemViewModel viewModel) { foreach (var item in EnumerableUtility.FamilyTree(viewModel.Browser.Items, i => i.Items)) { yield return(item); } }
protected override TableInfo?GetTableInfo(TableTreeViewItemViewModel item) { if (item.DiffState == Data.Diff.DiffState.Deleted) { return(null); } return(item.Source.TableInfo2); }
protected override TableInfo?GetTableInfo(TableTreeViewItemViewModel item) { if (item.DiffState == DiffState.Inserted) { return(null); } return(item.Source.TableInfo1); }
public void View(TableTreeViewItemViewModel viewModel) { var targetModel = viewModel.Parent is TableTreeViewItemViewModel parent ? parent : viewModel; var document = this.Items.OfType <TableDocumentViewModel>().FirstOrDefault(item => item.Source == targetModel.Source); if (document == null) { document = new TableDocumentViewModel(targetModel); this.Items.Add(document); } document.SelectedName = $"{viewModel}"; this.ActivateItem(document); }
public TableDocumentViewModel(TableTreeViewItemViewModel viewModel) : base(viewModel) { this.viewModel = viewModel; this.itemList.Add(new TableDocumentItemViewModel(viewModel)); foreach (var item in viewModel.Items.OfType <TableTreeViewItemViewModel>()) { this.itemList.Add(new TableDocumentItemViewModel(item)); } foreach (var item in this.itemList) { item.PropertyChanged += DocumentItem_PropertyChanged; } this.undoService.Changed += UndoService_Changed; this.resolveCommand = new DelegateCommand((p) => this.Resolve(), (p) => this.CanResolve); this.SelectedItem = this.itemList.First(); this.DisplayName = viewModel.DisplayName; }
public override void SelectObject(object obj) { if (this.viewModel != null) { this.viewModel.PropertyChanged -= ViewModel_PropertyChanged; } this.viewModel = obj as TableTreeViewItemViewModel; if (this.viewModel != null) { this.DisplayName = $"{Resources.Title_TableInfo}({this.GetHeader(this.viewModel)})"; this.tableInfo = this.GetTableInfo(this.viewModel); this.viewModel.PropertyChanged += ViewModel_PropertyChanged; } else { this.tableInfo = null; } this.NotifyOfPropertyChange(nameof(this.TableInfo)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.SelectedObject)); }
protected abstract string GetHeader(TableTreeViewItemViewModel item);
protected abstract TableInfo?GetTableInfo(TableTreeViewItemViewModel item);
public TableDocumentItemViewModel(TableTreeViewItemViewModel viewModel) { this.viewModel = viewModel; }
protected override string GetHeader(TableTreeViewItemViewModel item) { return(item.Header2); }