Exemplo n.º 1
0
        public TableTreeViewItemViewModel(BrowserViewModel browser, DiffDataTable diffTable)
            : base(browser)
        {
            this.diffTable = diffTable;
            this.diffTable.PropertyChanged             += DiffType_PropertyChanged;
            this.diffTable.SourceItem1.PropertyChanged += SourceItem1_PropertyChanged;
            this.diffTable.SourceItem2.PropertyChanged += SourceItem2_PropertyChanged;
            this.header1     = diffTable.Header1;
            this.header2     = diffTable.Header2;
            this.viewCommand = new DelegateCommand(this.View);
            this.isActivated = diffTable.DiffState != DiffState.Unchanged;
            this.Target      = diffTable;

            foreach (var item in diffTable.Childs)
            {
                var viewModel = new TableTreeViewItemViewModel(browser, item);
                viewModel.PropertyChanged += ChildViewModel_PropertyChanged;
                this.Items.Add(viewModel);
                if (this.isActivated == false && viewModel.DiffState != DiffState.Unchanged)
                {
                    this.isActivated = true;
                }
            }
            this.Dispatcher.InvokeAsync(() =>
            {
                if (this.DiffState != DiffState.Unchanged && this.Parent != null)
                {
                    this.Parent.IsExpanded = true;
                }
            });
        }
Exemplo n.º 2
0
        private async void Import(TableTreeViewItemViewModel viewModel)
        {
            try
            {
                var dataTable    = viewModel.Source.ExportTable2();
                var dataBaseName = this.cremaAppHost.DataBaseName;
                var dataBase     = await this.cremaHost.Dispatcher.InvokeAsync(() => this.cremaHost.DataBases[dataBaseName]);

                var comment = this.GetComment(viewModel.DisplayName);
                if (comment == null)
                {
                    return;
                }

                var dialog = new ProgressViewModel();
                dialog.DisplayName = viewModel.DisplayName;
                dialog.ShowDialog(() =>
                {
                    this.cremaHost.Dispatcher.Invoke(() => dataBase.TableContext.Import(this.authenticator, dataTable.DataSet, comment));
                });
            }
            catch (Exception e)
            {
                AppMessageBox.ShowError(e);
            }
        }
Exemplo n.º 3
0
        protected override void OnSelectionChanged(EventArgs e)
        {
            base.OnSelectionChanged(e);

            if (this.selectedTable != null)
            {
                this.selectedTable.PropertyChanged -= SelectedTable_PropertyChanged;
            }
            this.propertyService.SelectedObject = this.SelectedItem;
            this.selectedTable = this.SelectedItem as TableTreeViewItemViewModel;
            if (this.selectedTable != null)
            {
                this.selectedTable.PropertyChanged += SelectedTable_PropertyChanged;
            }
            this.NotifyOfPropertyChange(nameof(this.CanImport));
        }
Exemplo n.º 4
0
        public void UpdateItemsSource()
        {
            var compositionService = this.ServiceProvider.GetService(typeof(ICompositionService)) as ICompositionService;

            var typesCategory = new CategoryTreeViewItemViewModel("types");

            compositionService.SatisfyImportsOnce(typesCategory);
            foreach (var item in this.dataSet.Types)
            {
                var viewModel = new TypeTreeViewItemViewModel(this, item);
                compositionService.SatisfyImportsOnce(viewModel);
                typesCategory.Items.Add(viewModel);
            }
            this.Items.Add(typesCategory);

            var templatesCategory = new CategoryTreeViewItemViewModel("templates");

            compositionService.SatisfyImportsOnce(templatesCategory);
            foreach (var item in this.dataSet.Tables)
            {
                if (item.TemplatedParent != null)
                {
                    continue;
                }
                var viewModel = new TemplateTreeViewItemViewModel(this, item.Template);
                compositionService.SatisfyImportsOnce(viewModel);
                templatesCategory.Items.Add(viewModel);
            }
            this.Items.Add(templatesCategory);

            var tablesCategory = new CategoryTreeViewItemViewModel("tables");

            compositionService.SatisfyImportsOnce(tablesCategory);
            foreach (var item in this.dataSet.Tables)
            {
                var viewModel = new TableTreeViewItemViewModel(this, item);
                compositionService.SatisfyImportsOnce(viewModel);
                tablesCategory.Items.Add(viewModel);
            }
            this.Items.Add(tablesCategory);
        }