Ejemplo n.º 1
0
 public DomainRelationship CreateRelationship(DomainClass Source, Multiplicity SourceMultiplicity, DomainClass Target, Multiplicity TargetMultiplicity, Boolean IsEmbedding)
 {
     DomainRelationship dr = new DomainRelationship(
         OwnerDocument,
         Source.Xml.GetAttribute("Name") + (IsEmbedding ? "Has" : "References") + Target.Xml.GetAttribute("Name"),
         Source.Xml.GetAttribute("DisplayName") + (IsEmbedding ? " Has " : " References ") + Target.Xml.GetAttribute("DisplayName"),
         IsEmbedding
     );
     dr.Source = new DomainRole(OwnerDocument,
         Source.Xml.GetAttribute("Name"),
         Source.Xml.GetAttribute("DisplayName"),
         Target.Xml.GetAttribute("Name"),
         Target.Xml.GetAttribute("DisplayName"),
         SourceMultiplicity
     );
     dr.Target = new DomainRole(OwnerDocument,
         Target.Xml.GetAttribute("Name"),
         Target.Xml.GetAttribute("DisplayName"),
         Source.Xml.GetAttribute("Name"),
         Source.Xml.GetAttribute("DisplayName"),
         TargetMultiplicity
     );
     Relationships.Add(dr);
     return dr;
 }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="serializedRelationship">SerializedRelationship.</param>
        /// <param name="referencedElement">Element that is referenced by the serialization element. Can be null.</param>
        protected SerializedRelationshipViewModel(ViewModelStore viewModelStore, SerializedRelationship serializedRelationship, DomainRelationship referencedElement, SerializationClassViewModel parent)
            : base(viewModelStore, serializedRelationship, referencedElement, parent)
        {
            if (this.SerializationElement != null)
            {
                // subscribe
                this.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(this.SerializationElement.Id, new Action<ElementPropertyChangedEventArgs>(OnSerializationRelationshipropertyChanged));

                if (this.SerializationElement.SerializedDomainRoles.Count > 0)
                {
                    sourceRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[0], referencedElement, this);
                    this.AddChild(sourceRoleVM);
                }

                if (this.SerializationElement.SerializedDomainRoles.Count > 1)
                {
                    targetRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[1], referencedElement, this);

                    if (targetRoleVM.SerializationElement.SerializationClass is SerializedDomainClass)
                        targetClassVM = new SerializedDomainClassViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedDomainClass, this);
                    else if (targetRoleVM.SerializationElement.SerializationClass is SerializedReferenceRelationship)
                        targetClassVM = new SerializedReferenceRelationshipViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedReferenceRelationship, this);

                    this.AddChild(targetRoleVM);
                }
            }
        }
Ejemplo n.º 3
0
        private static void FixRoles(VisioConnector Connector, DomainRelationship Relationship)
        {
            String SourceName = new VisioClass(Connector.Source).Name;
            String TargetName = new VisioClass(Connector.Target).Name;

            //if (Relationship.Source.RolePlayer == SourceName &&
            //    Relationship.Target.RolePlayer == TargetName) return;

            String SourceText = Connector.SourceText == String.Empty ? SourceName : Connector.SourceText;
            String TargetText = Connector.TargetText == String.Empty ? TargetName : Connector.TargetText;

            DomainRole source = Relationship.Source;
            source.SetAttribute("Name", "s" + SourceName + "Name");
            source.SetAttribute("DisplayName", SourceText);
            source.SetAttribute("PropertyName", "s" + TargetName + "Prop");
            source.SetAttribute("PropertyDisplayName", TargetText);
            source.Multiplicity = MultiplicityHelper.Compatible(Connector.SourceMultiplicity);

            DomainRole target = Relationship.Target;
            target.SetAttribute("Name", "t" + TargetName + "Name");
            target.SetAttribute("DisplayName", TargetText);
            target.SetAttribute("PropertyName", "t" + SourceName + "Prop");
            target.SetAttribute("PropertyDisplayName", SourceText);
            target.Multiplicity = MultiplicityHelper.Compatible(Connector.TargetMultiplicity);
        }
