/// <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; }
/// <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(); }
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(); }