/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public PropertiesOptimization(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { InvolvedProperties = new List <DomainProperty>(); this.CreateIntermediate = false; this.IsInheritance = false; }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public PropertiesOptimization(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { InvolvedProperties = new List<DomainProperty>(); this.CreateIntermediate = false; this.IsInheritance = false; }
/// <summary> /// Deletes a new ModelContext view model for the given ModelContext. /// </summary> /// <param name="element">ModelContext.</param> public void DeleteModelContext(LibraryModelContext element) { if (this.externMCReference != null) { if (this.externMCReference.ModelContext == element) { this.externMCReference.Dispose(); this.externMCReference = null; } } OnPropertyChanged("ExternModelContextReference"); }
/// <summary> /// Adds a new ModelContext view model for the given ModelContext. /// </summary> /// <param name="element">ModelContext.</param> public void AddModelContext(LibraryModelContext element) { if (this.externMCReference != null) { if (this.externMCReference.ModelContext == element) { return; } } this.externMCReference = new ModelContextViewModel(this.ViewModelStore, element, true); OnPropertyChanged("ExternModelContextReference"); }
private static CategorizedSelectableViewModel CreateCategorizedSelectableVM(LibraryModelContext model, string categoryName, ViewModelStore store, SelectionHelperTarget target) { List<SelectableViewModel> vms = new List<SelectableViewModel>(); if( (target & SelectionHelperTarget.DomainClass) > 0) foreach (DomainClass d in model.Classes) { vms.Add(new SelectableViewModel(store, d)); } if( (target & SelectionHelperTarget.EmbeddingRelationship) > 0 || (target & SelectionHelperTarget.ReferenceRelationship) > 0) foreach (DomainRelationship r in model.Relationships) { if( (target & SelectionHelperTarget.EmbeddingRelationship) > 0 && r is EmbeddingRelationship ) vms.Add(new SelectableViewModel(store, r)); if ((target & SelectionHelperTarget.ReferenceRelationship) > 0 && r is ReferenceRelationship) vms.Add(new SelectableViewModel(store, r)); } if ((target & SelectionHelperTarget.DiagramClass) > 0 || (target & SelectionHelperTarget.DiagramClassWithoutDerived) > 0) foreach(DiagramClass d in model.DiagramClasses) { if ((target & SelectionHelperTarget.DiagramClassWithoutDerived) > 0) { if (!(d is DesignerDiagramClass)) vms.Add(new SelectableViewModel(store, d)); } else vms.Add(new SelectableViewModel(store, d)); } if ((target & SelectionHelperTarget.ShapeClass) > 0 || (target & SelectionHelperTarget.RSShapeClass) > 0 || (target & SelectionHelperTarget.MappingShapeClass) > 0) foreach (DiagramClass d in model.DiagramClasses) foreach (PresentationElementClass p in d.PresentationElements) { if( p is ShapeClass && (target & SelectionHelperTarget.ShapeClass) > 0 ) vms.Add(new SelectableViewModel(store, p)); if (p is RelationshipShapeClass && (target & SelectionHelperTarget.RSShapeClass) > 0) vms.Add(new SelectableViewModel(store, p)); if (p is MappingRelationshipShapeClass && (target & SelectionHelperTarget.MappingShapeClass) > 0) vms.Add(new SelectableViewModel(store, p)); } vms.Sort(CompareByName); return new CategorizedSelectableViewModel(store, categoryName, vms); }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> protected BaseOptimization(MetaModel metaModel, LibraryModelContext modelContext) { this.involvedClasses = new List<DomainClass>(); this.involvedInheritancesRelationships = new List<DomainClassReferencesBaseClass>(); this.involvedRelationships = new List<DomainRelationship>(); this.involvedClassesMapping = new Dictionary<Guid, Guid>(); this.involvedInheritancesRelationshipsMapping = new Dictionary<Guid, Guid>(); this.involvedRelationshipsMapping = new Dictionary<Guid, Guid>(); this.involvedClassesTargetMapping = new Dictionary<Guid, Guid>(); this.involvedInheritancesRelationshipsTargetMapping = new Dictionary<Guid, Guid>(); this.involvedRelationshipsTargetMapping = new Dictionary<Guid, Guid>(); this.MetaModel = metaModel; this.ModelContext = modelContext; }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> protected BaseOptimization(MetaModel metaModel, LibraryModelContext modelContext) { this.involvedClasses = new List <DomainClass>(); this.involvedInheritancesRelationships = new List <DomainClassReferencesBaseClass>(); this.involvedRelationships = new List <DomainRelationship>(); this.involvedClassesMapping = new Dictionary <Guid, Guid>(); this.involvedInheritancesRelationshipsMapping = new Dictionary <Guid, Guid>(); this.involvedRelationshipsMapping = new Dictionary <Guid, Guid>(); this.involvedClassesTargetMapping = new Dictionary <Guid, Guid>(); this.involvedInheritancesRelationshipsTargetMapping = new Dictionary <Guid, Guid>(); this.involvedRelationshipsTargetMapping = new Dictionary <Guid, Guid>(); this.MetaModel = metaModel; this.ModelContext = modelContext; }
public static string GetModelContextFullName(LibraryModelContext m) { return(m.MetaModel.Namespace + "." + m.Name + "ModelContext"); }
/// <summary> /// Creates the temp model. /// </summary> /// <returns></returns> public MetaModel CreateTempModel(bool bIsTarget) { // disable undo/redo this.MetaModel.Store.UndoManager.UndoState = Microsoft.VisualStudio.Modeling.UndoState.DisabledNoFlush; MetaModel m = null; LibraryModelContext context = null; using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { m = new MetaModel(this.MetaModel.Store); context = new LibraryModelContext(this.MetaModel.Store); m.ModelContexts.Add(context); // post process SerializationPostProcessor.PostProcessModelLoad(m); t.Commit(); } // create copies of domain classes using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { foreach (DomainClass d in this.InvolvedClasses) { DomainClass domainClass = new DomainClass(this.MetaModel.Store); domainClass.Name = d.Name; context.Classes.Add(domainClass); if( !bIsTarget ) this.InvolvedClassesMapping.Add(d.Id, domainClass.Id); else this.InvolvedClassesTargetMapping.Add(d.Id, domainClass.Id); } t.Commit(); } // create inheritance relationships using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { foreach (DomainClassReferencesBaseClass con in this.InvolvedInheritancesRelationships) { DomainClass source; DomainClass target; if (!bIsTarget) { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[con.DerivedClass.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[con.BaseClass.Id]) as DomainClass; } else { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[con.DerivedClass.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[con.BaseClass.Id]) as DomainClass; } DomainClassReferencesBaseClass conCreated = new DomainClassReferencesBaseClass(source, target); if( !bIsTarget ) this.InvolvedInheritancesRelationshipsMapping.Add(con.Id, conCreated.Id); else this.InvolvedInheritancesRelationshipsTargetMapping.Add(con.Id, conCreated.Id); } t.Commit(); } // create relationships using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { foreach (DomainRelationship rel in this.InvolvedRelationships) { DomainClass source; DomainClass target; if (!bIsTarget) { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[rel.Source.RolePlayer.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[rel.Target.RolePlayer.Id]) as DomainClass; } else { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[rel.Source.RolePlayer.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[rel.Target.RolePlayer.Id]) as DomainClass; } DomainRelationship relCreated; if( rel is ReferenceRelationship) relCreated = Tum.PDE.LanguageDSL.ModelTreeHelper.AddNewReferenceRelationship(source, target); else relCreated = Tum.PDE.LanguageDSL.ModelTreeHelper.AddNewEmbeddingRS(source, target, false); if (!bIsTarget) this.InvolvedRelationshipsMapping.Add(rel.Id, relCreated.Id); else this.InvolvedRelationshipsTargetMapping.Add(rel.Id, relCreated.Id); } t.Commit(); } this.CreateTempModel(m, bIsTarget); // enable undo/redo this.MetaModel.Store.UndoManager.UndoState = Microsoft.VisualStudio.Modeling.UndoState.Enabled; return m; }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public RelationshipsReferencesBetweenBaseClassesOptimization(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public RelationshipsOptimization(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { this.IsEmbedding = true; }
/// <summary> /// Adds a new ModelContext view model for the given ModelContext. /// </summary> /// <param name="element">ModelContext.</param> public void AddModelContext(LibraryModelContext element) { if( this.externMCReference != null ) if( this.externMCReference.ModelContext == element ) return; this.externMCReference = new ModelContextViewModel(this.ViewModelStore, element, true); OnPropertyChanged("ExternModelContextReference"); }
/// <summary> /// Deletes a new ModelContext view model for the given ModelContext. /// </summary> /// <param name="element">ModelContext.</param> public void DeleteModelContext(LibraryModelContext element) { if( this.externMCReference != null ) if( this.externMCReference.ModelContext == element ) { this.externMCReference.Dispose(); this.externMCReference = null; } OnPropertyChanged("ExternModelContextReference"); }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public RelationshipProcessor(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { }
private static void FixUpDiagramView(LibraryModelContext model) { foreach (DiagramClass diagramClass in model.DiagramClasses) { DiagramClassView vm = new DiagramClassView(model.Store); vm.IsExpanded = true; vm.DiagramClass = diagramClass; // add shapes views foreach (PresentationElementClass p in diagramClass.PresentationElements) { if (p is ShapeClass) { ShapeClass shapeClass = p as ShapeClass; if (shapeClass.Parent == null) { RootDiagramNode node = new RootDiagramNode(p.Store); node.PresentationElementClass = p; vm.RootDiagramNodes.Add(node); } else { EmbeddingDiagramNode newNode = new EmbeddingDiagramNode(model.Store); newNode.PresentationElementClass = p; } } else { RootDiagramNode node = new RootDiagramNode(p.Store); node.PresentationElementClass = p; vm.RootDiagramNodes.Add(node); } } foreach (PresentationElementClass p in diagramClass.PresentationElements) { if (p is ShapeClass) { ShapeClass shapeClass = p as ShapeClass; if (shapeClass.Parent != null) { EmbeddingDiagramNode source = shapeClass.Parent.DiagramTreeNode as EmbeddingDiagramNode; EmbeddingDiagramNode target = p.DiagramTreeNode as EmbeddingDiagramNode; if (source != null && target != null) new EmbeddingDiagramNodeHasEmbeddingDiagramNodes(source, target); } } } model.ViewContext.DiagramView.DiagramClassViews.Add(vm); } }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public PropertiesProcessor(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { this.separator = Guid.NewGuid().ToString(); this.separatorAdv = Guid.NewGuid().ToString(); }
private static void FixUpDomainModelTreeView(LibraryModelContext model) { // create root nodes and embedding rs foreach (DomainClass domainClass in model.Classes) { if (!domainClass.HasParent()) { RootNode node = new RootNode(model.Store); node.DomainElement = domainClass; node.IsElementHolder = true; domainClass.ModelContext.ViewContext.DomainModelTreeView.RootNodes.Add(node); domainClass.ModelContext.ViewContext.DomainModelTreeView.ModelTreeNodes.Add(node); node.IsEmbeddingTreeExpanded = true; node.IsReferenceTreeExpanded = true; node.IsInheritanceTreeExpanded = true; node.IsShapeMappingTreeExpanded = true; FixUpDomainClassInTreeView(domainClass); } } // reference relationships + shapes foreach (DomainRelationship relationship in model.Relationships) { if (relationship is ReferenceRelationship) { ReferenceRelationship rel = relationship as ReferenceRelationship; ModelTreeHelper.AddNewReferenceRelationship(rel, rel.Source.RolePlayer as DomainClass, rel.Target.RolePlayer); // shape foreach (RelationshipShapeClass s in rel.RelationshipShapeClasses) { ReferenceRSNode node = rel.ReferenceRSNode; // create new shape relationship node ShapeRelationshipNode shapeNode = new ShapeRelationshipNode(rel.Store); shapeNode.RelationshipShapeClass = s; node.ShapeRelationshipNodes.Add(shapeNode); rel.ModelContext.ViewContext.DomainModelTreeView.ModelTreeNodes.Add(shapeNode); } } } // inheritance foreach (DomainClass domainClass in model.Classes) { if (domainClass.BaseClass != null) { DomainClassReferencesBaseClass refBase = DomainClassReferencesBaseClass.GetLink(domainClass, domainClass.BaseClass); if (refBase != null) { if (domainClass.DomainModelTreeNodes.Count > 0) ModelTreeHelper.AddNewInheritanceRelationship(refBase, domainClass, domainClass.BaseClass, false); else ModelTreeHelper.AddNewInheritanceRelationship(refBase, domainClass, domainClass.BaseClass, true); } } } // shapes foreach (DomainClass domainClass in model.Classes) foreach (PresentationDomainClassElement p in domainClass.ShapeClasses) { foreach (TreeNode node in domainClass.DomainModelTreeNodes) { if (node.IsElementHolder) { ShapeClassNode shapeNode = new ShapeClassNode(domainClass.Store); shapeNode.ShapeClass = p; node.ShapeClassNodes.Add(shapeNode); domainClass.ModelContext.ViewContext.DomainModelTreeView.ModelTreeNodes.Add(shapeNode); break; } } } }
public void GenerateShapes(LibraryModelContext modelContext) { foreach (DiagramClass diagram in modelContext.DiagramClasses) { Dictionary <ShapeClass, List <ShapeClass> > childParentMapping = new Dictionary <ShapeClass, List <ShapeClass> >(); Dictionary <DomainClass, List <EmbeddingRelationship> > embeddingChildParentMapping = new Dictionary <DomainClass, List <EmbeddingRelationship> >(); foreach (PresentationElementClass presentationElement in diagram.PresentationElements) { if (presentationElement is ShapeClass) { ShapeClass shapeClass = presentationElement as ShapeClass; DomainClass domainClass = shapeClass.DomainClass; if (domainClass == null) { continue; } if (shapeClass.Parent != null) { if (shapeClass.Parent.DomainClass == null) { continue; } if (!childParentMapping.ContainsKey(shapeClass.Parent)) { childParentMapping.Add(shapeClass.Parent, new List <ShapeClass>()); } childParentMapping[shapeClass.Parent].Add(shapeClass); } if (!embeddingChildParentMapping.ContainsKey(domainClass)) { embeddingChildParentMapping.Add(domainClass, new List <EmbeddingRelationship>()); } foreach (DomainRole rolesPlayed in domainClass.RolesPlayed) { if (rolesPlayed.Relationship.Target == rolesPlayed && rolesPlayed.Relationship is EmbeddingRelationship && rolesPlayed.Relationship.InheritanceModifier != InheritanceModifier.Abstract) { if (!embeddingChildParentMapping[domainClass].Contains(rolesPlayed.Relationship as EmbeddingRelationship)) { embeddingChildParentMapping[domainClass].Add(rolesPlayed.Relationship as EmbeddingRelationship); } } } if (embeddingChildParentMapping[domainClass].Count > 0) { IEnumerable <AttributedDomainElement> sortedByInheritanceRS = CodeGenerationUtilities.SortDomainClassesByInheritance(embeddingChildParentMapping[domainClass]); embeddingChildParentMapping[domainClass].Clear(); foreach (EmbeddingRelationship r in sortedByInheritanceRS) { embeddingChildParentMapping[domainClass].Add(r); } } } } foreach (PresentationElementClass presentationElement in diagram.PresentationElements) { string baseClass = "DslEditorDiagrams::NodeShape"; string className = presentationElement.Name; bool hasBaseClass = false; InheritanceModifier modifier = presentationElement.InheritanceModifier; if (!(presentationElement is ShapeClass)) { baseClass = "DslEditorDiagrams::LinkShape"; } else if (presentationElement is ShapeClass) { if ((presentationElement as ShapeClass).BaseShape != null) { ShapeClass s = (presentationElement as ShapeClass).BaseShape; baseClass = s.Namespace + "." + s.Name; hasBaseClass = true; } } if (presentationElement.GeneratesDoubleDerived) { className += "Base"; modifier = InheritanceModifier.Abstract; } #line default #line hidden #line 96 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("namespace "); #line default #line hidden #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Namespace)); #line default #line hidden #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\r\n{\r\n\t/// <summary>\r\n /// "); #line default #line hidden #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(className)); #line default #line hidden #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" class representing a Shape.\r\n /// </summary>\r\n\t[DslModeling::DomainObjectId(\"" + ""); #line default #line hidden #line 102 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Id.ToString("D"))); #line default #line hidden #line 102 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\")]\r\n\t"); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(presentationElement.AccessModifier))); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(modifier))); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(className)); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" : "); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(baseClass)); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\r\n\t\t/// <summary>\r\n\t\t/// "); #line default #line hidden #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" domain class Id.\r\n\t\t/// </summary>\r\n\t\tpublic static readonly new global::System." + "Guid DomainClassId = new System.Guid(\""); #line default #line hidden #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Id.ToString("D"))); #line default #line hidden #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\");\r\n"); #line default #line hidden #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" PushIndent("\t\t"); GenerateDomainClassConstructors(presentationElement, true); PopIndent(); #line default #line hidden #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t#endregion\r\n"); #line default #line hidden #line 117 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" PushIndent("\t\t"); foreach (DomainProperty property in presentationElement.Properties) { this.Write(DomainPropertyGenerator.Instance.GenerateDomainProperty(property)); } PopIndent(); if (presentationElement is ShapeClass) { ShapeClass shapeClass = presentationElement as ShapeClass; bool bTopMost = false; if (shapeClass.Parent == null) { bTopMost = true; } #line default #line hidden #line 131 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t#region Shape Properties/Methods\r\n\t\t /// <summary>\r\n /// Gets if " + "this shape is a top most item.\r\n /// </summary>\r\n public override " + "bool IsTopMostItem \r\n\t\t{ \r\n\t\t\tget\r\n\t\t\t{\r\n\t\t\t\treturn "); #line default #line hidden #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(bTopMost.ToString().ToLower())); #line default #line hidden #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@"; } } /// <summary> /// Gets the default size of the shape. /// </summary> public override DslEditorDiagrams::SizeD DefaultSize { get { return new DslEditorDiagrams::SizeD("); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.DefaultWidth)); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(", "); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.DefaultHeight)); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@"); } } /// <summary> /// Gets the used defined resizing behaviour value. /// </summary> /// <returns>Resizing behaviour value.</returns> public override DslEditorDiagrams::ShapeResizingBehaviour GetResizingBehaviourValue() { "); #line default #line hidden #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" if (shapeClass.IsFixedWidth && shapeClass.IsFixedHeight) { #line default #line hidden #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.Fixed;\r\n"); #line default #line hidden #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else if (shapeClass.IsFixedWidth) { #line default #line hidden #line 170 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.FixedWidth;\r\n"); #line default #line hidden #line 172 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else if (shapeClass.IsFixedHeight) { #line default #line hidden #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.FixedHeight;\r\n"); #line default #line hidden #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else { #line default #line hidden #line 182 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.Normal;\r\n"); #line default #line hidden #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@" } /// <summary> /// Gets the used defined movement behaviour value. /// </summary> /// <returns>Movement behaviour value.</returns> public override DslEditorDiagrams::ShapeMovementBehaviour GetMovementBehaviourValue() { "); #line default #line hidden #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" if (shapeClass.IsRelativeChild) { if (shapeClass.RelativeChildBehaviour == RelativeChildBehaviour.PositionRelativeToParent) { #line default #line hidden #line 200 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.PositionRelativeToParent;\r\n"); #line default #line hidden #line 202 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else if (shapeClass.RelativeChildBehaviour == RelativeChildBehaviour.PositionOnEdgeOfParent) { #line default #line hidden #line 206 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.PositionOnEdgeOfParent;\r\n"); #line default #line hidden #line 208 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } } else { #line default #line hidden #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.Normal;\r\n"); #line default #line hidden #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@" } /// <summary> /// Gets whether this shape is a relative child shape or not. /// </summary> /// <returns>True if this shape is a relative child shape. False otherwise</returns> public override bool GetIsRelativeChildShapeValue() { return " ); #line default #line hidden #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.IsRelativeChild.ToString().ToLower())); #line default #line hidden #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@"; } /// <summary> /// Gets whether this shape takes part in any relationship or not. /// </summary> /// <returns>True if this shape takes part in any relationship. False otherwise</returns> public override bool GetTakesPartInRelationshipValue() { "); #line default #line hidden #line 235 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" if (hasBaseClass) { #line default #line hidden #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\tif( base.GetTakesPartInRelationshipValue() )\r\n\t\t\t\treturn true;\r\n\t\t\t\t\r\n"); #line default #line hidden #line 242 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } bool takesPart = false; foreach (PresentationElementClass pLink in diagram.PresentationElements) { if (pLink is RelationshipShapeClass) { RelationshipShapeClass rsShape = pLink as RelationshipShapeClass; DomainRelationship con = rsShape.ReferenceRelationship; if (con != null) { if (CodeGenerationUtilities.ShapeTakesPart(shapeClass, con)) { takesPart = true; } } } else if (!takesPart && pLink is MappingRelationshipShapeClass) { MappingRelationshipShapeClass rsShape = pLink as MappingRelationshipShapeClass; ReferenceRelationship con = rsShape.Source; if (con != null) { if (CodeGenerationUtilities.ShapeTakesPart(shapeClass, con.Target.RolePlayer as DomainClass)) { takesPart = true; } } con = rsShape.Target; if (con != null && !takesPart) { if (CodeGenerationUtilities.ShapeTakesPart(shapeClass, con.Target.RolePlayer as DomainClass)) { takesPart = true; } } } } #line default #line hidden #line 270 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn "); #line default #line hidden #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(takesPart.ToString().ToLower())); #line default #line hidden #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(";\r\n\t\t}\r\n\t\t#endregion\r\n"); #line default #line hidden #line 274 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 276 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t}\r\n"); #line default #line hidden #line 278 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" // If this class is double-derived, generate the skeleton derived class (with just the // constructors) if (presentationElement.GeneratesDoubleDerived) { #line default #line hidden #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\t\r\n\t/// <summary>\r\n /// "); #line default #line hidden #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" class representing a Shape.\r\n /// </summary>\r\n\t"); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(presentationElement.AccessModifier))); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(presentationElement.InheritanceModifier))); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" : "); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("Base\r\n\t{\r\n\t\t#region Constructors\r\n"); #line default #line hidden #line 290 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" PushIndent("\t\t"); GenerateDomainClassConstructors(presentationElement, false); PopIndent(); #line default #line hidden #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t#endregion\r\n\t}\r\n"); #line default #line hidden #line 297 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("}\r\n"); #line default #line hidden #line 301 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 307 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" }
/// <summary> /// Creates the temp model. /// </summary> /// <returns></returns> public MetaModel CreateTempModel(bool bIsTarget) { // disable undo/redo this.MetaModel.Store.UndoManager.UndoState = Microsoft.VisualStudio.Modeling.UndoState.DisabledNoFlush; MetaModel m = null; LibraryModelContext context = null; using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { m = new MetaModel(this.MetaModel.Store); context = new LibraryModelContext(this.MetaModel.Store); m.ModelContexts.Add(context); // post process SerializationPostProcessor.PostProcessModelLoad(m); t.Commit(); } // create copies of domain classes using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { foreach (DomainClass d in this.InvolvedClasses) { DomainClass domainClass = new DomainClass(this.MetaModel.Store); domainClass.Name = d.Name; context.Classes.Add(domainClass); if (!bIsTarget) { this.InvolvedClassesMapping.Add(d.Id, domainClass.Id); } else { this.InvolvedClassesTargetMapping.Add(d.Id, domainClass.Id); } } t.Commit(); } // create inheritance relationships using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { foreach (DomainClassReferencesBaseClass con in this.InvolvedInheritancesRelationships) { DomainClass source; DomainClass target; if (!bIsTarget) { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[con.DerivedClass.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[con.BaseClass.Id]) as DomainClass; } else { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[con.DerivedClass.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[con.BaseClass.Id]) as DomainClass; } DomainClassReferencesBaseClass conCreated = new DomainClassReferencesBaseClass(source, target); if (!bIsTarget) { this.InvolvedInheritancesRelationshipsMapping.Add(con.Id, conCreated.Id); } else { this.InvolvedInheritancesRelationshipsTargetMapping.Add(con.Id, conCreated.Id); } } t.Commit(); } // create relationships using (Transaction t = this.MetaModel.Store.TransactionManager.BeginTransaction()) { foreach (DomainRelationship rel in this.InvolvedRelationships) { DomainClass source; DomainClass target; if (!bIsTarget) { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[rel.Source.RolePlayer.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesMapping[rel.Target.RolePlayer.Id]) as DomainClass; } else { source = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[rel.Source.RolePlayer.Id]) as DomainClass; target = m.Store.ElementDirectory.GetElement(this.InvolvedClassesTargetMapping[rel.Target.RolePlayer.Id]) as DomainClass; } DomainRelationship relCreated; if (rel is ReferenceRelationship) { relCreated = Tum.PDE.LanguageDSL.ModelTreeHelper.AddNewReferenceRelationship(source, target); } else { relCreated = Tum.PDE.LanguageDSL.ModelTreeHelper.AddNewEmbeddingRS(source, target, false); } if (!bIsTarget) { this.InvolvedRelationshipsMapping.Add(rel.Id, relCreated.Id); } else { this.InvolvedRelationshipsTargetMapping.Add(rel.Id, relCreated.Id); } } t.Commit(); } this.CreateTempModel(m, bIsTarget); // enable undo/redo this.MetaModel.Store.UndoManager.UndoState = Microsoft.VisualStudio.Modeling.UndoState.Enabled; return(m); }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> protected BaseProcessor(MetaModel metaModel, LibraryModelContext modelContext) { this.MetaModel = metaModel; this.ModelContext = modelContext; }
/// <summary> /// Constructor. /// </summary> /// <param name="metaModel"></param> /// <param name="modelContext"></param> public MetamodelProcessor(MetaModel metaModel, LibraryModelContext modelContext) : base(metaModel, modelContext) { }
private static CategorizedSelectableViewModel CreateCategorizedSelectableVM(LibraryModelContext model, string categoryName, ViewModelStore store, SelectionHelperTarget target) { List <SelectableViewModel> vms = new List <SelectableViewModel>(); if ((target & SelectionHelperTarget.DomainClass) > 0) { foreach (DomainClass d in model.Classes) { vms.Add(new SelectableViewModel(store, d)); } } if ((target & SelectionHelperTarget.EmbeddingRelationship) > 0 || (target & SelectionHelperTarget.ReferenceRelationship) > 0) { foreach (DomainRelationship r in model.Relationships) { if ((target & SelectionHelperTarget.EmbeddingRelationship) > 0 && r is EmbeddingRelationship) { vms.Add(new SelectableViewModel(store, r)); } if ((target & SelectionHelperTarget.ReferenceRelationship) > 0 && r is ReferenceRelationship) { vms.Add(new SelectableViewModel(store, r)); } } } if ((target & SelectionHelperTarget.DiagramClass) > 0 || (target & SelectionHelperTarget.DiagramClassWithoutDerived) > 0) { foreach (DiagramClass d in model.DiagramClasses) { if ((target & SelectionHelperTarget.DiagramClassWithoutDerived) > 0) { if (!(d is DesignerDiagramClass)) { vms.Add(new SelectableViewModel(store, d)); } } else { vms.Add(new SelectableViewModel(store, d)); } } } if ((target & SelectionHelperTarget.ShapeClass) > 0 || (target & SelectionHelperTarget.RSShapeClass) > 0 || (target & SelectionHelperTarget.MappingShapeClass) > 0) { foreach (DiagramClass d in model.DiagramClasses) { foreach (PresentationElementClass p in d.PresentationElements) { if (p is ShapeClass && (target & SelectionHelperTarget.ShapeClass) > 0) { vms.Add(new SelectableViewModel(store, p)); } if (p is RelationshipShapeClass && (target & SelectionHelperTarget.RSShapeClass) > 0) { vms.Add(new SelectableViewModel(store, p)); } if (p is MappingRelationshipShapeClass && (target & SelectionHelperTarget.MappingShapeClass) > 0) { vms.Add(new SelectableViewModel(store, p)); } } } } vms.Sort(CompareByName); return(new CategorizedSelectableViewModel(store, categoryName, vms)); }
/// <summary> /// Constuctor. /// </summary> /// <param name="viewModelStore">The store this view model belongs to.</param> public ModelContextViewModel(ViewModelStore viewModelStore, BaseModelContext baseModelContext, bool isLocked) : base(viewModelStore) { this.modelContext = baseModelContext; this.copyCommand = new DelegateCommand(CopyCommand_Executed, CopyCommand_CanExecute); this.pasteCommand = new DelegateCommand(PasteCommand_Executed, PasteCommand_CanExecute); this.copyAllTreeCommand = new DelegateCommand(CopyAllTreeCommand_Executed, CopyAllTreeCommand_CanExecute); this.copyEmbeddingTreeCommand = new DelegateCommand(CopyEmbeddingTreeCommand_Executed, CopyAllTreeCommand_CanExecute); this.copyReferenceTreeCommand = new DelegateCommand(CopyReferenceTreeCommand_Executed, CopyAllTreeCommand_CanExecute); //this.cutCommand = new DelegateCommand(CutCommand_Executed, CutCommand_CanExecute); this.optimizeCommand = new DelegateCommand(OptimizeCommand_Executed); if (baseModelContext is ModelContext) { ModelContext modelContext = baseModelContext as ModelContext; this.modelTreeViewModel = new ModelTreeViewModel(viewModelStore, this, modelContext.ViewContext.DomainModelTreeView); this.modelTreeViewModel.IsLocked = isLocked; this.diagramViewModel = new DiagramViewModel(viewModelStore, this, modelContext.ViewContext.DiagramView); this.serializationViewModel = new SerializationViewModel(viewModelStore, modelContext.SerializationModel); this.modelContextType = ModelContextViewType.ModelContext; } else if (baseModelContext is ExternModelContext) { ExternModelContext modelContext = baseModelContext as ExternModelContext; if (modelContext.ModelContext != null) { this.AddModelContext(modelContext.ModelContext); } this.EventManager.GetEvent <ModelElementLinkAddedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(ExternModelContextReferencesModelContext.DomainClassId), true, this.modelContext.Id, new System.Action <ElementAddedEventArgs>(OnModelContextAdded)); this.EventManager.GetEvent <ModelElementLinkDeletedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(ExternModelContextReferencesModelContext.DomainClassId), true, this.modelContext.Id, new System.Action <ElementDeletedEventArgs>(OnModelContextRemoved)); this.EventManager.GetEvent <ModelRolePlayerChangedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRole(ExternModelContextReferencesModelContext.ExternModelContextDomainRoleId), new System.Action <RolePlayerChangedEventArgs>(OnModelContextChanged)); this.EventManager.GetEvent <ModelRolePlayerChangedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRole(ExternModelContextReferencesModelContext.ModelContextDomainRoleId), new System.Action <RolePlayerChangedEventArgs>(OnModelContextChanged)); this.modelContextType = ModelContextViewType.ExternModelContext; } else if (baseModelContext is LibraryModelContext) { LibraryModelContext modelContext = baseModelContext as LibraryModelContext; this.modelTreeViewModel = new ModelTreeViewModel(viewModelStore, this, modelContext.ViewContext.DomainModelTreeView); this.modelTreeViewModel.IsLocked = isLocked; this.diagramViewModel = new DiagramViewModel(viewModelStore, this, modelContext.ViewContext.DiagramView); this.modelContextType = ModelContextViewType.LibraryContext; this.serializationViewModel = new SerializationViewModel(viewModelStore, modelContext.SerializationModel); } this.selectedItem = this.ModelTreeViewModel; if (this.ModelContext != null) { this.EventManager.GetEvent <ModelElementPropertyChangedEvent>().Subscribe( this.Store.DomainDataDirectory.GetDomainProperty(BaseModelContext.NameDomainPropertyId), this.ModelContext.Id, new System.Action <ElementPropertyChangedEventArgs>(NamePropertyChanged)); } }
public static string GetModelContextFullName(LibraryModelContext m) { return m.MetaModel.Namespace + "." + m.Name + "ModelContext"; }
public void GenerateShapes(LibraryModelContext modelContext) { foreach(DiagramClass diagram in modelContext.DiagramClasses) { Dictionary<ShapeClass, List<ShapeClass>> childParentMapping = new Dictionary<ShapeClass, List<ShapeClass>>(); Dictionary<DomainClass, List<EmbeddingRelationship>> embeddingChildParentMapping = new Dictionary<DomainClass, List<EmbeddingRelationship>>(); foreach(PresentationElementClass presentationElement in diagram.PresentationElements) { if( presentationElement is ShapeClass) { ShapeClass shapeClass = presentationElement as ShapeClass; DomainClass domainClass = shapeClass.DomainClass; if( domainClass == null ) continue; if( shapeClass.Parent != null ) { if( shapeClass.Parent.DomainClass == null ) continue; if( !childParentMapping.ContainsKey(shapeClass.Parent) ) childParentMapping.Add(shapeClass.Parent, new List<ShapeClass>()); childParentMapping[shapeClass.Parent].Add(shapeClass); } if( !embeddingChildParentMapping.ContainsKey(domainClass) ) embeddingChildParentMapping.Add(domainClass, new List<EmbeddingRelationship>()); foreach(DomainRole rolesPlayed in domainClass.RolesPlayed) { if( rolesPlayed.Relationship.Target == rolesPlayed && rolesPlayed.Relationship is EmbeddingRelationship && rolesPlayed.Relationship.InheritanceModifier != InheritanceModifier.Abstract) if( !embeddingChildParentMapping[domainClass].Contains(rolesPlayed.Relationship as EmbeddingRelationship) ) embeddingChildParentMapping[domainClass].Add(rolesPlayed.Relationship as EmbeddingRelationship); } if( embeddingChildParentMapping[domainClass].Count > 0 ) { IEnumerable<AttributedDomainElement> sortedByInheritanceRS = CodeGenerationUtilities.SortDomainClassesByInheritance(embeddingChildParentMapping[domainClass]); embeddingChildParentMapping[domainClass].Clear(); foreach(EmbeddingRelationship r in sortedByInheritanceRS) embeddingChildParentMapping[domainClass].Add(r); } } } foreach(PresentationElementClass presentationElement in diagram.PresentationElements) { string baseClass = "DslEditorDiagrams::NodeShape"; string className = presentationElement.Name; bool hasBaseClass = false; InheritanceModifier modifier = presentationElement.InheritanceModifier; if( !(presentationElement is ShapeClass) ) { baseClass = "DslEditorDiagrams::LinkShape"; } else if(presentationElement is ShapeClass) { if( (presentationElement as ShapeClass).BaseShape != null ) { ShapeClass s = (presentationElement as ShapeClass).BaseShape; baseClass = s.Namespace + "." + s.Name; hasBaseClass = true; } } if( presentationElement.GeneratesDoubleDerived ) { className += "Base"; modifier = InheritanceModifier.Abstract; } #line default #line hidden #line 96 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("namespace "); #line default #line hidden #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Namespace)); #line default #line hidden #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\r\n{\r\n\t/// <summary>\r\n /// "); #line default #line hidden #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(className)); #line default #line hidden #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" class representing a Shape.\r\n /// </summary>\r\n\t[DslModeling::DomainObjectId(\"" + ""); #line default #line hidden #line 102 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Id.ToString("D"))); #line default #line hidden #line 102 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\")]\r\n\t"); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(presentationElement.AccessModifier))); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(modifier))); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(className)); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" : "); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(baseClass)); #line default #line hidden #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\r\n\t\t/// <summary>\r\n\t\t/// "); #line default #line hidden #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" domain class Id.\r\n\t\t/// </summary>\r\n\t\tpublic static readonly new global::System." + "Guid DomainClassId = new System.Guid(\""); #line default #line hidden #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Id.ToString("D"))); #line default #line hidden #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\");\r\n"); #line default #line hidden #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" PushIndent("\t\t"); GenerateDomainClassConstructors(presentationElement, true); PopIndent(); #line default #line hidden #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t#endregion\r\n"); #line default #line hidden #line 117 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" PushIndent("\t\t"); foreach(DomainProperty property in presentationElement.Properties) { this.Write(DomainPropertyGenerator.Instance.GenerateDomainProperty(property)); } PopIndent(); if( presentationElement is ShapeClass ) { ShapeClass shapeClass = presentationElement as ShapeClass; bool bTopMost = false; if( shapeClass.Parent == null ) bTopMost = true; #line default #line hidden #line 131 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t#region Shape Properties/Methods\r\n\t\t /// <summary>\r\n /// Gets if " + "this shape is a top most item.\r\n /// </summary>\r\n public override " + "bool IsTopMostItem \r\n\t\t{ \r\n\t\t\tget\r\n\t\t\t{\r\n\t\t\t\treturn "); #line default #line hidden #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(bTopMost.ToString().ToLower())); #line default #line hidden #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@"; } } /// <summary> /// Gets the default size of the shape. /// </summary> public override DslEditorDiagrams::SizeD DefaultSize { get { return new DslEditorDiagrams::SizeD("); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.DefaultWidth)); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(", "); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.DefaultHeight)); #line default #line hidden #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@"); } } /// <summary> /// Gets the used defined resizing behaviour value. /// </summary> /// <returns>Resizing behaviour value.</returns> public override DslEditorDiagrams::ShapeResizingBehaviour GetResizingBehaviourValue() { "); #line default #line hidden #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" if( shapeClass.IsFixedWidth && shapeClass.IsFixedHeight ) { #line default #line hidden #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.Fixed;\r\n"); #line default #line hidden #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else if( shapeClass.IsFixedWidth ) { #line default #line hidden #line 170 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.FixedWidth;\r\n"); #line default #line hidden #line 172 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else if( shapeClass.IsFixedHeight ) { #line default #line hidden #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.FixedHeight;\r\n"); #line default #line hidden #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else { #line default #line hidden #line 182 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeResizingBehaviour.Normal;\r\n"); #line default #line hidden #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@" } /// <summary> /// Gets the used defined movement behaviour value. /// </summary> /// <returns>Movement behaviour value.</returns> public override DslEditorDiagrams::ShapeMovementBehaviour GetMovementBehaviourValue() { "); #line default #line hidden #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" if( shapeClass.IsRelativeChild ) { if( shapeClass.RelativeChildBehaviour == RelativeChildBehaviour.PositionRelativeToParent ) { #line default #line hidden #line 200 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.PositionRelativeToParent;\r\n"); #line default #line hidden #line 202 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } else if( shapeClass.RelativeChildBehaviour == RelativeChildBehaviour.PositionOnEdgeOfParent ) { #line default #line hidden #line 206 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.PositionOnEdgeOfParent;\r\n"); #line default #line hidden #line 208 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } } else { #line default #line hidden #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn DslEditorDiagrams::ShapeMovementBehaviour.Normal;\r\n"); #line default #line hidden #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@" } /// <summary> /// Gets whether this shape is a relative child shape or not. /// </summary> /// <returns>True if this shape is a relative child shape. False otherwise</returns> public override bool GetIsRelativeChildShapeValue() { return "); #line default #line hidden #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.IsRelativeChild.ToString().ToLower())); #line default #line hidden #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(@"; } /// <summary> /// Gets whether this shape takes part in any relationship or not. /// </summary> /// <returns>True if this shape takes part in any relationship. False otherwise</returns> public override bool GetTakesPartInRelationshipValue() { "); #line default #line hidden #line 235 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" if( hasBaseClass ) { #line default #line hidden #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\tif( base.GetTakesPartInRelationshipValue() )\r\n\t\t\t\treturn true;\r\n\t\t\t\t\r\n"); #line default #line hidden #line 242 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } bool takesPart = false; foreach(PresentationElementClass pLink in diagram.PresentationElements) { if( pLink is RelationshipShapeClass) { RelationshipShapeClass rsShape = pLink as RelationshipShapeClass; DomainRelationship con = rsShape.ReferenceRelationship; if( con != null ) if( CodeGenerationUtilities.ShapeTakesPart(shapeClass, con) ) takesPart = true; } else if( !takesPart && pLink is MappingRelationshipShapeClass ) { MappingRelationshipShapeClass rsShape = pLink as MappingRelationshipShapeClass; ReferenceRelationship con = rsShape.Source; if( con != null ) if( CodeGenerationUtilities.ShapeTakesPart(shapeClass, con.Target.RolePlayer as DomainClass) ) takesPart = true; con = rsShape.Target; if( con != null && !takesPart ) if( CodeGenerationUtilities.ShapeTakesPart(shapeClass, con.Target.RolePlayer as DomainClass) ) takesPart = true; } } #line default #line hidden #line 270 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\treturn "); #line default #line hidden #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(takesPart.ToString().ToLower())); #line default #line hidden #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(";\r\n\t\t}\r\n\t\t#endregion\r\n"); #line default #line hidden #line 274 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 276 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t}\r\n"); #line default #line hidden #line 278 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" // If this class is double-derived, generate the skeleton derived class (with just the // constructors) if ( presentationElement.GeneratesDoubleDerived ) { #line default #line hidden #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t\t\r\n\t/// <summary>\r\n /// "); #line default #line hidden #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" class representing a Shape.\r\n /// </summary>\r\n\t"); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(presentationElement.AccessModifier))); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(presentationElement.InheritanceModifier))); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(" : "); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name)); #line default #line hidden #line 287 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("Base\r\n\t{\r\n\t\t#region Constructors\r\n"); #line default #line hidden #line 290 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" PushIndent("\t\t"); GenerateDomainClassConstructors(presentationElement, false); PopIndent(); #line default #line hidden #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("\t\t#endregion\r\n\t}\r\n"); #line default #line hidden #line 297 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" this.Write("}\r\n"); #line default #line hidden #line 301 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" } #line default #line hidden #line 307 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ShapesGenerator.tt" }