Ejemplo n.º 4
0
 public XmlClassData GetClassData(DomainRelationship Relationship)
 {
     String Name = Relationship.Xml.GetAttribute("Name");
     foreach (XmlClassData xcd in ClassData)
     {
         if (xcd.DomainRelationshipMoniker == Name) return xcd;
     }
     return null;
 }
Ejemplo n.º 5
0
        public void Update(DomainRelationship Relationship)
        {
            String Name = Relationship.Source.Xml.GetAttribute("PropertyName");
            String subName = Dsl.SubName(Name);

            Xml.SetAttribute("RoleElementName", subName);

            DomainRelationshipMoniker = Relationship.Xml.GetAttribute("Name");
        }
Ejemplo n.º 6
0
        public ElementMergeDirective(DomainRelationship Relationship)
            : base(Relationship.OwnerDocument.CreateElement("ElementMergeDirective"))
        {
            Index = Relationship.Target.RolePlayer;

            LinkCreationPaths.Add(new DomainPath(
                Relationship.OwnerDocument,
                Relationship.Xml.GetAttribute("Name") + "." +
                    Relationship.Source.Xml.GetAttribute("PropertyName")
            ));
        }
Ejemplo n.º 7
0
 public XmlRelationshipData GetRelationshipData(DomainRelationship Relationship)
 {
     String Name = Relationship.Xml.GetAttribute("Name");
     foreach (DslElement element in ElementData)
     {
         XmlRelationshipData xrd = new XmlRelationshipData(element.Xml);
         if (xrd.IsValid &&
             xrd.DomainRelationshipMoniker == Name) return xrd;
     }
     return null;
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="referenceRSNode">ReferenceRSNode.</param>
        /// <param name="parent">Parent.</param>
        public DomainRelationshipViewModel(ViewModelStore viewModelStore, DomainRelationship relationship, TreeNodeViewModel parent)
            : base(viewModelStore, relationship)
        {
            this.parentTreeNode = parent;

            if (relationship != null)
            {
                sourceRoleVM = new DomainRoleViewModel(this.ViewModelStore, relationship.Source, this);
                targetRoleVM = new DomainRoleViewModel(this.ViewModelStore, relationship.Target, this);
            }
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="referenceRSNode">ReferenceRSNode.</param>
        /// <param name="parent">Parent.</param>
        public DomainRelationshipViewModel(ViewModelStore viewModelStore, DomainRelationship relationship, TreeNodeViewModel parent)
            : base(viewModelStore, relationship)
        {
            this.parentTreeNode = parent;

            if (relationship != null)
            {
                sourceRoleVM = new DomainRoleViewModel(this.ViewModelStore, relationship.Source, this);
                targetRoleVM = new DomainRoleViewModel(this.ViewModelStore, relationship.Target, this);

            }
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="serializedDomainRole">SerializedDomainRole.</param>
        /// <param name="referencedElement">Element that is referenced by the serialization element. Can be null.</param>
        public SerializedDomainRoleViewModel(ViewModelStore viewModelStore, DomainRole domainRole, DomainRelationship referencedElement, SerializedRelationshipViewModel parentVM)
            : base(viewModelStore, null, referencedElement)
        {
            this.parentVM = parentVM;
            this.domainRole = domainRole;

            if (domainRole != null)
            {
                this.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(this.domainRole.Id, new Action<ElementPropertyChangedEventArgs>(OnSerializedRolePropertyChanged));

                if (this.domainRole.RolePlayer != null)
                    this.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(this.domainRole.RolePlayer.Id, new Action<ElementPropertyChangedEventArgs>(OnSerializedRolePropertyChanged));
            }
        }
        /// <summary>
        /// Adds a new view model for the given element.
        /// </summary>
        /// <param name="node">Element.</param>
        public void AddRSShapeElement(DomainRelationship element)
        {
            if (this.elementViewModel != null)
            {
                this.elementViewModel.Dispose();
            }

            if (element != null)
            {
                this.elementViewModel = new BaseModelElementViewModel(this.ViewModelStore, element);
            }

            OnPropertyChanged("DiagramElementViewModel");
        }
Ejemplo n.º 12
0
        public void Update(DomainRelationship Relationship)
        {
            String Name = Relationship.Xml.GetAttribute("Name");
            String subName = Dsl.SubName(Name);
            Xml.SetAttribute("TypeName", Name);
            Xml.SetAttribute("MonikerAttributeName", Xml.GetAttribute("MonikerAttributeName"));
            Xml.SetAttribute("MonikerElementName", subName + "Moniker");
            Xml.SetAttribute("ElementName", subName);
            Xml.SetAttribute("MonikerTypeName", Name + "Moniker");

            DomainRelationshipMoniker = Name;
        }
Ejemplo n.º 13
0
 public void Update(DomainRelationship Relationship)
 {
     String Name = Relationship.Xml.GetAttribute("Name");
     Xml.SetAttribute("Name", Name + "Builder");
     LinkConnectDirective = Name;
 }
Ejemplo n.º 14
0
 public ConnectionBuilder(DomainRelationship Relationship)
     : base(Relationship.OwnerDocument.CreateElement("ConnectionBuilder"))
 {
     Update(Relationship);
 }
 private string GetCombinedMultiplicity(DomainRelationship r)
 {
     string ret = r.Source.Multiplicity.ToString() + "_" + this.separatorGuid + "_" + r.Target.Multiplicity.ToString();
     return ret;
 }
Ejemplo n.º 16
0
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="serializedRelationship">SerializedRelationship.</param>
        /// <param name="referencedElement">Element that is referenced by the serialization element. Can be null.</param>
        protected SerializedRelationshipViewModel(ViewModelStore viewModelStore, SerializedRelationship serializedRelationship, DomainRelationship referencedElement, SerializationClassViewModel parent)
            : base(viewModelStore, serializedRelationship, referencedElement, parent)
        {
            if (this.SerializationElement != null)
            {
                // subscribe
                this.EventManager.GetEvent <ModelElementPropertyChangedEvent>().Subscribe(this.SerializationElement.Id, new Action <ElementPropertyChangedEventArgs>(OnSerializationRelationshipropertyChanged));

                if (this.SerializationElement.SerializedDomainRoles.Count > 0)
                {
                    sourceRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[0], referencedElement, this);
                    this.AddChild(sourceRoleVM);
                }

                if (this.SerializationElement.SerializedDomainRoles.Count > 1)
                {
                    targetRoleVM = new SerializedDomainRoleViewModel(this.ViewModelStore, this.SerializationElement.SerializedDomainRoles[1], referencedElement, this);

                    if (targetRoleVM.SerializationElement.SerializationClass is SerializedDomainClass)
                    {
                        targetClassVM = new SerializedDomainClassViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedDomainClass, this);
                    }
                    else if (targetRoleVM.SerializationElement.SerializationClass is SerializedReferenceRelationship)
                    {
                        targetClassVM = new SerializedReferenceRelationshipViewModel(this.ViewModelStore, targetRoleVM.SerializationElement.SerializationClass as SerializedReferenceRelationship, this);
                    }

                    this.AddChild(targetRoleVM);
                }
            }
        }
Ejemplo n.º 17
0
        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"
        }
