Пример #1
0
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public DeletionViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
            this.dependenciesViewModel = new DependenciesViewModel(viewModelStore, false);

            this.title       = Tum.PDE.ToolFramework.Modeling.Visualization.Properties.Resources.DeletionViewModel_Titel;
            this.description = Tum.PDE.ToolFramework.Modeling.Visualization.Properties.Resources.DeletionViewModel_Description;
        }
Пример #2
0
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public MainDependenciesViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore, false)
        {
            dependenciesViewModel = new DependenciesViewModel(viewModelStore, true);

            this.EventManager.GetEvent <SelectionChangedEvent>().Subscribe(new Action <SelectionChangedEventArgs>(ReactOnViewSelection));

            this.PreInitialize();
        }
        protected override void ProcessOnMenuDeleteCommand()
        {
            if (this.SelectedElement is MetaModelLibrary)
            {
                if ((this.SelectedElement as MetaModelLibrary).ImportedLibrary == null)
                {
                    using (Transaction transaction = this.ModelingDocData.Store.TransactionManager.BeginTransaction("Unload model library."))
                    {
                        (this.SelectedElement as MetaModelLibrary).Delete();
                        transaction.Commit();
                    }
                    return;
                }

                List<ModelElement> classes = new List<ModelElement>();
                foreach (BaseModelContext mc in (this.SelectedElement as MetaModelLibrary).MetaModel.ModelContexts)
                {
                    if (mc is LibraryModelContext)
                    {
                        LibraryModelContext m = mc as LibraryModelContext;
                        foreach (DomainClass d in m.Classes)
                        {
                            classes.Add(d);
                            classes.AddRange(d.Properties);
                        }
                        foreach (DomainRelationship r in m.Relationships)
                            classes.AddRange(r.Roles);
                    }
                    if (mc is ExternModelContext)
                        classes.Add(mc);
                }
                               

                DependenciesViewModel vm = new DependenciesViewModel(LanguageDSLDocData.ViewModelStore, false);
                List<ModelElement> metaModels = new List<ModelElement>();
                metaModels.Add((this.SelectedElement as MetaModelLibrary).MetaModel);

                System.Collections.ObjectModel.ReadOnlyCollection<ModelElement> libraries = this.SelectedElement.Store.ElementDirectory.FindElements(MetaModelLibrary.DomainClassId);
                foreach (ModelElement m in libraries)
                {
                    if (m != this.SelectedElement)
                        if ((m as MetaModelLibrary).ImportedLibrary != null)
                            metaModels.Add((m as MetaModelLibrary).ImportedLibrary);
                }

                vm.Set(classes, metaModels, LanguageDSLDependenciesItemsProvider.GetAllCategories());

                bool bDelete = true;
                if (vm.ActiveDependencies.Count > 0)
                {

                    DeleteElementsPopup popup = new DeleteElementsPopup();
                    popup.DataContext = vm;
                    if (popup.ShowDialog().Value != true)
                        bDelete = false;
                }

                if (bDelete)
                    using (Transaction transaction = this.ModelingDocData.Store.TransactionManager.BeginTransaction("Unload model library."))
                    {
                        (this.SelectedElement as MetaModelLibrary).FilePath = null;
                        (this.SelectedElement as MetaModelLibrary).Delete();
                        transaction.Commit();
                    }

                vm.Dispose();
                GC.Collect();
                return;
            }

            base.ProcessOnMenuDeleteCommand();
        }
Пример #4
0
        protected override void ProcessOnMenuDeleteCommand()
        {
            if (this.SelectedElement is MetaModelLibrary)
            {
                if ((this.SelectedElement as MetaModelLibrary).ImportedLibrary == null)
                {
                    using (Transaction transaction = this.ModelingDocData.Store.TransactionManager.BeginTransaction("Unload model library."))
                    {
                        (this.SelectedElement as MetaModelLibrary).Delete();
                        transaction.Commit();
                    }
                    return;
                }

                List <ModelElement> classes = new List <ModelElement>();
                foreach (BaseModelContext mc in (this.SelectedElement as MetaModelLibrary).MetaModel.ModelContexts)
                {
                    if (mc is LibraryModelContext)
                    {
                        LibraryModelContext m = mc as LibraryModelContext;
                        foreach (DomainClass d in m.Classes)
                        {
                            classes.Add(d);
                            classes.AddRange(d.Properties);
                        }
                        foreach (DomainRelationship r in m.Relationships)
                        {
                            classes.AddRange(r.Roles);
                        }
                    }
                    if (mc is ExternModelContext)
                    {
                        classes.Add(mc);
                    }
                }


                DependenciesViewModel vm         = new DependenciesViewModel(LanguageDSLDocData.ViewModelStore, false);
                List <ModelElement>   metaModels = new List <ModelElement>();
                metaModels.Add((this.SelectedElement as MetaModelLibrary).MetaModel);

                System.Collections.ObjectModel.ReadOnlyCollection <ModelElement> libraries = this.SelectedElement.Store.ElementDirectory.FindElements(MetaModelLibrary.DomainClassId);
                foreach (ModelElement m in libraries)
                {
                    if (m != this.SelectedElement)
                    {
                        if ((m as MetaModelLibrary).ImportedLibrary != null)
                        {
                            metaModels.Add((m as MetaModelLibrary).ImportedLibrary);
                        }
                    }
                }

                vm.Set(classes, metaModels, LanguageDSLDependenciesItemsProvider.GetAllCategories());

                bool bDelete = true;
                if (vm.ActiveDependencies.Count > 0)
                {
                    DeleteElementsPopup popup = new DeleteElementsPopup();
                    popup.DataContext = vm;
                    if (popup.ShowDialog().Value != true)
                    {
                        bDelete = false;
                    }
                }

                if (bDelete)
                {
                    using (Transaction transaction = this.ModelingDocData.Store.TransactionManager.BeginTransaction("Unload model library."))
                    {
                        (this.SelectedElement as MetaModelLibrary).FilePath = null;
                        (this.SelectedElement as MetaModelLibrary).Delete();
                        transaction.Commit();
                    }
                }

                vm.Dispose();
                GC.Collect();
                return;
            }

            base.ProcessOnMenuDeleteCommand();
        }