public override void SelectObject(object obj)
        {
            if (obj is TemplateTreeViewItemViewModel 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 TemplateUnresolvedItemListBoxItemViewModel(item);
                    this.itemList.Add(itemViewModel);
                    itemViewModel.PropertyChanged += ItemViewModel_PropertyChanged;
                }

                foreach (var item in itemList)
                {
                    this.compositionService.SatisfyImportsOnce(item);
                }

                this.viewModel    = viewModel;
                this.selectedItem = this.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 TemplateTreeViewItemViewModel;
            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 TemplateColumnInfoItemViewModel(item)).ToArray();
            }
            else
            {
                this.Columns = new TemplateColumnInfoItemViewModel[] { }
            };

            this.NotifyOfPropertyChange(nameof(this.Columns));
            this.NotifyOfPropertyChange(nameof(this.IsVisible));
            this.NotifyOfPropertyChange(nameof(this.SelectedObject));
        }
 private IEnumerable <TreeViewItemViewModel> GetViewModels(TemplateTreeViewItemViewModel viewModel)
 {
     foreach (var item in EnumerableUtility.FamilyTree(viewModel.Browser.Items, i => i.Items))
     {
         yield return(item);
     }
 }
示例#4
0
        public override void SelectObject(object obj)
        {
            if (obj is TemplateTreeViewItemViewModel 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 TemplateUnresolvedItemListBoxItemViewModel(this.ServiceProvider, item);
                    this.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));
        }
示例#5
0
 protected override TableInfo?GetTableInfo(TemplateTreeViewItemViewModel item)
 {
     if (item.DiffState == DiffState.Inserted)
     {
         return(null);
     }
     return(item.Source1.TableInfo);
 }
示例#6
0
        public void View(TemplateTreeViewItemViewModel viewModel)
        {
            var targetModel = viewModel.Parent is TemplateTreeViewItemViewModel parent ? parent : viewModel;
            var document    = this.Items.OfType <TemplateDocumentViewModel>().FirstOrDefault(item => item.Source == targetModel.Source);

            if (document == null)
            {
                document = new TemplateDocumentViewModel(targetModel);
                this.Items.Add(document);
            }
            document.SelectedName = $"{viewModel}";
            this.ActivateItem(document);
        }
 public TemplateDocumentViewModel(TemplateTreeViewItemViewModel viewModel)
     : base(viewModel)
 {
     this.viewModel = viewModel;
     this.viewModel.PropertyChanged += ViewModel_PropertyChanged;
     this.itemList.Add(new TemplateDocumentItemViewModel(viewModel));
     foreach (var item in viewModel.Items.OfType <TemplateTreeViewItemViewModel>())
     {
         this.itemList.Add(new TemplateDocumentItemViewModel(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;
 }
 protected override CremaTemplate GetTemplate(TemplateTreeViewItemViewModel item)
 {
     return(item.Source1);
 }
 protected override string GetHeader(TemplateTreeViewItemViewModel item)
 {
     return(item.Header1);
 }
 protected abstract string GetHeader(TemplateTreeViewItemViewModel item);
 protected abstract TableInfo?GetTableInfo(TemplateTreeViewItemViewModel item);
 public TemplateDocumentItemViewModel(TemplateTreeViewItemViewModel viewModel)
 {
     this.viewModel = viewModel;
 }
示例#13
0
 protected abstract CremaTemplate GetTemplate(TemplateTreeViewItemViewModel item);
示例#14
0
 public override void SelectObject(object obj)
 {
     this.Detach();
     this.viewModel = obj as TemplateTreeViewItemViewModel;
     this.Attach();
 }