Ejemplo n.º 18
0
        private void SynchronizeProperties(DomainRelationship dr, VisioClass vc)
        {
            // Приводим в порядок атрибуты
            String attrstr = "\n";
            String[] attrs = vc.Attributes.Split('\n');
            for (int i = 0; i < attrs.Length; i++)
            {
                attrs[i] = attrs[i].Trim();
                attrstr += attrs[i] + "\n";
            }

            // Добавляем новые свойства
            foreach (String attr in attrs)
            {
                if (attr.Length == 0) continue;
                if (dr.Properties[attr].Xml == null)
                {
                    dr.CreateProperty("/System/String", attr, attr);
                }
            }

            // Удаляем ненужные свойства
            for (int i = 0; i < dr.Properties.Count; i++)
            {
                DomainProperty prop = dr.Properties[i] as DomainProperty;
                if (!attrstr.Contains("\n" + prop.Xml.GetAttribute("Name") + "\n"))
                {
                    dr.Properties.RemoveLinked(prop);
                    i--;
                }
            }
        }
Ejemplo n.º 19
0
 private void AddClassesRelationshipToCollection(EntitiesRelationshipsCollection erCollection, DomainClass dc, DomainClass relatedClass, DomainRelationship dr)
 {
     if (dc != null)
     {
         if (!erCollection.ContainsKey(dc))
         {
             erCollection.Add(dc, new Dictionary<DomainClass, DomainRelationship>());
         }
         if (!erCollection[dc].ContainsKey(relatedClass))
         {
             erCollection[dc].Add(relatedClass, dr);
         }
     }
 }
