예제 #1
0
        public override void SelectObject(object obj)
        {
            if (obj is TableTreeViewItemViewModel viewModel)
            {
                var query = from viewModelItem in this.GetViewModels()
                            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));
        }
예제 #2
0
        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));
        }
예제 #3
0
 protected override TableInfo?GetTableInfo(TableTreeViewItemViewModel item)
 {
     if (item.DiffState == DiffState.Inserted)
     {
         return(null);
     }
     return(item.Source.TableInfo1);
 }
예제 #4
0
 protected override TableInfo?GetTableInfo(TableTreeViewItemViewModel item)
 {
     if (item.DiffState == Data.Diff.DiffState.Deleted)
     {
         return(null);
     }
     return(item.Source.TableInfo2);
 }
        public void View(TableTreeViewItemViewModel viewModel)
        {
            var targetModel = (TableTreeViewItemViewModel)viewModel.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);
        }
예제 #6
0
        private void Import(TableTreeViewItemViewModel viewModel)
        {
            //var dataBaseName = this.cremaAppHost.DataBaseName;
            //var dataBase = await this.cremaHost.Dispatcher.InvokeAsync(() => this.cremaHost.DataBases[dataBaseName]);

            //var comment = this.GetComment();
            //if (comment == null)
            //    return;

            //var dialog = new ProgressViewModel();
            //dialog.ShowDialog(() =>
            //{
            //    this.cremaHost.Dispatcher.Invoke(() => dataBase.TableContext.Import(this.authenticator, dataTable.DataSet, comment));
            //});
        }
예제 #7
0
        private void UpdateItemsSource()
        {
            var dataSet            = this.shell.DataSet;
            var compositionService = this.ServiceProvider.GetService(typeof(ICompositionService)) as ICompositionService;

            foreach (var item in dataSet.Tables)
            {
                var viewModel = new TableTreeViewItemViewModel(item)
                {
                    Header1 = dataSet.Header1,
                    Header2 = dataSet.Header2
                };
                compositionService.SatisfyImportsOnce(viewModel);
                this.Items.Add(viewModel);
            }
        }
예제 #8
0
 public TableDocumentViewModel(TableTreeViewItemViewModel 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;
 }
예제 #9
0
        protected override void OnSelectionChanged(EventArgs e)
        {
            base.OnSelectionChanged(e);

            this.property.Value.SelectedObject = this.SelectedItem;

            if (this.tableViewModel != null)
            {
                this.tableViewModel.PropertyChanged -= TableViewModel_PropertyChanged;
            }
            this.tableViewModel = this.SelectedItem as TableTreeViewItemViewModel;
            if (this.tableViewModel != null)
            {
                this.tableViewModel.PropertyChanged += TableViewModel_PropertyChanged;
            }
            this.NotifyOfPropertyChange(nameof(this.CanExportToExcel));
        }
예제 #10
0
        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));
        }
예제 #11
0
 protected override string GetHeader(TableTreeViewItemViewModel item)
 {
     return(item.Header1);
 }
예제 #12
0
 protected abstract string GetHeader(TableTreeViewItemViewModel item);
예제 #13
0
 protected abstract TableInfo?GetTableInfo(TableTreeViewItemViewModel item);
예제 #14
0
 public TableDocumentItemViewModel(TableTreeViewItemViewModel viewModel)
 {
     this.viewModel = viewModel;
 }