/// <summary> /// Converts the property value and returns the converted value. /// </summary> /// <returns>Converted property value.</returns> public override object GetPropertyValue() { global::Tum.VModellXT.Referenzmodell model = this.Elements[0] as global::Tum.VModellXT.Referenzmodell; if (model.VModell == null) { return(""); } DslEditorModeling::IParentModelElement parent = model.GetDomainModelServices().ElementParentProvider.GetParentModelElement(model); if (parent == null) { throw new System.ArgumentNullException("Parent of element " + model.ToString() + " can not be null"); } string path = parent.DomainFilePath; string vModellDirectory = new System.IO.FileInfo(path).DirectoryName; global::Tum.VModellXT.VModell refModel = model.VModell; string curPath = Tum.PDE.ToolFramework.Modeling.Visualization.VMXExtensions.Path.PathHelper.EvaluateRelativePath( vModellDirectory, (refModel as DslEditorModeling::IParentModelElement).DomainFilePath); return(curPath); }
/// <summary> /// Loads the model from the given file path and sets it to its appropriate element. /// </summary> /// <param name="filePath">File path to load the model from. Can be null to indicate that there is no referenced domain model.</param> protected override void SetReferencedModel(string filePath) { using (new Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.UI.WaitCursor()) { global::Tum.VModellXT.Musterbibliothek model = this.Elements[0] as global::Tum.VModellXT.Musterbibliothek; string file = filePath; DslEditorModeling::IParentModelElement parent = model.GetDomainModelServices().ElementParentProvider.GetParentModelElement(model); if (parent == null) { throw new System.ArgumentNullException("Parent of element " + model.ToString() + " can not be null"); } string path = parent.DomainFilePath; string vModellDirectory = new System.IO.FileInfo(path).DirectoryName; //string curPath = Tum.PDE.ToolFramework.Modeling.Visualization.VMXExtensions.Path.PathHelper.EvaluateRelativePath( // vModellDirectory, file); // load model try { if (!System.IO.File.Exists(file)) { System.IO.FileStream s = System.IO.File.Create(file); s.Close(); } using (DslModeling::Transaction transaction = this.Store.TransactionManager.BeginTransaction("Set referenced model")) { global::Tum.VModellXT.VModellXTDocumentData data = this.ViewModelStore.ModelData as global::Tum.VModellXT.VModellXTDocumentData; global::Tum.VModellXT.VModell referenceModel = data.ModelContextVModellXT.LoadInternal(file) as global::Tum.VModellXT.VModell; model.VModell = referenceModel; transaction.Commit(); } } catch (System.Exception ex) { DslEditorViewModelServices::IMessageBoxService messageBox = this.GlobalServiceProvider.Resolve <DslEditorViewModelServices::IMessageBoxService>(); messageBox.ShowError(ex.Message); } this.ModelData.FlushUndoRedoStacks(); } }
/// <summary> /// Helper method to create and initialize a new VModell. /// </summary> internal protected virtual global::Tum.VModellXT.VModell CreateModelHelperVModell(DslModeling::Partition modelPartition) { global::Tum.VModellXT.VModell model = new global::Tum.VModellXT.VModell(modelPartition, global::Tum.VModellXT.VModellXTDomainModelIdProvider.Instance.AssignId(null)); if( VModellXTElementNameProvider.Instance.HasName(model) ) VModellXTElementNameProvider.Instance.SetName(model, "VModell"); return model; }