Ejemplo n.º 20
0
        private string GetCombinedMultiplicity(DomainRelationship r)
        {
            string ret = r.Source.Multiplicity.ToString() + "_" + this.separatorGuid + "_" + r.Target.Multiplicity.ToString();

            return(ret);
        }
Ejemplo n.º 21
0
 public XmlRelationshipData(DomainRelationship Relationship)
     : base(Relationship.OwnerDocument.CreateElement("XmlRelationshipData"))
 {
     Update(Relationship);
 }
        /// <summary>
        /// Adds a new view model for the given element.
        /// </summary>
        /// <param name="node">Element.</param>
        public void AddRSShapeElement(DomainRelationship element)
        {
            if (this.elementViewModel != null)
                this.elementViewModel.Dispose();

            if (element != null)
                this.elementViewModel = new BaseModelElementViewModel(this.ViewModelStore, element);

            OnPropertyChanged("DiagramElementViewModel");
        }
        public override string TransformText()
        {
            this.GenerationEnvironment = null;
            this.Write(" \r\n");
            this.Write("using DslModeling = global::Microsoft.VisualStudio.Modeling;\r\nusing DslEditorDiag" +
                       "rams = global::Tum.PDE.ToolFramework.Modeling.Diagrams;\r\n\r\n");

            #line 12 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

            List <AttributedDomainElement> ruleOnElementsAdd    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleOnLinksChange    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleOnElementsDelete = new List <AttributedDomainElement>();

            List <AttributedDomainElement> ruleMappingOnElementsAdd    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleMappingOnLinksChange    = new List <AttributedDomainElement>();
            List <AttributedDomainElement> ruleMappingOnElementsDelete = new List <AttributedDomainElement>();
            foreach (DiagramClass diagram in this.MetaModel.AllDiagramClasses)
            {
                foreach (PresentationElementClass element in diagram.PresentationElements)
                {
                    if (element is RelationshipShapeClass)
                    {
                        RelationshipShapeClass shape = element as RelationshipShapeClass;
                        DomainRelationship     con   = shape.ReferenceRelationship;

                        if (con == null)
                        {
                            continue;
                        }

                        ruleOnElementsAdd.Add(con);
                        ruleOnLinksChange.Add(con);
                        ruleOnElementsDelete.Add(con);
                    }
                    else if (element is MappingRelationshipShapeClass)
                    {
                        MappingRelationshipShapeClass shape = element as MappingRelationshipShapeClass;
                        DomainClass domainClass             = shape.DomainClass;

                        ReferenceRelationship source = shape.Source;
                        ReferenceRelationship target = shape.Target;

                        if (domainClass != null && source != null && target != null)
                        {
                            if (source.Target.RolePlayer is DomainClass &&
                                target.Target.RolePlayer is DomainClass)
                            {
                                ruleMappingOnElementsAdd.Add(domainClass);
                                ruleMappingOnElementsAdd.Add(source);
                                ruleMappingOnElementsAdd.Add(target);

                                ruleMappingOnLinksChange.Add(source);
                                ruleMappingOnLinksChange.Add(target);

                                ruleMappingOnElementsDelete.Add(domainClass);
                                ruleMappingOnElementsDelete.Add(source);
                                ruleMappingOnElementsDelete.Add(target);
                            }
                        }
                    }
                }
            }

            MetaModel dm = this.MetaModel;


            #line default
            #line hidden
            this.Write("namespace ");

            #line 67 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n");

            #line 69 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

            if (CodeGenerationUtilities.NeedsLinkRules(dm))
            {
            #line default
            #line hidden
                this.Write("\t/// <summary>\r\n    /// This AddRule is for monitoring link creation that we need" +
                           " to reflect\r\n\t/// onto the diagram surface by creating its specified rs shape cl" +
                           "ass.\r\n    /// </summary>\r\n");

            #line 77 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnElementsAdd)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 81 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 82 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded : DslEditorDiagrams::ModelLinkAddRuleForRSShapes\r\n    {\r\n\t\t///" +
                           " <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpublic ");

            #line 90 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded() \r\n\t\t\t: base(");

            #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /" +
                           "// Helper class for model element creation.\r\n        /// </summary>\r\n        pub" +
                           "lic partial class ");

            #line 98 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper : DslEditorDiagrams::ModelLinkAddRuleForRSShapes.RS" +
                           "ShapesFactoryHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n " +
                           "   \t    /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public" +
                           " static ");

            #line 105 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t      " +
                           "  {\r\n    \t            if (instanceHolder == null)\r\n    \t                instance" +
                           "Holder = new ");

            #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write(@"ElementForShapesFactoryHelper();

                    return instanceHolder;
                }
            }			
		}
	}

    /// <summary>
	/// This ChangeRule is for monitoring link role player changes that we need to reflect
	/// onto the diagram surface.
    /// </summary>	
");

            #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnLinksChange)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 127 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesChanged : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForRSShape" +
                           "s\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tp" +
                           "ublic ");

            #line 135 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesChanged() \r\n\t\t\t: base(");

            #line 136 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper.Instance)\r\n\t\t{\r\n\t\t}\t\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Hel" +
                           "per class for model element creation.\r\n        /// </summary>\r\n        public pa" +
                           "rtial class ");

            #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForRSSha" +
                           "pes.RolePlayerChangeHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t   " +
                           " /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static" +
                           " ");

            #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n  " +
                           "  \t            if (instanceHolder == null)\r\n    \t                instanceHolder " +
                           "= new ");

            #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t      " +
                           "  }\r\n    \t    }\t\t\r\n\t\t\r\n\t\t\t/// <summary>\r\n        \t/// Constructor.\r\n        \t///" +
                           " </summary>\r\n\t\t\tpublic ");

            #line 164 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper() \r\n\t\t\t\t: base(");

            #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesAdded.");

            #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance,\r\n\t\t\t\t\t   ");

            #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted.");

            #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\t\t\r\n\t\t\t{\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\t\r\n\r\n\t/// <summary>\r\n    //" +
                           "/ This DeleteRule is for monitoring link deletion that we need to reflect\r\n\t/// " +
                           "onto the diagram surface by deleting its specified rs shape clas\r\n    /// </summ" +
                           "ary>\r\n");

            #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleOnElementsDelete)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 181 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted : DslEditorDiagrams::ModelElementDeletingRuleForRSShapes\r\n  " +
                           "  {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpublic" +
                           " ");

            #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("LinkForShapesDeleted() \r\n\t\t\t: base(");

            #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Helper " +
                           "class for model element creation.\r\n        /// </summary>\r\n        public partia" +
                           "l class ");

            #line 197 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper : DslEditorDiagrams::ModelElementDeletingRuleForRSShapes.Shap" +
                           "eDeletionHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t    //" +
                           "/ Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static ");

            #line 204 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n    \t" +
                           "            if (instanceHolder == null)\r\n    \t                instanceHolder = n" +
                           "ew ");

            #line 209 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t        }" +
                           "\r\n    \t    }\r\n\t\t}\r\n\t}\r\n\t\r\n");

            #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            }
            if (CodeGenerationUtilities.NeedsMappingLinkRules(dm))
            {
            #line default
            #line hidden
                this.Write("\t\r\n\t/// <summary>\r\n    /// This AddRule is for monitoring link creation that we n" +
                           "eed to reflect\r\n\t/// onto the diagram surface by creating its specified rs shape" +
                           " class.\r\n    /// </summary>\r\n");

            #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnElementsAdd)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded : DslEditorDiagrams::ModelLinkAddRuleForMappingRSShapes" +
                           "\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n\t\tpu" +
                           "blic ");

            #line 239 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded() \r\n\t\t\t: base(");

            #line 240 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /" +
                           "// Helper class for model element creation.\r\n        /// </summary>\r\n        pub" +
                           "lic partial class ");

            #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper : DslEditorDiagrams::ModelLinkAddRuleForMappingRSSh" +
                           "apes.RSShapesFactoryHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 249 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n " +
                           "   \t    /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public" +
                           " static ");

            #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t      " +
                           "  {\r\n    \t            if (instanceHolder == null)\r\n    \t                instance" +
                           "Holder = new ");

            #line 259 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write(@"ElementForShapesFactoryHelper();

                    return instanceHolder;
                }
            }
		}
	}

    /// <summary>
	/// This ChangeRule is for monitoring link role player changes that we need to reflect
	/// onto the diagram surface.
    /// </summary>	
");

            #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnLinksChange)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 275 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 276 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesChanged : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleFor" +
                           "MappingRSShapes\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// <" +
                           "/summary>\r\n\t\tpublic ");

            #line 284 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesChanged() \r\n\t\t\t: base(");

            #line 285 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper.Instance)\r\n\t\t{\r\n\t\t}\t\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Hel" +
                           "per class for model element creation.\r\n        /// </summary>\r\n        public pa" +
                           "rtial class ");

            #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper : DslEditorDiagrams::ModelLinkRolePlayerChangeRuleForMappi" +
                           "ngRSShapes.RolePlayerChangeHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t   " +
                           " /// Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static" +
                           " ");

            #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n  " +
                           "  \t            if (instanceHolder == null)\r\n    \t                instanceHolder " +
                           "= new ");

            #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t      " +
                           "  }\r\n    \t    }\r\n\t\t\r\n\t\t\t/// <summary>\r\n        \t/// Constructor.\r\n        \t/// <" +
                           "/summary>\r\n\t\t\tpublic ");

            #line 313 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("RolePlayerChangeHelper() \r\n\t\t\t\t: base(");

            #line 314 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesAdded.");

            #line 314 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ElementForShapesFactoryHelper.Instance,\r\n\t\t\t\t\t   ");

            #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted.");

            #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\t\t\r\n\t\t\t{\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\t\r\n\r\n\t/// <summary>\r\n    //" +
                           "/ This DeleteRule is for monitoring link deletion that we need to reflect\r\n\t/// " +
                           "onto the diagram surface by deleting its specified rs shape clas\r\n    /// </summ" +
                           "ary>\r\n");

            #line 325 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"

                foreach (AttributedDomainElement domainElement in ruleMappingOnElementsDelete)
                {
            #line default
            #line hidden
                    this.Write("\t[DslModeling::RuleOn(typeof(");

            #line 329 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(domainElement.GetFullName(true)));

            #line default
            #line hidden
                    this.Write("), FireTime = DslModeling::TimeToFire.LocalCommit)]\r\n");

            #line 330 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                }


            #line default
            #line hidden
                this.Write("    public partial class ");

            #line 333 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted : DslEditorDiagrams::ModelElementDeletingRuleForMappi" +
                           "ngRSShapes\r\n    {\r\n\t\t/// <summary>\r\n        /// Constructor.\r\n        /// </summ" +
                           "ary>\r\n\t\tpublic ");

            #line 338 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("MappingLinkForShapesDeleted() \r\n\t\t\t: base(");

            #line 339 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper.Instance)\r\n\t\t{\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n        /// Helper " +
                           "class for model element creation.\r\n        /// </summary>\r\n        public partia" +
                           "l class ");

            #line 346 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper : DslEditorDiagrams::ModelElementDeletingRuleForMappingRSShap" +
                           "es.ShapeDeletionHelper\r\n        {\r\n\t\t\tprivate static ");

            #line 348 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper instanceHolder = null;\r\n\r\n    \t    /// <summary>\r\n    \t    //" +
                           "/ Gets a singleton instance.\r\n    \t    /// </summary>\r\n    \t    public static ");

            #line 353 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper Instance\r\n    \t    {\r\n    \t        get\r\n    \t        {\r\n    \t" +
                           "            if (instanceHolder == null)\r\n    \t                instanceHolder = n" +
                           "ew ");

            #line 358 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

            #line default
            #line hidden
                this.Write("ShapeDeletionHelper();\r\n\r\n    \t            return instanceHolder;\r\n    \t        }" +
                           "\r\n    \t    }\r\n\t\t}\r\n\t}\r\n");

            #line 365 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramsLinkRulesGenerator.tt"
            }



            #line default
            #line hidden
            this.Write("}\r\n\r\n");
            return(this.GenerationEnvironment.ToString());
        }
Ejemplo n.º 24
0
        /// <summary>Создание недостающих классов\отношений</summary>
        private void CreateElements()
        {
            Trace.WriteLine("Creating DSL elements");
            Trace.Indent();

            // Создание недостающих классов
            foreach (VisioClass vc in Page.Classes)
            {
                if (vc.IsDslRelationClass)
                {
                    DomainRelationship dr = Doc.Dsl.Relationships.FindByGuid(vc.GUID) as DomainRelationship;

                    // We can only create such VisioClass during synch with Dsl - it should not be possible to add such class from Visio.
                    Debug.Assert(dr.IsValid);

                    SynchronizeProperties(dr, vc);
                }
                else
                {
                    DomainClass dc = Doc.Dsl.Classes.FindByGuid(vc.GUID) as DomainClass;
                    if (!dc.IsValid)
                    {
                        Trace.WriteLine(vc.Name);
                        dc = new DomainClass(Doc);
                        dc.GUID = vc.GUID;
                        Doc.Dsl.Classes.Add(dc);
                    }

                    // Синхронизация свойств
                    SynchronizeProperties(dc, vc);
                }
            }

            // Создание недостающих ассоциаций\композиций
            foreach (VisioConnector vc in Page.Relationships)
            {
                DomainRelationship dr = Doc.Dsl.Relationships.FindByGuid(vc.GUID) as DomainRelationship;
                if (!dr.IsValid)
                {
                    Trace.WriteLine(vc.Name);
                    dr = new DomainRelationship(Doc);
                    dr.GUID = vc.GUID;
                    dr.Source = new DomainRole(Doc);
                    dr.Target = new DomainRole(Doc);
                    dr.IsEmbedding = vc.IsComposition;
                    Doc.Dsl.Relationships.Add(dr);
                }
            }
            Trace.Unindent();
        }
 /// <summary>
 /// Compares two domain relationship by comparing their names.
 /// </summary>
 /// <param name="x">DomainRelationship to be compared.</param>
 /// <param name="y">DomainRelationship to be compared.</param>
 /// <returns>Int from Compare.To</returns>
 private static int CompareDomainRelationshipsByName(DomainRelationship x, DomainRelationship y)
 {
     return x.Name.CompareTo(y.Name);
 }
Ejemplo n.º 26
0
 private bool IsImplementationRelationship(DomainRelationship dr)
 {
     DomainClass sourceClass = Doc.Dsl.Classes.FindIfExist("Name", dr.Source.RolePlayer) as DomainClass;
     DomainClass targetClass = Doc.Dsl.Classes.FindIfExist("Name", dr.Target.RolePlayer) as DomainClass;
     return IsImplementationClass(sourceClass) || IsImplementationClass(targetClass);
 }
Ejemplo n.º 27
0
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="serializedDomainRole">SerializedDomainRole.</param>
        /// <param name="referencedElement">Element that is referenced by the serialization element. Can be null.</param>
        public SerializedDomainRoleViewModel(ViewModelStore viewModelStore, DomainRole domainRole, DomainRelationship referencedElement, SerializedRelationshipViewModel parentVM)
            : base(viewModelStore, null, referencedElement)
        {
            this.parentVM   = parentVM;
            this.domainRole = domainRole;

            if (domainRole != null)
            {
                this.EventManager.GetEvent <ModelElementPropertyChangedEvent>().Subscribe(this.domainRole.Id, new Action <ElementPropertyChangedEventArgs>(OnSerializedRolePropertyChanged));

                if (this.domainRole.RolePlayer != null)
                {
                    this.EventManager.GetEvent <ModelElementPropertyChangedEvent>().Subscribe(this.domainRole.RolePlayer.Id, new Action <ElementPropertyChangedEventArgs>(OnSerializedRolePropertyChanged));
                }
            }
        }
Ejemplo n.º 28
0
        private void GenerateResourceAttributesInternal(ModelElement domainObj, string genResourceName)
        {
            if (domainObj == null)
            {
                return;
            }

            string resourceKey         = "";
            string domainModelType     = "";
            string className           = "";
            bool   generateCategory    = false;
            bool   generateDisplayName = false;

            MetaModel dm = null;

            if (domainObj is DomainClass)
            {
                generateDisplayName = true;
                DomainClass c = (DomainClass)domainObj;
                resourceKey = c.GetFullName(false);
                dm          = c.GetMetaModel();
                className   = CodeGenerationUtilities.GetGenerationClassName(c);
            }
            else if (domainObj is DomainRelationship)
            {
                generateDisplayName = true;
                DomainRelationship c = (DomainRelationship)domainObj;
                resourceKey = c.GetFullName(false);
                dm          = c.GetMetaModel();
                className   = CodeGenerationUtilities.GetGenerationClassName(c);
            }
            else if (domainObj is DomainProperty)
            {
                generateDisplayName = true;
                DomainProperty          p = (DomainProperty)domainObj;
                AttributedDomainElement c = p.Element;
                resourceKey      = c.GetFullName(false) + "/" + p.Name;
                generateCategory = !String.IsNullOrEmpty(p.Category);

                dm = c.GetMetaModel();

                //if( c is DomainClass )
                //	dm = (c as DomainClass).GetMetaModel();
                //else
                //	dm = (c as DomainRelationship).GetMetaModel();
            }
            else if (domainObj is DomainRole)
            {
                generateDisplayName = true;
                DomainRole r = (DomainRole)domainObj;
                generateCategory = !String.IsNullOrEmpty(r.Category);
                DomainRelationship rel = r.Relationship;
                resourceKey = rel.GetFullName(false) + "/" + r.Name;
                dm          = rel.GetMetaModel();
            }
            else if (domainObj is EnumerationLiteral)
            {
                //generateDisplayName = true;
                EnumerationLiteral literal    = (EnumerationLiteral)domainObj;
                DomainEnumeration  domainEnum = literal.DomainEnumeration;
                dm          = domainEnum.MetaModel;
                resourceKey = domainEnum.GetFullName(false) + "/" + literal.Name;
            }
            else if (domainObj is MetaModel)
            {
                generateDisplayName = true;
                dm          = (MetaModel)domainObj;
                resourceKey = dm.GetFullName(false) + "DomainModel";
            }
            domainModelType = dm.GetFullName(true) + "DomainModel";

            // If no resource name specified for DslLibrary, don't generate any resource attributes.
            if (String.IsNullOrEmpty(dm.GeneratedResourceName))
            {
                return;
            }

            if (generateDisplayName)
            {
        #line default
        #line hidden

        #line 179 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("[DslDesign::DisplayNameResource(\"");


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(resourceKey));


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(".DisplayName\", typeof(");


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType));


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("), \"");


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(genResourceName));


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("\")]\r\n");


        #line default
        #line hidden

        #line 181 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            }
            if (generateCategory)
            {
        #line default
        #line hidden

        #line 185 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("[DslDesign::CategoryResource(\"");


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(resourceKey));


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(".Category\", typeof(");


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType));


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("), \"");


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(genResourceName));


        #line default
        #line hidden

        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("\")]\r\n");


        #line default
        #line hidden

        #line 187 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            }


        #line default
        #line hidden

        #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write("[DslDesign::DescriptionResource(\"");


        #line default
        #line hidden

        #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(resourceKey));


        #line default
        #line hidden

        #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write(".Description\", typeof(");


        #line default
        #line hidden

        #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType));


        #line default
        #line hidden

        #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write("), \"");


        #line default
        #line hidden

        #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(genResourceName));


        #line default
        #line hidden

        #line 190 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            this.Write("\")]\r\n");


        #line default
        #line hidden

        #line 191 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"

            if (domainObj is DomainClass)
            {
        #line default
        #line hidden

        #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("[DslModeling::DomainModelOwner(typeof(");


        #line default
        #line hidden

        #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType));


        #line default
        #line hidden

        #line 195 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
                this.Write("))]\r\n");


        #line default
        #line hidden

        #line 196 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\Utilities.tt"
            }
        }
Ejemplo n.º 29
0
 public ConnectionBuilder GetConnectionBuilder(DomainRelationship Relationship)
 {
     String Name = Relationship.Xml.GetAttribute("Name");
     foreach (ConnectionBuilder cb in ConnectionBuilders)
     {
         if (cb.LinkConnectDirective == Name) return cb;
     }
     return null;
 }