Exemplo n.º 1
0
        public static bool IsDiagramGenerated(DiagramClass diagramClass)
        {
            if (diagramClass is SpecificElementsDiagram)
            {
                if ((diagramClass as SpecificElementsDiagram).DomainClasses.Count == 0)
                {
                    return(false);
                }
            }
            else if (diagramClass is ModalDiagram)
            {
                if ((diagramClass as ModalDiagram).DomainClass == null)
                {
                    return(false);
                }
            }
            else if (diagramClass is SpecificDependencyDiagram)
            {
                if ((diagramClass as SpecificDependencyDiagram).DomainClass == null)
                {
                    return(false);
                }
            }

            return(true);
        }
        /// <summary>
        /// Constructor. This view model constructed with 'bHookUpEvents=true' does react on model changes.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element represented by this view model.</param>
        public ImportedDiagramClassViewModel(ViewModelStore viewModelStore, DiagramClass element, DesignerDiagramClass diagramClass)
            : base(viewModelStore, element, true)
        {
            this.diagramClass = diagramClass;
            this.linkId       = GetHostedElement().Id;

            this.IsLocked = false;
        }
        /// <summary>
        /// Constructor. This view model constructed with 'bHookUpEvents=true' does react on model changes.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element represented by this view model.</param>
        public IncludedDiagramClassViewModel(ViewModelStore viewModelStore, DiagramClass element, DesignerDiagramClass diagramClass)
            : base(viewModelStore, element, true)
        {
            this.diagramClass = diagramClass;
            this.linkId = GetHostedElement().Id;

            this.IsLocked = false;
        }
 public static MappingRelationshipShapeClass CreateMappingRelationshipShapeClass(DiagramClass diagramClass)
 {
     MappingRelationshipShapeClass shapeClass = diagramClass.Store.ElementFactory.CreateElement(MappingRelationshipShapeClass.DomainClassId) as MappingRelationshipShapeClass;
     Microsoft.VisualStudio.Modeling.ElementOperations elementOperations = new Microsoft.VisualStudio.Modeling.ElementOperations(diagramClass.Store as IServiceProvider, diagramClass.Store.DefaultPartition);
     Microsoft.VisualStudio.Modeling.ElementGroup elementGroup = new Microsoft.VisualStudio.Modeling.ElementGroup(diagramClass.Store.DefaultPartition);
     elementGroup.Add(shapeClass);
     elementGroup.MarkAsRoot(shapeClass);
     elementOperations.MergeElementGroup(diagramClass, elementGroup);
     shapeClass.Name = NameHelper.GetUniqueName(diagramClass.Store, MappingRelationshipShapeClass.DomainClassId);
     return shapeClass;
 }
Exemplo n.º 5
0
        public static ShapeClass CreateShapeClass(DiagramClass diagramClass)
        {
            ShapeClass shapeClass = diagramClass.Store.ElementFactory.CreateElement(ShapeClass.DomainClassId) as ShapeClass;

            Microsoft.VisualStudio.Modeling.ElementOperations elementOperations = new Microsoft.VisualStudio.Modeling.ElementOperations(diagramClass.Store as IServiceProvider, diagramClass.Store.DefaultPartition);
            Microsoft.VisualStudio.Modeling.ElementGroup      elementGroup      = new Microsoft.VisualStudio.Modeling.ElementGroup(diagramClass.Store.DefaultPartition);
            elementGroup.Add(shapeClass);
            elementGroup.MarkAsRoot(shapeClass);
            elementOperations.MergeElementGroup(diagramClass, elementGroup);
            shapeClass.Name = NameHelper.GetUniqueName(diagramClass.Store, ShapeClass.DomainClassId);
            return(shapeClass);
        }
        public static bool IsDiagramGenerated(DiagramClass diagramClass)
        {
            if (diagramClass is SpecificElementsDiagram)
            {
                if ((diagramClass as SpecificElementsDiagram).DomainClasses.Count == 0)
                    return false;
            }
            else if (diagramClass is ModalDiagram)
            {
                if ((diagramClass as ModalDiagram).DomainClass == null)
                    return false;
            }
            else if (diagramClass is SpecificDependencyDiagram)
            {
                if ((diagramClass as SpecificDependencyDiagram).DomainClass == null)
                    return false;
            }

            return true;
        }
Exemplo n.º 7
0
        /// <summary>
        /// Adds a new root view model for the given node.
        /// </summary>
        /// <param name="node">Node.</param>
        public void AddImportedDC(DiagramClass node)
        {
            if (node == null)
            {
                return;
            }

            // verify that node hasnt been added yet
            foreach (BaseModelElementViewModel viewModel in this.importedDCCVMs)
            {
                if (viewModel.Element.Id == node.Id)
                {
                    return;
                }
            }

            ImportedDiagramClassViewModel vm = new ImportedDiagramClassViewModel(this.ViewModelStore, node, this.GetHostedElement() as DesignerDiagramClass);

            this.importedDCCVMs.Add(vm);

            OnPropertyChanged("HasImportedDCCItems");
        }
        public void GenerateDiagramItemViewModel(MetaModel dm, DiagramClass diagramClass)
        {
        #line default
        #line hidden

        #line 25 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
            this.Write("namespace ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 26 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
            this.Write(".ViewModel\r\n{\r\n");


        #line default
        #line hidden

        #line 28 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

            foreach (PresentationElementClass presentationElement in diagramClass.PresentationElements)
            {
                string baseClass    = "DslEditorViewDiagrams::DiagramItemElementViewModel";
                bool   hasBaseClass = false;
                if (!(presentationElement is ShapeClass))
                {
                    continue;
                }
                else if (presentationElement is ShapeClass)
                {
                    if ((presentationElement as ShapeClass).BaseShape != null)
                    {
                        baseClass    = (presentationElement as ShapeClass).BaseShape.GetMetaModel().Namespace + ".ViewModel." + (presentationElement as ShapeClass).BaseShape.Name + "DiagramItemViewModel";
                        hasBaseClass = true;
                    }
                }

                ShapeClass shapeClassElement = presentationElement as ShapeClass;

                bool canHaveNestedChildren   = false;
                bool canHaveRelativeChildren = false;
                foreach (PresentationElementClass element in diagramClass.PresentationElements)
                {
                    if (element is ShapeClass)
                    {
                        ShapeClass  shapeClass  = element as ShapeClass;
                        DomainClass domainClass = shapeClass.DomainClass;

                        if (domainClass == null)
                        {
                            continue;
                        }


                        if (shapeClass.Parent == presentationElement)
                        {
                            if (shapeClass.IsRelativeChild)
                            {
                                canHaveRelativeChildren = true;
                            }
                            else
                            {
                                canHaveNestedChildren = true;
                            }
                        }
                    }
                }



        #line default
        #line hidden

        #line 70 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write("\t/// <summary>\r\n    /// View model for ");


        #line default
        #line hidden

        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(".\r\n\t///\r\n\t/// Double-derived class to allow easier code customization.\r\n    /// <" +
                           "/summary>\r\n\tpublic partial class ");


        #line default
        #line hidden

        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write("DiagramItemViewModel : ");


        #line default
        #line hidden

        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(@"DiagramItemViewModelBase
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""diagram"">The Diagram this item belongs to.</param>
        /// <param name=""shapeElement"">Model element, that is hosted by this view model.</param>
        public ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(@"DiagramItemViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::NodeShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
        }
		#endregion
	}

	/// <summary>
    /// View model for ");


        #line default
        #line hidden

        #line 93 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 93 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(".\r\n\t///\r\n\t/// This is the abstract base class.\r\n    /// </summary>\r\n\tpublic parti" +
                           "al class ");


        #line default
        #line hidden

        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write("DiagramItemViewModelBase : ");


        #line default
        #line hidden

        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));


        #line default
        #line hidden

        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(@"
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""diagram"">The Diagram this item belongs to.</param>
        /// <param name=""shapeElement"">Model element, that is hosted by this view model.</param>
        protected ");


        #line default
        #line hidden

        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(@"DiagramItemViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::NodeShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
        }
		#endregion
		
		#region Methods
        /// <summary>
        /// Gets whether this view model can have nested children or not.
        /// </summary>
        public override bool CanHaveNestedChildren 
		{ 
			get
			{
");


        #line default
        #line hidden

        #line 120 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

                if (hasBaseClass)
                {
        #line default
        #line hidden

        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                    this.Write("\t\t\tif( base.CanHaveNestedChildren )\r\n\t\t\t\treturn true;\r\n\t\t\t\r\n");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 129 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write("\t\t\t\treturn ");


        #line default
        #line hidden

        #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(canHaveNestedChildren.ToString().ToLower()));


        #line default
        #line hidden

        #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(";\r\n\t\t\t}\r\n\t\t}\r\n\r\n        /// <summary>\r\n        /// Gets whether this view model c" +
                           "an have relative children or not.\r\n        /// </summary>\r\n        public overri" +
                           "de bool CanHaveRelativeChildren\r\n\t\t{ \r\n\t\t\tget\r\n\t\t\t{\r\n");


        #line default
        #line hidden

        #line 141 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

                if (hasBaseClass)
                {
        #line default
        #line hidden

        #line 144 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                    this.Write("\t\t\tif( base.CanHaveRelativeChildren )\r\n\t\t\t\treturn true;\r\n\t\t\t\r\n");


        #line default
        #line hidden

        #line 148 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                }


        #line default
        #line hidden

        #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write("\t\t\t\r\n\t\t\t\treturn ");


        #line default
        #line hidden

        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(canHaveRelativeChildren.ToString().ToLower()));


        #line default
        #line hidden

        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write(";\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n        #endregion\t\t\t\r\n\r\n");


        #line default
        #line hidden

        #line 157 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

                if (shapeClassElement.Parent == null)
                {
        #line default
        #line hidden

        #line 160 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                    this.Write(@"		#region Properties
        /// <summary>
        /// False if this item view model is directly hosted on the diagram surface and its shape can be deleted
        /// whithout the hosted model element beeing required to be deleted as well. True otherwise.
        /// </summary>
        /// <remarks>
		/// Items need to delete their hosted element if they are themselves not directly hosted
		/// on the diagram's surface.
		/// </remarks>
        public override bool AutomaticallyDeletesHostedElement 
        {
            get
            {

				return false;
            }
        }		
		#endregion
		
");


        #line default
        #line hidden

        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                }

                if (shapeClassElement.GeneratePropertiesVM)
                {
                    this.PushIndent("\t\t");
                    this.Write(DiagramGeneratorHelper.Instance.CreatePropertyHandlers(presentationElement, (presentationElement as PresentationDomainClassElement).DomainClass, hasBaseClass));
                    this.PopIndent();
                }


        #line default
        #line hidden

        #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
                this.Write("\t}\r\n\t\r\n");


        #line default
        #line hidden

        #line 192 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
            }


        #line default
        #line hidden

        #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.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\ViewModel\DiagramItemViewModelGenerator.tt"
        }
 /// <summary>
 /// Compares two diagram classes by comparing their names.
 /// </summary>
 /// <param name="x">DiagramClass to be compared.</param>
 /// <param name="y">DiagramClass to be compared.</param>
 /// <returns>Int from Compare.To</returns>
 private static int CompareDiagramClassesByName(DiagramClass x, DiagramClass y)
 {
     return x.Name.CompareTo(y.Name);
 }
Exemplo n.º 10
0
        public void GenerateDiagramLinkViewModel(MetaModel dm, DiagramClass diagramClass)
        {
        #line default
        #line hidden

        #line 25 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
            this.Write("// ");


        #line default
        #line hidden

        #line 26 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));


        #line default
        #line hidden

        #line 26 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
            this.Write("\r\nnamespace ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 27 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
            this.Write(".ViewModel\r\n{\r\n");


        #line default
        #line hidden

        #line 29 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"


            foreach (PresentationElementClass presentationElement in diagramClass.PresentationElements)
            {
                string baseClass = "DslEditorViewDiagrams::BaseDiagramItemLinkViewModel";
                if ((presentationElement is ShapeClass))
                {
                    continue;
                }



        #line default
        #line hidden

        #line 39 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write("\t/// <summary>\r\n    /// View model for ");


        #line default
        #line hidden

        #line 41 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 41 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(".\r\n\t///\r\n\t/// Double-derived class to allow easier code customization.\r\n    /// <" +
                           "/summary>\r\n\tpublic partial class ");


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write("DiagramItemLinkViewModel : ");


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(@"DiagramItemLinkViewModelBase
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""diagram"">The Diagram this item belongs to.</param>
        /// <param name=""shapeElement"">Model element, that is hosted by this view model.</param>
        public ");


        #line default
        #line hidden

        #line 54 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 54 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(@"DiagramItemLinkViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
        }
		#endregion
	}

	/// <summary>
    /// View model for ");


        #line default
        #line hidden

        #line 62 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 62 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(".\r\n\t///\r\n\t/// This is the abstract base class.\r\n    /// </summary>\r\n\tpublic parti" +
                           "al class ");


        #line default
        #line hidden

        #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write("DiagramItemLinkViewModelBase : ");


        #line default
        #line hidden

        #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));


        #line default
        #line hidden

        #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(@"
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""diagram"">The Diagram this item belongs to.</param>
        /// <param name=""shapeElement"">Model element, that is hosted by this view model.</param>
        protected ");


        #line default
        #line hidden

        #line 75 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));


        #line default
        #line hidden

        #line 75 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write(@"DiagramItemLinkViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
        }
		#endregion

");


        #line default
        #line hidden

        #line 81 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"

                this.PushIndent("\t\t");
                if (presentationElement is PresentationDomainClassElement)
                {
                    this.Write(DiagramGeneratorHelper.Instance.CreatePropertyHandlers(presentationElement, (presentationElement as PresentationDomainClassElement).DomainClass, false));
                }
                else if (presentationElement is RelationshipShapeClass)
                {
                    this.Write(DiagramGeneratorHelper.Instance.CreatePropertyHandlers(presentationElement, (presentationElement as RelationshipShapeClass).ReferenceRelationship, false));
                }
                this.PopIndent();


        #line default
        #line hidden

        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
                this.Write("\t\t\r\n\t}\r\n\t\r\n");


        #line default
        #line hidden

        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
            }


        #line default
        #line hidden

        #line 93 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
            this.Write("\t\t\r\n}\r\n");


        #line default
        #line hidden

        #line 95 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramLinkViewModelGenerator.tt"
        }
 /// <summary>
 /// Constructor. This view model constructed with 'bHookUpEvents=true' does react on model changes.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 /// <param name="element">Element represented by this view model.</param>
 public DiagramClassSelectableViewModel(ViewModelStore viewModelStore, DiagramClass element)
     : base(viewModelStore, element)
 {
     this.diagramClass = element;
 }
public void GenerateDiagram(MetaModel dm, DiagramClass diagram)
{
	string baseClass = "DslEditorDiagrams::Diagram";
	if( diagram is DependencyDiagram )
	{
		baseClass = "DslEditorDiagrams::GraphicalDependenciesDiagram";
	}

        
        #line default
        #line hidden
        
        #line 30 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\r\nnamespace ");

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

        
        #line default
        #line hidden
        
        #line 32 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\r\n{\r\n\t/// <summary>\r\n    /// ");

        
        #line default
        #line hidden
        
        #line 35 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));

        
        #line default
        #line hidden
        
        #line 35 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(" class representing a Diagram.\r\n    /// </summary>\r\n\t[DslModeling::DomainObjectId" +
        "(\"");

        
        #line default
        #line hidden
        
        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Id.ToString("D")));

        
        #line default
        #line hidden
        
        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\")]\r\n\tpublic partial class ");

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(" : ");

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\t\r\n\t\t/// <summary>\r\n\t\t/// VModellv" +
        "ariante 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 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Id.ToString("D")));

        
        #line default
        #line hidden
        
        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(@""");
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name=""store"">Store where new element is to be created.</param>
		/// <param name=""propertyAssignments"">List of domain property id/value pairs to set once the element is created.</param>
		public ");

        
        #line default
        #line hidden
        
        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));

        
        #line default
        #line hidden
        
        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(@"(DslModeling::Store store, params DslModeling::PropertyAssignment[] propertyAssignments)
			: this(store != null ? store.DefaultPartitionForClass(DomainClassId) : null, propertyAssignments)
		{
		}
		
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name=""partition"">Partition where new element is to be created.</param>
		/// <param name=""propertyAssignments"">List of domain property id/value pairs to set once the element is created.</param>
		public ");

        
        #line default
        #line hidden
        
        #line 61 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));

        
        #line default
        #line hidden
        
        #line 61 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(@"(DslModeling::Partition partition, params DslModeling::PropertyAssignment[] propertyAssignments)
			: base(partition, propertyAssignments)
		{
		}
		#endregion
		
	    /// <summary>
        /// Gets the unique name of this diagram.
        /// </summary>
        public override string UniqueName
        {
            get
			{
				return """);

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

        
        #line default
        #line hidden
        
        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Name));

        
        #line default
        #line hidden
        
        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\";\r\n\t\t\t}\r\n        }\r\n\t\t\r\n        /// <summary>\r\n        /// Initialize.\r\n        " +
        "/// </summary>\r\n        public override void Initialize()\r\n        {\r\n");

        
        #line default
        #line hidden
        
        #line 83 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

	if( diagram is DesignerDiagramClass )
	{
		foreach(DiagramClass d in (diagram as DesignerDiagramClass).IncludedDiagramClasses )
		{

        
        #line default
        #line hidden
        
        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\t\t\tAddIncludedDiagram(new ");

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Namespace));

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("(this.Store));\r\n");

        
        #line default
        #line hidden
        
        #line 90 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

		}
	}
	

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("        }\r\n");

        
        #line default
        #line hidden
        
        #line 96 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"


	if( CodeGenerationUtilities.NeedsLinkRules(dm) )
	{

        
        #line default
        #line hidden
        
        #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(@"
        /// <summary>
        /// Gets the relationship shapes factory helper. Needs to be derived in the actual instance class.
        /// </summary>
        /// <returns></returns>
        public override DslEditorDiagrams::ModelLinkAddRuleForRSShapes.RSShapesFactoryHelper GetRSShapesFactoryHelper()
        {
            return ");

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

        
        #line default
        #line hidden
        
        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("LinkForShapesAdded.");

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

        
        #line default
        #line hidden
        
        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("ElementForShapesFactoryHelper.Instance;\r\n        }\r\n");

        
        #line default
        #line hidden
        
        #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

	}
	if( CodeGenerationUtilities.NeedsMappingLinkRules(dm) )
	{

        
        #line default
        #line hidden
        
        #line 114 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(@"
        /// <summary>
        /// Gets the mapping relationship shapes factory helper.  Needs to be derived in the actual instance class.
        /// </summary>
        /// <returns></returns>
        public override DslEditorDiagrams::ModelLinkAddRuleForMappingRSShapes.RSShapesFactoryHelper GetMappingRSShapesFactoryHelper()
        {
            return ");

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

        
        #line default
        #line hidden
        
        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("MappingLinkForShapesAdded.");

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

        
        #line default
        #line hidden
        
        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("ElementForShapesFactoryHelper.Instance;\r\n        }\r\n");

        
        #line default
        #line hidden
        
        #line 124 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

	}	

        
        #line default
        #line hidden
        
        #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write(@"		
		#region Methods		
		/// <summary>
        /// Adds a proto element to the current element.
        /// </summary>
        /// <param name=""protoElement"">Proto element representation of the element that is to be added.</param>
        /// <param name=""groupMerger"">
        /// Group merger class used to track id mapping, merge errors/warnings and 
        /// postprocess merging by rebuilding reference relationships.
        /// </param>
        /// <param name=""isRoot"">Root element?</param>
        public override void ModelMerge(DslEditorModeling::ModelProtoElement protoElement, DslEditorModeling::ModelProtoGroupMerger groupMerger, bool isRoot)
		{
");

        
        #line default
        #line hidden
        
        #line 140 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

	if( !diagram.IsCustom )
	{

        
        #line default
        #line hidden
        
        #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\t\t\t// TODO\t\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 147 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
this.Write("\t\t}\r\n\t\t#endregion\r\n\t}\r\n}\r\n");

        
        #line default
        #line hidden
        
        #line 152 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"

}
private void GenerateDiagramViewModelInternal(MetaModel dm, DiagramClass diagramClass)
{
	string baseClass = "DslEditorViewDiagrams::BaseDiagramSurfaceViewModel";	
	if( diagramClass is SpecificElementsDiagram)
	{
		if( (diagramClass as SpecificElementsDiagram).DomainClasses.Count == 0 )
			return;
		
		baseClass = "DslEditorViewDiagrams.Templates.SpecificElementsDesignerSurfaceViewModel";
	}
	else if( diagramClass is DesignerSurfaceDiagram)
	{
		baseClass = "DslEditorViewDiagrams.Templates.DesignerSurfaceViewModel";
	}
	else if( diagramClass is ModalDiagram)
	{
		if( (diagramClass as ModalDiagram).DomainClass == null )
			return;
		
		baseClass = "DslEditorViewDiagrams.Templates.ModalDesignerSurfaceViewModel";
	}

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\r\nnamespace ");

        
        #line default
        #line hidden
        
        #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

        
        #line default
        #line hidden
        
        #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(".ViewModel\r\n{\r\n\t/// <summary>\r\n\t/// This class represents the default diagram sur" +
        "face view model of the ");

        
        #line default
        #line hidden
        
        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.ApplicationName));

        
        #line default
        #line hidden
        
        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(".\r\n\t/// \r\n\t/// Double-derived class to allow easier code customization.\r\n\t/// </s" +
        "ummary>\r\n\tpublic partial class ");

        
        #line default
        #line hidden
        
        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("SurfaceViewModel : ");

        
        #line default
        #line hidden
        
        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("SurfaceViewModelBase\r\n\t{\r\n\t\t#region Constructor\r\n");

        
        #line default
        #line hidden
        
        #line 50 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		this.PushIndent("\t\t");
		CreateConstructor(dm, diagramClass, false);
		this.PopIndent();

        
        #line default
        #line hidden
        
        #line 54 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\r\n\t\t#endregion\r\n\t}\r\n\t\r\n\t/// <summary>\r\n\t/// This class represents the default di" +
        "agram surface view model of the ");

        
        #line default
        #line hidden
        
        #line 59 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.ApplicationName));

        
        #line default
        #line hidden
        
        #line 59 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(".\r\n\t/// \r\n\t/// This is the abstract base class.\r\n\t/// </summary>\r\n\tpublic abstrac" +
        "t partial class ");

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("SurfaceViewModelBase : ");

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\r\n\t{\r\n\t\t#region Constructor\r\n");

        
        #line default
        #line hidden
        
        #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		this.PushIndent("\t\t");
		CreateConstructor(dm, diagramClass, true);
		this.PopIndent();

        
        #line default
        #line hidden
        
        #line 70 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\r\n\t\t#endregion\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
	
		if( diagramClass is ModalDiagram)
		{
			ModalDiagram diagram = diagramClass as ModalDiagram;

        
        #line default
        #line hidden
        
        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t#region ModalDiagram\r\n\t\t/// <summary>\r\n        /// Unique name of the property " +
        "grid docking window.\r\n        /// </summary>\r\n        public override string Doc" +
        "kingPaneName\r\n        {\r\n            get { return \"");

        
        #line default
        #line hidden
        
        #line 83 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 83 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("SurfaceDockWindowPane\" + this.NameExtension; }\r\n        }\r\n\r\n        /// <summary" +
        ">\r\n        /// Title of the docking windo.\r\n        /// </summary>\r\n        publ" +
        "ic override string DockingPaneTitle\r\n        {\r\n            get { return \"");

        
        #line default
        #line hidden
        
        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Title));

        
        #line default
        #line hidden
        
        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\" + this.TitleExtension; }\r\n        }\t\t\r\n\t\t\r\n        /// <summary>\r\n        /// I" +
        "nitialization routine.\r\n        /// </summary>\r\n        protected override void " +
        "Initialize()\r\n        {\r\n            base.Initialize();\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 101 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

				if(diagram.DomainClass.GenerateSpecificViewModel )
				{
					string dClass = diagram.DomainClass.GetMetaModel().Namespace + ".ViewModel." + diagram.DomainClass.Name + "SpecificViewModel";

        
        #line default
        #line hidden
        
        #line 105 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\tthis.HostedElementVM = new ");

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dClass));

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("(this.ViewModelStore, (this.HostedElement as ");

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagram.DomainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("));\r\n");

        
        #line default
        #line hidden
        
        #line 107 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

				}
				else
				{

        
        #line default
        #line hidden
        
        #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\tthis.HostedElementVM = new DslEditorViewModels::BaseModelElementViewModel(this" +
        ".ViewModelStore, this.HostedElement, true);\r\n");

        
        #line default
        #line hidden
        
        #line 113 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
					
				}

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("        }\t\t\r\n\t\t#endregion\r\n");

        
        #line default
        #line hidden
        
        #line 118 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		}
		else if( diagramClass is SpecificElementsDiagram)
		{
			SpecificElementsDiagram diagram = diagramClass as SpecificElementsDiagram;

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(@"
		#region SpecificElementsDiagram		
		private SelectedElementEnum selectedElementEnum = SelectedElementEnum.___None___;
		
		/// <summary>
		/// Enumeration identifying the currently selected element type.
		/// </summary>
		public enum SelectedElementEnum
		{
			___None___,
");

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

			foreach(DomainClass d in diagram.DomainClasses)
			{

        
        #line default
        #line hidden
        
        #line 137 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\t");

        
        #line default
        #line hidden
        
        #line 138 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

        
        #line default
        #line hidden
        
        #line 138 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(",\r\n");

        
        #line default
        #line hidden
        
        #line 139 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

			}

        
        #line default
        #line hidden
        
        #line 141 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n\t\t/// Gets the selected element type.\r\n\t\t/// </summary>" +
        "\r\n\t\tpublic SelectedElementEnum SelectedElementType\r\n\t\t{\r\n\t\t\tget\r\n\t\t\t{\r\n\t\t\t\tretur" +
        "n this.selectedElementEnum;\r\n\t\t\t}\r\n\t\t\tprivate set\r\n\t\t\t{\r\n\t\t\t\tif( this.selectedEl" +
        "ementEnum != value )\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.selectedElementEnum = value;\r\n\t\t\t\t\tOnProp" +
        "ertyChanged(\"SelectedElementType\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n    " +
        "    /// Called if the hosted element was deleted.\r\n        /// </summary>\r\n     " +
        "   /// <param name=\"args\">Data</param>\r\n        protected override void OnHosted" +
        "ElementDeleted(DslModeling::ElementDeletedEventArgs args)\r\n        {\r\n          " +
        "  base.OnHostedElementDeleted(args);\r\n\t\t\t\r\n\t\t\tthis.SelectedElementType = Selecte" +
        "dElementEnum.___None___;\r\n        }\r\n\t\t\r\n        /// <summary>\r\n        /// Call" +
        "back from SelectionChangedEvent.\r\n        /// </summary>\r\n        /// <param nam" +
        "e=\"eventArgs\">SelectionChangedEventArgs.</param>\r\n        protected override voi" +
        "d ReactOnViewSelection(DslEditorEvents::SelectionChangedEventArgs eventArgs)\r\n  " +
        "      {\r\n\t\t\tbase.ReactOnViewSelection(eventArgs);\r\n\r\n\t\t\t// update selection\r\n   " +
        "         if (this.IsInitialized && this.IsDockingPaneVisible)\r\n\t\t\t\tDslEditorView" +
        "Models.Threading.DispatcherExtensions.InvokeAsynchronouslyInBackground(\r\n       " +
        "            System.Windows.Threading.Dispatcher.CurrentDispatcher, new System.Ac" +
        "tion(UpdateView));\r\n        }\r\n\t\t\t\t\r\n        /// <summary>\r\n        /// Initiali" +
        "ze.\r\n        /// </summary>\r\n        protected override void Initialize()\r\n     " +
        "   {\r\n            base.Initialize();\r\n\r\n            if (this.SelectedItemsCollec" +
        "tion != null)\r\n\t\t\t\tDslEditorViewModels.Threading.DispatcherExtensions.InvokeAsyn" +
        "chronouslyInBackground(\r\n                   System.Windows.Threading.Dispatcher." +
        "CurrentDispatcher, new System.Action(UpdateView));\r\n        }\r\n\t\t\r\n\t\t/// <summar" +
        "y>\r\n        /// Updates the view based on the current selection.\r\n        /// </" +
        "summary>\r\n\t\tprotected virtual void UpdateView()\r\n\t\t{\r\n\t\t\tif( this.SelectedItemsC" +
        "ollection.Count != 1 )\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\tDslEditorModeling::DomainModelElem" +
        "ent element = this.SelectedItemsCollection[0] as DslEditorModeling::DomainModelE" +
        "lement;\r\n\t\t\tif( element != null )\r\n\t\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 211 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

			foreach(DomainClass d in diagram.DomainClasses)
			{

        
        #line default
        #line hidden
        
        #line 214 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\t\tif( element is ");

        
        #line default
        #line hidden
        
        #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(" )\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.SelectedElementType = SelectedElementEnum.");

        
        #line default
        #line hidden
        
        #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

        
        #line default
        #line hidden
        
        #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(";\r\n");

        
        #line default
        #line hidden
        
        #line 218 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

				if(d.GenerateSpecificViewModel )
				{
					string dClass = d.GetMetaModel().Namespace + ".ViewModel." + d.Name + "SpecificViewModel";

        
        #line default
        #line hidden
        
        #line 222 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\t\t\tif( HostedElement != null )\r\n\t\t\t\t\t\tif( HostedElement.Element.Id == element.I" +
        "d )\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\tHostedElement = new ");

        
        #line default
        #line hidden
        
        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dClass));

        
        #line default
        #line hidden
        
        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("(this.ViewModelStore, (element as ");

        
        #line default
        #line hidden
        
        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("));\r\n");

        
        #line default
        #line hidden
        
        #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

				}
				else
				{

        
        #line default
        #line hidden
        
        #line 232 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\t\t\tHostedElement = new DslEditorViewModels::BaseModelElementViewModel(this.View" +
        "ModelStore, element, true);\r\n");

        
        #line default
        #line hidden
        
        #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
					
				}

        
        #line default
        #line hidden
        
        #line 236 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t\t\t\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 240 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

			}

        
        #line default
        #line hidden
        
        #line 242 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(@"			}
		}
		
		/// <summary>
        /// Reset.
        /// </summary>
        protected override void Reset()
        {
			this.SelectedElementType = SelectedElementEnum.___None___;
			
			base.Reset();
		}
		
		 /// <summary>
        /// Visibility changed.
        /// </summary>
        /// <param name=""bVisible""></param>
        protected override void OnVisibilityChanged(bool bVisible)
        {
            base.OnVisibilityChanged(bVisible);

            if (this.IsDockingPaneVisible && this.IsInitialized)
				if (this.SelectedItemsCollection != null)
					DslEditorViewModels.Threading.DispatcherExtensions.InvokeAsynchronouslyInBackground(
                   		System.Windows.Threading.Dispatcher.CurrentDispatcher, new System.Action(UpdateView));
        }
		#endregion
		
");

        
        #line default
        #line hidden
        
        #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		}
		else if( diagramClass is DesignerSurfaceDiagram)
		{

        
        #line default
        #line hidden
        
        #line 275 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t#region DesignerSurfaceDiagram\r\n\t\t\r\n\t\t#endregion\r\n");

        
        #line default
        #line hidden
        
        #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		}

        
        #line default
        #line hidden
        
        #line 281 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\t\t#region IDockableViewModel\r\n");

        
        #line default
        #line hidden
        
        #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		if( !(diagramClass is ModalDiagram))
		{

        
        #line default
        #line hidden
        
        #line 286 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("      \t/// <summary>\r\n        /// Unique name of the property grid docking window" +
        ".\r\n        /// </summary>\r\n        public override string DockingPaneName\r\n     " +
        "   {\r\n            get { return \"");

        
        #line default
        #line hidden
        
        #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("SurfaceDockWindowPane\"; }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Title " +
        "of the docking windo.\r\n        /// </summary>\r\n        public override string Do" +
        "ckingPaneTitle\r\n        {\r\n            get { return \"");

        
        #line default
        #line hidden
        
        #line 300 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Title));

        
        #line default
        #line hidden
        
        #line 300 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("\"; }\r\n        }\r\n");

        
        #line default
        #line hidden
        
        #line 302 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

		}

        
        #line default
        #line hidden
        
        #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(@" 
        		
		/// <summary>
		/// Gets the docking pane style. 
		/// </summary>
		public override global::Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.DockingPaneStyle DockingPaneStyle
        {
            get
            {
                return global::Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.DockingPaneStyle.DockedInDocumentPane;
            }
        }
        #endregion		
	}
}

");

        
        #line default
        #line hidden
        
        #line 320 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

}
private void CreateConstructor(MetaModel dm, DiagramClass diagramClass, bool isBaseAbstractClass)
{
	string accessor = "public";
	string name = dm.Name + diagramClass.Name + "SurfaceViewModel";
	if( isBaseAbstractClass )
	{
		accessor = "protected";
		name += "Base";
	}
	
	
	if( diagramClass is ModalDiagram)
	{

        
        #line default
        #line hidden
        
        #line 336 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("/// <summary>\r\n/// Constuctor.\r\n/// </summary>\r\n/// <param name=\"viewModelStore\">" +
        "The store this view model belongs to.</param>\r\n/// <param name=\"element\">Element" +
        ".</param>\r\n");

        
        #line default
        #line hidden
        
        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(accessor));

        
        #line default
        #line hidden
        
        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(name));

        
        #line default
        #line hidden
        
        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("(DslEditorViewModels.Data.ViewModelStore viewModelStore, DslEditorModeling::Domai" +
        "nModelElement element)\r\n    : base(viewModelStore, element)\r\n{\r\n\r\n}\r\n");

        
        #line default
        #line hidden
        
        #line 347 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

	}
	else if( diagramClass is SpecificElementsDiagram)
	{

        
        #line default
        #line hidden
        
        #line 351 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("/// <summary>\r\n/// Constuctor.\r\n/// </summary>\r\n/// <param name=\"viewModelStore\">" +
        "The store this view model belongs to.</param>\r\n/// <param name=\"modelContext\">Mo" +
        "del context.</param>\r\n");

        
        #line default
        #line hidden
        
        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(accessor));

        
        #line default
        #line hidden
        
        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(name));

        
        #line default
        #line hidden
        
        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(@"(DslEditorViewModels.Data.ViewModelStore viewModelStore, DslEditorModeling::ModelContext modelContext)
    : base(viewModelStore, modelContext)
{
}

/// <summary>
/// Constuctor.
/// </summary>
/// <param name=""viewModelStore"">The store this view model belongs to.</param>
/// <param name=""modelContextName"">Model context name.</param>
");

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(accessor));

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(name));

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("(DslEditorViewModels.Data.ViewModelStore viewModelStore, string modelContextName)" +
        "\r\n    : base(viewModelStore, modelContextName)\r\n{\r\n}\r\n");

        
        #line default
        #line hidden
        
        #line 371 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

	}
	else if( diagramClass is DesignerSurfaceDiagram)
	{

        
        #line default
        #line hidden
        
        #line 377 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

	}

	if( diagramClass is RestorableChildlessDiagram || diagramClass is RestorableTemplatedDiagramVMOnly)
	{

        
        #line default
        #line hidden
        
        #line 382 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("/// <summary>\r\n/// Constuctor.\r\n/// </summary>\r\n/// <param name=\"viewModelStore\">" +
        "The store this view model belongs to.</param>\r\n");

        
        #line default
        #line hidden
        
        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(accessor));

        
        #line default
        #line hidden
        
        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(name));

        
        #line default
        #line hidden
        
        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
this.Write("(DslEditorViewModels.Data.ViewModelStore viewModelStore)\r\n    : base(viewModelSto" +
        "re)\r\n{\r\n\r\n}\r\n");

        
        #line default
        #line hidden
        
        #line 392 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

	}
}
        /// <summary>
        /// Adds a new root view model for the given node.
        /// </summary>
        /// <param name="node">Node.</param>
        public void AddImportedDC(DiagramClass node)
        {
            if (node == null)
                return;

            // verify that node hasnt been added yet
            foreach (BaseModelElementViewModel viewModel in this.importedDCCVMs)
                if (viewModel.Element.Id == node.Id)
                    return;

            ImportedDiagramClassViewModel vm = new ImportedDiagramClassViewModel(this.ViewModelStore, node, this.GetHostedElement() as DesignerDiagramClass);
            this.importedDCCVMs.Add(vm);

            OnPropertyChanged("HasImportedDCCItems");
        }
public void GenerateDiagramViewModel(MetaModel dm, DiagramClass diagramClass)
{
		Dictionary<DomainClass, List<EmbeddingRelationship>> embeddingChildParentMapping = new Dictionary<DomainClass, List<EmbeddingRelationship>>();
		foreach (PresentationElementClass element in diagramClass.PresentationElements)
		{
            if (element is ShapeClass)
            {
				ShapeClass shapeClass = element as ShapeClass;
				DomainClass domainClass = shapeClass.DomainClass;

				if( domainClass == null )
					continue;
				
				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);
				}
				
			}
		}
		
	string baseClass = "DslEditorViewDiagrams::DiagramSurfaceViewModel";
	if( diagramClass.IsCustom )
		baseClass = "DslEditorViewDiagrams::BaseDiagramSurfaceViewModel";
	
	if( diagramClass is SpecificDependencyDiagram)
	{
		if( (diagramClass as SpecificDependencyDiagram).DomainClass == null )
			return;
		
		baseClass = "DslEditorDependencies::SpecificDependenciesViewModel";
	}
	else if( diagramClass is DependencyDiagram)
	{
		baseClass = "DslEditorDependencies::GraphicalDependenciesViewModel";
	}

	if( diagramClass is SpecificDependencyDiagram )
	{

        
        #line default
        #line hidden
        
        #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("namespace ");

        
        #line default
        #line hidden
        
        #line 86 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

        
        #line default
        #line hidden
        
        #line 86 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".ViewModel\r\n{\r\n\t/// <summary>\r\n\t/// This class represents the specific dependenci" +
        "es item for ");

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".\r\n\t/// </summary>\r\n\tpublic partial class ");

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

        
        #line default
        #line hidden
        
        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"ItemViewModel : DslEditorDependencies::SpecificDependenciesItemViewModel
	{
		/// <summary>
        /// Constructor. The view model constructed this way does not react on model changes, as such DoHookUpEvents is false.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""element"">Element represented by this view model.</param>
        public ");

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

        
        #line default
        #line hidden
        
        #line 98 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 98 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ItemViewModel(DslEditorViewModels.Data.ViewModelStore viewModelStore, DslModeling" +
        "::ModelElement element)\r\n            : base(viewModelStore, element)\r\n        {\r" +
        "\n\r\n        }\r\n\t}\r\n}\r\n");

        
        #line default
        #line hidden
        
        #line 105 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 107 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("namespace ");

        
        #line default
        #line hidden
        
        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

        
        #line default
        #line hidden
        
        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".ViewModel\r\n{\r\n\t/// <summary>\r\n\t/// This class represents the default diagram sur" +
        "face view model of the ");

        
        #line default
        #line hidden
        
        #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.ApplicationName));

        
        #line default
        #line hidden
        
        #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".\r\n\t/// \r\n\t/// Double-derived class to allow easier code customization.\r\n\t/// </s" +
        "ummary>\r\n\tpublic partial class ");

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModel : ");

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"SurfaceViewModelBase
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">View model store containing this view model.</param>
		/// <param name=""modelContext"">Model context.</param>
        public ");

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModel(");

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"ViewModelStore viewModelStore, DslEditorModeling::ModelContext modelContext)
            : this(viewModelStore, null, modelContext)
        {
        }
		
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">View model store containing this view model.</param>
		/// <param name=""diagram"">Diagram.</param>
		/// <param name=""modelContext"">Model context.</param>
        public ");

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModel(");

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ViewModelStore viewModelStore, DslEditorDiagrams::Diagram diagram, DslEditorModel" +
        "ing::ModelContext modelContext)\r\n            : base(viewModelStore, diagram, mod" +
        "elContext)\r\n        {\r\n        }\r\n\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 139 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 142 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">View model store containing this view model.</param>
		/// <param name=""diagram"">Diagram.</param>
		/// <param name=""modelContext"">Model context.</param>
		/// <param name=""parentModelContext"">Parent model context.</param>
        public ");

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

        
        #line default
        #line hidden
        
        #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModel(");

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

        
        #line default
        #line hidden
        
        #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"ViewModelStore viewModelStore, DslEditorDiagrams::Diagram diagram, DslEditorModeling::ModelContext modelContext, DslEditorModeling::ModelContext parentModelContext)
            : base(viewModelStore, diagram, modelContext, parentModelContext)
        {
        }
");

        
        #line default
        #line hidden
        
        #line 154 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 156 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t#endregion\r\n\t}\r\n\t\r\n\t/// <summary>\r\n\t/// This class represents the default diagr" +
        "am surface view model of the ");

        
        #line default
        #line hidden
        
        #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.ApplicationName));

        
        #line default
        #line hidden
        
        #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".\r\n\t/// \r\n\t/// This is the abstract base class.\r\n\t/// </summary>\r\n\tpublic abstrac" +
        "t partial class ");

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

        
        #line default
        #line hidden
        
        #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModelBase : ");

        
        #line default
        #line hidden
        
        #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));

        
        #line default
        #line hidden
        
        #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\r\n\t{\r\n");

        
        #line default
        #line hidden
        
        #line 167 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 170 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\tDslEditorModeling::ModelContext parentModelContext = null;\r\n\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 173 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}
		
		if( diagramClass is SpecificDependencyDiagram )
		{

        
        #line default
        #line hidden
        
        #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"		#region SpecificDependencyDiagram
		/// <summary>
        /// Gets the type of the model element that specifies the elements in the list of specific items.
        /// </summary>
        public override System.Guid ModelElementType
        {
            get 
			{ 
				return ");

        
        #line default
        #line hidden
        
        #line 187 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture((diagramClass as SpecificDependencyDiagram).DomainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 187 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@".DomainClassId; 
			}
        }
		
		/// <summary>
        /// Creates a specific view model for the given model element.
        /// </summary>
        /// <param name=""store"">Viewmodelstore.</param>
        /// <param name=""modelElement"">Model element to create a specific VM for.</param>
        /// <returns>Specific VM.</returns>
        protected override DslEditorDependencies::SpecificDependenciesItemViewModel CreateSpecificViewModel(DslEditorViewModels.Data.ViewModelStore store, DslModeling::ModelElement modelElement)
		{
			");

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

        
        #line default
        #line hidden
        
        #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ItemViewModel vm = new ");

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

        
        #line default
        #line hidden
        
        #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ItemViewModel(store, modelElement);\r\n\t\t\treturn vm;\r\n\t\t}\r\n\t\t#endregion\r\n");

        
        #line default
        #line hidden
        
        #line 203 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}		

        
        #line default
        #line hidden
        
        #line 205 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">View model store containing this view model.</param>
		/// <param name=""diagram"">Diagram.</param>
		/// <param name=""modelContext"">Model context.</param>
        protected ");

        
        #line default
        #line hidden
        
        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModelBase(");

        
        #line default
        #line hidden
        
        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ViewModelStore viewModelStore, DslEditorDiagrams::Diagram diagram, DslEditorModel" +
        "ing::ModelContext modelContext)\r\n            : base(viewModelStore, diagram, mod" +
        "elContext)\r\n        {\r\n\t\t\t\r\n        }\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 219 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 222 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">View model store containing this view model.</param>
		/// <param name=""diagram"">Diagram.</param>
		/// <param name=""modelContext"">Model context.</param>
		/// <param name=""parentModelContext"">Parent model context.</param>
        protected ");

        
        #line default
        #line hidden
        
        #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModelBase(");

        
        #line default
        #line hidden
        
        #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"ViewModelStore viewModelStore, DslEditorDiagrams::Diagram diagram, DslEditorModeling::ModelContext modelContext, DslEditorModeling::ModelContext parentModelContext)
            : base(viewModelStore, diagram, modelContext)
        {
			this.parentModelContext = parentModelContext;
        }
");

        
        #line default
        #line hidden
        
        #line 235 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 237 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t#endregion\r\n\t\t\r\n\t\t#region IDockableViewModel\r\n");

        
        #line default
        #line hidden
        
        #line 241 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	if( diagramClass is DesignerDiagramClass )
	{

        
        #line default
        #line hidden
        
        #line 244 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"        /// <summary>
        /// Gets the header image URI.
        /// </summary>
        public override string DockingPaneImageUri
        {
            get
            {
                return ""pack://*****:*****@"""; }
        }
        		
		/// <summary>
		/// Gets the docking pane style. 
		/// </summary>
		public override global::Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.DockingPaneStyle DockingPaneStyle
        {
            get
            {
                return global::Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.DockingPaneStyle.DockedInDocumentPane;
            }
        }
        #endregion		
		
		#region Initialization
        /// <summary>
        /// Initialize.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
			
");

        
        #line default
        #line hidden
        
        #line 295 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 298 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("            if (IsIncludedModelInstance)\r\n                return;\r\n\r\n\t\t\tif( paren" +
        "tModelContext == null )\r\n\t\t\t{\r\n\t\t\t\tforeach(DslEditorModeling::BaseModelContext m" +
        "odelContext in this.ModelData.AvailableModelContexts)\r\n\t\t\t\t{\r\n\t\t\t\t\tif( modelCont" +
        "ext.Name == \"");

        
        #line default
        #line hidden
        
        #line 306 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.ModelContext.Name));

        
        #line default
        #line hidden
        
        #line 306 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tparentModelContext = modelContext as DslEditorModeling::ModelCo" +
        "ntext;\r\n\t\t\t\t\t\t//parentModelContext = modelContext as ");

        
        #line default
        #line hidden
        
        #line 309 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

        
        #line default
        #line hidden
        
        #line 309 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 309 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.ModelContext.Name));

        
        #line default
        #line hidden
        
        #line 309 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"ModelContext;
						break;
					}
				}
			}
			
			// subscribe to changes of the diagram class, that is hosted by this view model.
			if( parentModelContext != null && this.Diagram == null)
			{
				DslEditorDiagrams::Diagram diagram = parentModelContext.GetDiagram(""");

        
        #line default
        #line hidden
        
        #line 318 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 318 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@""") as DslEditorDiagrams::Diagram;
				if( diagram != null )
				{
					this.Reset();
					InitIncludedDiagrams(diagram);
					this.Diagram = diagram;
				}

				parentModelContext.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(ModelContext_PropertyChanged);
			}
");

        
        #line default
        #line hidden
        
        #line 328 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 330 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\t\r\n        }\r\n");

        
        #line default
        #line hidden
        
        #line 332 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 335 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\r\n        void ModelContext_PropertyChanged(object sender, System.ComponentMode" +
        "l.PropertyChangedEventArgs e)\r\n        {\r\n            if( e.PropertyName == \"");

        
        #line default
        #line hidden
        
        #line 338 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 338 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\" )\r\n\t\t\t{\r\n\t\t\t\tthis.Reset();\r\n\t\t\t\tDslEditorDiagrams::Diagram diagram = parentMode" +
        "lContext.GetDiagram(\"");

        
        #line default
        #line hidden
        
        #line 341 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 341 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\") as DslEditorDiagrams::Diagram;\r\n\t\t\t\tInitIncludedDiagrams(diagram);\r\n\t\t\t\tthis.D" +
        "iagram = diagram;\r\n\t\t\t\t\r\n\t\t\t\t//InitIncludedDiagrams(parentModelContext.");

        
        #line default
        #line hidden
        
        #line 345 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 345 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(");\r\n\t\t\t\t//this.Diagram = parentModelContext.");

        
        #line default
        #line hidden
        
        #line 346 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 346 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(";\t\t\t\t\r\n\t\t\t}\r\n        }\r\n\t\t[System.Diagnostics.CodeAnalysis.SuppressMessage(\"Micro" +
        "soft.Reliability\", \"CA2000:Dispose objects before losing scope\")]\r\n\t\tvoid InitIn" +
        "cludedDiagrams(DslEditorDiagrams::Diagram includingDiagram)\r\n\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	if( diagramClass is DesignerDiagramClass )
	{
		DesignerDiagramClass designerDiagramClass = diagramClass as DesignerDiagramClass;
		if( designerDiagramClass.IncludedDiagramClasses.Count > 0 )
		{

        
        #line default
        #line hidden
        
        #line 358 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\tforeach(DslEditorDiagrams::Diagram diagram in includingDiagram.IncludedDiagram" +
        "s)\r\n\t\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 361 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		foreach(DiagramClass d in (diagramClass as DesignerDiagramClass).IncludedDiagramClasses )
		{

        
        #line default
        #line hidden
        
        #line 364 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\tif( diagram.UniqueName == \"");

        
        #line default
        #line hidden
        
        #line 365 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Name));

        
        #line default
        #line hidden
        
        #line 365 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

        
        #line default
        #line hidden
        
        #line 365 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\")\r\n\t\t\t\t{\r\n\t\t\t\t\tDslEditorViewDiagrams::DiagramSurfaceViewModel dVm = new ");

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Namespace));

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".ViewModel.");

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Name));

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));

        
        #line default
        #line hidden
        
        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("SurfaceViewModel(\r\n\t\t\t\t\t\tthis.ViewModelStore.GetExternViewModelStore(typeof(");

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Namespace));

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".ViewModel.");

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Name));

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ViewModelStore)) as ");

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Namespace));

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".ViewModel.");

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Name));

        
        #line default
        #line hidden
        
        #line 368 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ViewModelStore, diagram, this.ModelContext);\r\n\t\t\t\t\tdVm.ParentDiagramSurfaceViewMo" +
        "del = this;\r\n\t\t\t\t\tdVm.IsIncludedModelInstance = true;\r\n\t\t\t\t\tthis.AddIncludedSurf" +
        "aceViewModels(dVm);\r\n\t\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 373 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}			

        
        #line default
        #line hidden
        
        #line 375 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 377 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}
	}

        
        #line default
        #line hidden
        
        #line 380 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\r\n\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 382 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 384 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\r\n        #endregion\r\n");

        
        #line default
        #line hidden
        
        #line 386 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 389 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\r\n\t\t/// <summary>\r\n        /// Gets the diagram class type.\r\n        /// </summar" +
        "y>\r\n        /// <returns></returns>\r\n        public override System.Guid GetDiag" +
        "ramClassType()\r\n\t\t{\r\n\t\t\treturn ");

        
        #line default
        #line hidden
        
        #line 397 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

        
        #line default
        #line hidden
        
        #line 397 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 397 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));

        
        #line default
        #line hidden
        
        #line 397 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@".DomainClassId;
		}

		
		#region Methods
		/// <summary>
        /// Verifies if a relationship can be created based on the given data.
        /// </summary>
        /// <param name=""info"">Info specifying the relationship to create.</param>
        /// <returns>True if a relationship can be created. False otherwise.</returns>
        public override bool CanCreateRelationship(DslEditorViewDiagrams::ViewModelRelationshipCreationInfo info)
		{
			if( info.Source == null || info.Target == null )
				return false;
				
			if( info.Source.ShapeElement == null || info.Target.ShapeElement == null )
				return false;
				
			if( info.Source.ShapeElement.Element == null || info.Target.ShapeElement.Element == null )
				return false;
				
			if (!info.Source.ShapeElement.TakesPartInRelationship)
                return false;

			bool bCanCreate = false;			
");

        
        #line default
        #line hidden
        
        #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	foreach (PresentationElementClass element in diagramClass.PresentationElements)
	{
		if( element is RelationshipShapeClass )
		{
			RelationshipShapeClass rsShape = element as RelationshipShapeClass;
			DomainRelationship con = rsShape.ReferenceRelationship;
			if( con != null )
			{

        
        #line default
        #line hidden
        
        #line 431 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\r\n\t\t\tif( !bCanCreate )\r\n\t\t\t\tbCanCreate = CanCreateRelationshipShape");

        
        #line default
        #line hidden
        
        #line 434 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 434 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(info);\r\n");

        
        #line default
        #line hidden
        
        #line 435 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			}
				//if( CodeGenerationUtilities.ShapeTakesPart(shapeClass, con) )
		}
		else if( element is MappingRelationshipShapeClass )
		{
			MappingRelationshipShapeClass rsShape = element as MappingRelationshipShapeClass;
			if( rsShape.DomainClass != null )
			{
				ReferenceRelationship conSource = rsShape.Source;
				ReferenceRelationship conTarget = rsShape.Target;
				if( conSource != null && conTarget != null )
				{
					DomainClass source = conSource.Target.RolePlayer as DomainClass;
					DomainClass target = conTarget.Target.RolePlayer as DomainClass;
					if( source != null && target != null )
					{

        
        #line default
        #line hidden
        
        #line 452 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\r\n\t\t\tif( !bCanCreate )\r\n\t\t\t\tbCanCreate = CanCreateMappingRelationshipShape");

        
        #line default
        #line hidden
        
        #line 455 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 455 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(info);\r\n");

        
        #line default
        #line hidden
        
        #line 456 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

					}
				}
			}
		}

        
        #line default
        #line hidden
        
        #line 462 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"
			if( !bCanCreate )
			{
				foreach(DslEditorViewDiagrams::DiagramSurfaceViewModel vm in this.IncludedSurfaceViewModels)
				{
					if( vm.CanCreateRelationship(info) )
						return true;
				}
			}

            return bCanCreate;
        }

");

        
        #line default
        #line hidden
        
        #line 478 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	foreach (PresentationElementClass element in diagramClass.PresentationElements)
	{
		if( element is RelationshipShapeClass )
		{
			RelationshipShapeClass rsShape = element as RelationshipShapeClass;
			DomainRelationship con = rsShape.ReferenceRelationship;
			if( con != null )
			{

        
        #line default
        #line hidden
        
        #line 487 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t/// <summary>\r\n        /// Verifies if a relationship shape of type ");

        
        #line default
        #line hidden
        
        #line 489 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 489 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@" can be created based on the given data.
        /// </summary>
        /// <param name=""info"">Info specifying the relationship to create.</param>
        /// <returns>True if a relationship can be created. False otherwise.</returns>
		protected virtual bool CanCreateRelationshipShape");

        
        #line default
        #line hidden
        
        #line 493 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 493 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(DslEditorViewDiagrams::ViewModelRelationshipCreationInfo info)\r\n\t\t{\r\n\t\t\tif( info" +
        ".Source.Element is ");

        
        #line default
        #line hidden
        
        #line 495 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Source.RolePlayer.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 495 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" && info.Target.Element is ");

        
        #line default
        #line hidden
        
        #line 495 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Target.RolePlayer.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 495 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" )\r\n\t\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 497 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				// see if we can add relationship without breaking cardinality constraints
				if(con.Target.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.One || con.Target.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.ZeroOne )
				{

        
        #line default
        #line hidden
        
        #line 501 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\tSystem.Collections.ObjectModel.ReadOnlyCollection<");

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("> allM");

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Name));

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances1 =  DslModeling::DomainRoleInfo.GetElementLinks<");

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(">(info.Target.Element, ");

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Target.Name));

        
        #line default
        #line hidden
        
        #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("DomainRoleId);\r\n\t\t\t\tif(allM");

        
        #line default
        #line hidden
        
        #line 503 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Name));

        
        #line default
        #line hidden
        
        #line 503 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances1.Count > 0 )\r\n\t\t\t\t\treturn false;\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 506 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				}
				/*if(con.Source.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.One || con.Source.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.ZeroOne )
				{

        
        #line default
        #line hidden
        
        #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\tSystem.Collections.ObjectModel.ReadOnlyCollection<");

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("> allM");

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Name));

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances2 =  DslModeling::DomainRoleInfo.GetElementLinks<");

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(">(info.Source.Element, ");

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Source.Name));

        
        #line default
        #line hidden
        
        #line 511 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("DomainRoleId);\r\n\t\t\t\tif(allM");

        
        #line default
        #line hidden
        
        #line 512 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Name));

        
        #line default
        #line hidden
        
        #line 512 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances2.Count > 0 )\r\n\t\t\t\t\treturn false;\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 515 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				}
				*/
				if( !con.AllowsDuplicates )
				{

        
        #line default
        #line hidden
        
        #line 520 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\t// see if a relationship already exists (can not create new one of the same t" +
        "ype as no duplicates are allowed)\r\n\t\t\t\tif( ");

        
        #line default
        #line hidden
        
        #line 522 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 522 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".GetLinks(info.Source.Element as ");

        
        #line default
        #line hidden
        
        #line 522 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Source.RolePlayer.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 522 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(", info.Target.Element as ");

        
        #line default
        #line hidden
        
        #line 522 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Target.RolePlayer.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 522 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(").Count > 0 )\r\n\t\t\t\t\treturn false;\r\n");

        
        #line default
        #line hidden
        
        #line 524 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				}

        
        #line default
        #line hidden
        
        #line 526 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 534 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			}
		}
		else if( element is MappingRelationshipShapeClass )
		{
			MappingRelationshipShapeClass rsShape = element as MappingRelationshipShapeClass;
			if( rsShape.DomainClass != null )
			{
			
				ReferenceRelationship conSource = rsShape.Source;
				ReferenceRelationship conTarget = rsShape.Target;
				if( conSource != null && conTarget != null )
				{
					DomainClass source = conSource.Target.RolePlayer as DomainClass;
					DomainClass target = conTarget.Target.RolePlayer as DomainClass;
					if( source != null && target != null )
					{

        
        #line default
        #line hidden
        
        #line 551 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t/// <summary>\r\n        /// Verifies if a mapping relationship of type ");

        
        #line default
        #line hidden
        
        #line 553 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 553 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@" can be created based on the given data.
        /// </summary>
        /// <param name=""info"">Info specifying the relationship to create.</param>
        /// <returns>True if a relationship can be created. False otherwise.</returns>
		protected virtual bool CanCreateMappingRelationshipShape");

        
        #line default
        #line hidden
        
        #line 557 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 557 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(DslEditorViewDiagrams::ViewModelRelationshipCreationInfo info)\r\n\t\t{\r\n\t\t\tif( info" +
        ".Source.Element is ");

        
        #line default
        #line hidden
        
        #line 559 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(source.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 559 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" && info.Target.Element is ");

        
        #line default
        #line hidden
        
        #line 559 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(target.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 559 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" )\r\n\t\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 561 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

					// see if we can add new element + relationships without breaking cardinality constraints
					if(conSource.Target.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.One || conSource.Target.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.ZeroOne )
					{

        
        #line default
        #line hidden
        
        #line 565 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\tSystem.Collections.ObjectModel.ReadOnlyCollection<");

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("> allM");

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.Name));

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances1 =  DslModeling::DomainRoleInfo.GetElementLinks<");

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(">(info.Source.Element, ");

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.Target.Name));

        
        #line default
        #line hidden
        
        #line 566 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("DomainRoleId);\r\n\t\t\t\tif(allM");

        
        #line default
        #line hidden
        
        #line 567 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.Name));

        
        #line default
        #line hidden
        
        #line 567 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances1.Count > 0 )\r\n\t\t\t\t\treturn false;\r\n");

        
        #line default
        #line hidden
        
        #line 569 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

					}
					if(conTarget.Target.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.One || conTarget.Target.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.ZeroOne )
					{

        
        #line default
        #line hidden
        
        #line 573 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\tSystem.Collections.ObjectModel.ReadOnlyCollection<");

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("> allM");

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.Name));

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances2 =  DslModeling::DomainRoleInfo.GetElementLinks<");

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(">(info.Target.Element, ");

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.Target.Name));

        
        #line default
        #line hidden
        
        #line 574 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("DomainRoleId);\r\n\t\t\t\tif(allM");

        
        #line default
        #line hidden
        
        #line 575 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.Name));

        
        #line default
        #line hidden
        
        #line 575 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("Instances2.Count > 0 )\r\n\t\t\t\t\treturn false;\r\n");

        
        #line default
        #line hidden
        
        #line 577 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

					}

        
        #line default
        #line hidden
        
        #line 579 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 587 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

					}
				}
			}
		}

        
        #line default
        #line hidden
        
        #line 593 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 595 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\r\n        /// <summary>\r\n        /// Creates a relationship based on the given da" +
        "ta.\r\n        /// </summary>\r\n        /// <param name=\"info\">Info specifying the " +
        "relationship to create.</param>\r\n        public override void CreateRelationship" +
        "(DslEditorViewDiagrams::ViewModelRelationshipCreationInfo info)\r\n\t\t{\r\n\t\t\tif( inf" +
        "o.Source == null || info.Target == null )\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\tif( info.Source" +
        ".ShapeElement == null || info.Target.ShapeElement == null )\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n" +
        "\t\t\tif( info.Source.ShapeElement.Element == null || info.Target.ShapeElement.Elem" +
        "ent == null )\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\tif (!info.Source.ShapeElement.TakesPartInRe" +
        "lationship)\r\n                return;\r\n\r\n\t\t\t// gather creatable shapes\r\n\t\t\tSystem" +
        ".Collections.Generic.List<DslEditorSelection::SearchRSType.SearchRSTypeStruct> s" +
        "hapesPossible = this.GetCreatableRelationships(info);\r\n\t\t\tSystem.Guid shapeToCre" +
        "ate = System.Guid.Empty;\r\n\r\n\t\t\tif( shapesPossible.Count == 0 )\r\n\t\t\t\treturn;\r\n\t\t\t" +
        "else if (shapesPossible.Count == 1)\r\n                shapeToCreate = shapesPossi" +
        "ble[0].DomainClassId;\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// let user choose what shape type he " +
        "wants to create\r\n\t\t\t\tDslEditorSelection::SelectGenericViewModel<DslEditorSelecti" +
        "on::SearchRSType.SearchRSTypeStruct> selectionViewModel\r\n                       " +
        "     = new DslEditorSelection.SelectGenericViewModel<DslEditorSelection::SearchR" +
        "SType.SearchRSTypeStruct>(\r\n                                this.ViewModelStore," +
        " shapesPossible,\r\n                                new DslEditorSelection.Generic" +
        "SearchDelegate<DslEditorSelection::SearchRSType.SearchRSTypeStruct>(DslEditorSel" +
        "ection::SearchRSType.Search),\r\n                                new DslEditorSele" +
        "ction.GenericSortDelegate<DslEditorSelection::SearchRSType.SearchRSTypeStruct>(D" +
        "slEditorSelection::SearchRSType.Sort));\r\n\r\n                // show dialog\r\n     " +
        "           bool? result = this.GlobalServiceProvider.Resolve<DslEditorServices::" +
        "IUIVisualizerService>().ShowDialog(\"SelectRSTypePopup\", selectionViewModel);\r\n  " +
        "              if (result == true && selectionViewModel.SelectedElement != null)\r" +
        "\n                {\r\n                    shapeToCreate = selectionViewModel.Selec" +
        "tedElement.Value.DomainClassId;\r\n                }\r\n\r\n                selectionV" +
        "iewModel.Dispose();\r\n                System.GC.Collect();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif( sha" +
        "peToCreate == System.Guid.Empty )\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\tthis.CreateRelationship" +
        "(info, shapeToCreate);\r\n\t\t\t\r\n\t\t\t\r\n        }\r\n\r\n        /// <summary>\r\n        //" +
        "/ Creates a relationship based on the given data.\r\n        /// </summary>\r\n     " +
        "   /// <param name=\"info\">Info specifying the relationship to create.</param>\r\n " +
        "       /// <param name=\"shapeToCreate\">Type of the relationship shape</param>\r\n " +
        "       public override void CreateRelationship(DslEditorViewDiagrams::ViewModelR" +
        "elationshipCreationInfo info, System.Guid shapeToCreate)\r\n        {\r\n");

        
        #line default
        #line hidden
        
        #line 658 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	foreach (PresentationElementClass element in diagramClass.PresentationElements)
	{
		if( element is RelationshipShapeClass )
		{
			RelationshipShapeClass rsShape = element as RelationshipShapeClass;
			DomainRelationship con = rsShape.ReferenceRelationship;
			if( con != null )
			{

        
        #line default
        #line hidden
        
        #line 667 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\tif( shapeToCreate == ");

        
        #line default
        #line hidden
        
        #line 668 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 668 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".DomainClassId)\r\n\t\t\t{\r\n\t\t\t\tusing(DslModeling::Transaction transaction = this.Stor" +
        "e.TransactionManager.BeginTransaction(\"Add global::Tum.VModellXT.Dynamik.Ueberga" +
        "ngShape \") )\r\n\t\t\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 672 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				if(con.Source.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.One || con.Source.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.ZeroOne )
				{

        
        #line default
        #line hidden
        
        #line 675 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\t\tSystem.Collections.ObjectModel.ReadOnlyCollection<");

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("> allInstances =  DslModeling::DomainRoleInfo.GetElementLinks<");

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(">(info.Source.Element, ");

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.Source.Name));

        
        #line default
        #line hidden
        
        #line 676 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("DomainRoleId);\r\n\t\t\t\t\tif(allInstances.Count > 0 )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tallInstances[0].D" +
        "elete();\r\n\t\t\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 681 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				}				

        
        #line default
        #line hidden
        
        #line 683 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\r\n\t\t\t\t\tCreateRelationship<");

        
        #line default
        #line hidden
        
        #line 685 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 685 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(">(info.Source.ShapeElement.Element, info.Target.ShapeElement.Element);\r\n\t\t\t\t\t\r\n\t\t" +
        "\t\t\ttransaction.Commit();\r\n\t\t\t\t}\r\n\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 690 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			}
		}
		else if( element is MappingRelationshipShapeClass )
		{
			MappingRelationshipShapeClass rsShape = element as MappingRelationshipShapeClass;
			if( rsShape.DomainClass != null )
			{
				DomainClass domainClass = rsShape.DomainClass;
				ReferenceRelationship conSource = rsShape.Source;
				ReferenceRelationship conTarget = rsShape.Target;
				if( conSource != null && conTarget != null )
				{
					DomainClass source = conSource.Target.RolePlayer as DomainClass;
					DomainClass target = conTarget.Target.RolePlayer as DomainClass;
					if( source != null && target != null )
					{

        
        #line default
        #line hidden
        
        #line 707 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\r\n\t\t\tif( shapeToCreate == ");

        
        #line default
        #line hidden
        
        #line 709 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 709 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".DomainClassId)\r\n\t\t\t{\r\n\t\t\t\tusing(DslModeling::Transaction transaction = this.Stor" +
        "e.TransactionManager.BeginTransaction(\"Add global::Tum.VModellXT.Dynamik.Ueberga" +
        "ngShape \") )\r\n\t\t\t\t{\r\n\t\t\t\t\t");

        
        #line default
        #line hidden
        
        #line 713 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 713 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" linkElement = new ");

        
        #line default
        #line hidden
        
        #line 713 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 713 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(this.Store);\r\n\t\t\t\t\tnew ");

        
        #line default
        #line hidden
        
        #line 714 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conSource.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 714 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(linkElement, info.Source.Element as ");

        
        #line default
        #line hidden
        
        #line 714 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(source.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 714 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(");\r\n\t\t\t\t\tnew ");

        
        #line default
        #line hidden
        
        #line 715 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(conTarget.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 715 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(linkElement, info.Target.Element as ");

        
        #line default
        #line hidden
        
        #line 715 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(target.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 715 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(");\t\t\t\t\t\r\n\r\n\t\t\t\t\tDslModeling::ModelElement modelElementParent = EmbedElement(linkE" +
        "lement);\r\n\t\t\t\t\tif( modelElementParent == null )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttransaction.Rollb" +
        "ack();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif (");

        
        #line default
        #line hidden
        
        #line 724 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 724 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ElementNameProvider.Instance.HasName(linkElement))\r\n    \t\t\t\t\t\t");

        
        #line default
        #line hidden
        
        #line 725 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Name));

        
        #line default
        #line hidden
        
        #line 725 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("ElementNameProvider.Instance.CreateAndAssignName(modelElementParent, linkElement)" +
        ";\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\ttransaction.Commit();\r\n\t\t\t\t}\r\n\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 732 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

					}
				}
			}
		}

        
        #line default
        #line hidden
        
        #line 738 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 740 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"
			foreach(DslEditorViewDiagrams::DiagramSurfaceViewModel vm in this.IncludedSurfaceViewModels)
			{
				vm.CreateRelationship(info, shapeToCreate);
			}
        }
		
        /// <summary>
        /// Gets creatable relationship shapes.
        /// </summary>
        /// <param name=""info"">Info specifying the relationship to create.</param>
        public override System.Collections.Generic.List<DslEditorSelection::SearchRSType.SearchRSTypeStruct> GetCreatableRelationships(DslEditorViewDiagrams::ViewModelRelationshipCreationInfo info)
        {
			System.Collections.Generic.List<DslEditorSelection::SearchRSType.SearchRSTypeStruct> shapesPossible = base.GetCreatableRelationships(info);
			
");

        
        #line default
        #line hidden
        
        #line 756 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

	foreach (PresentationElementClass element in diagramClass.PresentationElements)
	{
		if( element is RelationshipShapeClass )
		{
			RelationshipShapeClass rsShape = element as RelationshipShapeClass;
			DomainRelationship con = rsShape.ReferenceRelationship;
			if( con != null )
			{

        
        #line default
        #line hidden
        
        #line 765 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\tif( CanCreateRelationshipShape");

        
        #line default
        #line hidden
        
        #line 766 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 766 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(info) )\r\n\t\t\t{\r\n\t\t\t\tshapesPossible.Add(new DslEditorSelection::SearchRSType.Searc" +
        "hRSTypeStruct(\r\n\t\t\t\t\t");

        
        #line default
        #line hidden
        
        #line 769 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 769 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".DomainClassId, \"");

        
        #line default
        #line hidden
        
        #line 769 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(con.DisplayName));

        
        #line default
        #line hidden
        
        #line 769 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\", \"");

        
        #line default
        #line hidden
        
        #line 769 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.DisplayName));

        
        #line default
        #line hidden
        
        #line 769 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\"));\r\n\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 771 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			}
		}
		else if( element is MappingRelationshipShapeClass )
		{
			MappingRelationshipShapeClass rsShape = element as MappingRelationshipShapeClass;
			if( rsShape.DomainClass != null )
			{
				DomainClass domainClass = rsShape.DomainClass;
				ReferenceRelationship conSource = rsShape.Source;
				ReferenceRelationship conTarget = rsShape.Target;
				if( conSource != null && conTarget != null )
				{
					DomainClass source = conSource.Target.RolePlayer as DomainClass;
					DomainClass target = conTarget.Target.RolePlayer as DomainClass;
					if( source != null && target != null )
					{

        
        #line default
        #line hidden
        
        #line 788 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\r\n\t\t\tif( CanCreateMappingRelationshipShape");

        
        #line default
        #line hidden
        
        #line 790 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.Name));

        
        #line default
        #line hidden
        
        #line 790 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(info) )\r\n\t\t\t{\r\n\t\t\t\tshapesPossible.Add(new DslEditorSelection::SearchRSType.Searc" +
        "hRSTypeStruct(\r\n\t\t\t\t\t");

        
        #line default
        #line hidden
        
        #line 793 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 793 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".DomainClassId, \"");

        
        #line default
        #line hidden
        
        #line 793 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.DisplayName));

        
        #line default
        #line hidden
        
        #line 793 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\", \"");

        
        #line default
        #line hidden
        
        #line 793 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(rsShape.DisplayName));

        
        #line default
        #line hidden
        
        #line 793 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\"));\r\n\t\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 795 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
				
					}
				}
			}
		}
	}

        
        #line default
        #line hidden
        
        #line 801 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"
			foreach(DslEditorViewDiagrams::DiagramSurfaceViewModel vm in this.IncludedSurfaceViewModels)
			{
				shapesPossible.AddRange(vm.GetCreatableRelationships(info));
			}
			
            return shapesPossible;
        }		
        #endregion		

		#region Classes Embedding Methods
");

        
        #line default
        #line hidden
        
        #line 813 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		List<PresentationElementClass> requireCustomEmbedMethods = new List<PresentationElementClass>();
		foreach (PresentationElementClass element in diagramClass.PresentationElements)
		{
			if( element is MappingRelationshipShapeClass )
			{
				MappingRelationshipShapeClass shape = element as MappingRelationshipShapeClass;
				DomainClass domainClass = shape.DomainClass;
				if( domainClass == null )
					continue;
				
				requireCustomEmbedMethods.Add(element);
			}
			else if( element is ShapeClass )
			{
				ShapeClass shapeClass = element as ShapeClass;
				DomainClass domainClass = shapeClass.DomainClass;
				if( domainClass == null )
					continue;
				
				if( shapeClass.Parent != null )
				{
					bool bFound = false;
					foreach(EmbeddingRelationship con in embeddingChildParentMapping[domainClass] )
					{
						if( con.Source.RolePlayer == shapeClass.Parent.DomainClass )
							bFound = true;
					}
					
					if( !bFound )
					{
						requireCustomEmbedMethods.Add(element);

						continue;
					}
				}
			}

		}
		
		if( requireCustomEmbedMethods.Count > 0 )
		{

        
        #line default
        #line hidden
        
        #line 855 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"
        /// <summary>
        /// Tries to embed an element as the child of the selected element.
        /// </summary>
        /// <param name=""modelElement"">Model element to embed.</param>
        /// <returns>Parent model element the child was embedded at on success. Null otherwise.</returns>
        public override DslEditorModeling::DomainModelElement EmbedElement(DslEditorModeling::DomainModelElement modelElement)
        {
");

        
        #line default
        #line hidden
        
        #line 864 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			foreach (PresentationElementClass element in requireCustomEmbedMethods)
			{
				if( element is MappingRelationshipShapeClass )
				{
					MappingRelationshipShapeClass shape = element as MappingRelationshipShapeClass;
					DomainClass domainClass = shape.DomainClass;

        
        #line default
        #line hidden
        
        #line 871 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\tif( modelElement.GetDomainClassId() == ");

        
        #line default
        #line hidden
        
        #line 872 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 872 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".DomainClassId )\r\n\t\t\t\treturn Embed");

        
        #line default
        #line hidden
        
        #line 873 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name));

        
        #line default
        #line hidden
        
        #line 873 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("For");

        
        #line default
        #line hidden
        
        #line 873 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(shape.Name));

        
        #line default
        #line hidden
        
        #line 873 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(modelElement as ");

        
        #line default
        #line hidden
        
        #line 873 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 873 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(");\r\n");

        
        #line default
        #line hidden
        
        #line 874 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

				}
				else if( element is ShapeClass )
				{
					ShapeClass shapeClass = element as ShapeClass;
					DomainClass domainClass = shapeClass.DomainClass;

        
        #line default
        #line hidden
        
        #line 880 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\tif( modelElement.GetDomainClassId() == ");

        
        #line default
        #line hidden
        
        #line 881 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 881 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(".DomainClassId )\r\n\t\t\t\treturn Embed");

        
        #line default
        #line hidden
        
        #line 882 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name));

        
        #line default
        #line hidden
        
        #line 882 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("For");

        
        #line default
        #line hidden
        
        #line 882 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.Name));

        
        #line default
        #line hidden
        
        #line 882 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(modelElement as ");

        
        #line default
        #line hidden
        
        #line 882 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 882 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(");\r\n");

        
        #line default
        #line hidden
        
        #line 883 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
					
				}

			}

        
        #line default
        #line hidden
        
        #line 887 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\r\n\t\t\treturn base.EmbedElement(modelElement);\r\n\t\t}\r\n");

        
        #line default
        #line hidden
        
        #line 891 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}
		
		foreach (PresentationElementClass element in requireCustomEmbedMethods)
		{
			if( element is MappingRelationshipShapeClass )
			{
				MappingRelationshipShapeClass shape = element as MappingRelationshipShapeClass;
				DomainClass domainClass = shape.DomainClass;

        
        #line default
        #line hidden
        
        #line 900 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"
		/// <summary>
        /// Attempts to embedd the given element at its specific parent. If it fails, null is returned.
        /// </summary>
        /// <param name=""linkElement"">Element to embed.</param>
        /// <returns>Parent element on success. Null on failure.</returns>
		protected abstract DslEditorModeling::DomainModelElement Embed");

        
        #line default
        #line hidden
        
        #line 907 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name));

        
        #line default
        #line hidden
        
        #line 907 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("For");

        
        #line default
        #line hidden
        
        #line 907 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(shape.Name));

        
        #line default
        #line hidden
        
        #line 907 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(");

        
        #line default
        #line hidden
        
        #line 907 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 907 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" linkElement);\r\n");

        
        #line default
        #line hidden
        
        #line 908 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			}

		
			else if( element is ShapeClass )
			{
				ShapeClass shapeClass = element as ShapeClass;
				DomainClass domainClass = shapeClass.DomainClass;

        
        #line default
        #line hidden
        
        #line 916 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(@"
		/// <summary>
        /// Attempts to embedd the given element at its specific parent. If it fails, null is returned.
        /// </summary>
        /// <param name=""info"">Creation info.</param>
        /// <param name=""linkElement"">Element to embed.</param>
        /// <returns>Parent element on success. Null on failure.</returns>
		protected abstract DslEditorModeling::DomainModelElement Embed");

        
        #line default
        #line hidden
        
        #line 924 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.Name));

        
        #line default
        #line hidden
        
        #line 924 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("For");

        
        #line default
        #line hidden
        
        #line 924 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(shapeClass.Name));

        
        #line default
        #line hidden
        
        #line 924 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("(");

        
        #line default
        #line hidden
        
        #line 924 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(domainClass.GetFullName(true)));

        
        #line default
        #line hidden
        
        #line 924 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write(" elementToEmbed);\r\n");

        
        #line default
        #line hidden
        
        #line 925 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

			}
		}

        
        #line default
        #line hidden
        
        #line 928 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t#endregion\r\n");

        
        #line default
        #line hidden
        
        #line 930 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 932 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\r\n\t\t#region Dispose\r\n        /// <summary>\r\n        /// Clean up.\r\n        /// " +
        "</summary>\r\n        protected override void OnDispose()\r\n        {\r\n");

        
        #line default
        #line hidden
        
        #line 940 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		if( !diagramClass.IsCustom )
		{

        
        #line default
        #line hidden
        
        #line 943 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\r\n            if( parentModelContext != null )\r\n            \tparentModelContex" +
        "t.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(Model" +
        "Context_PropertyChanged);\r\n");

        
        #line default
        #line hidden
        
        #line 946 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 948 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"
this.Write("\t\t\t\t\t\r\n\t\t\t\t\r\n            base.OnDispose();\r\n        }\r\n        #endregion\r\n\t}\r\n\r\n" +
        "}\r\n");

        
        #line default
        #line hidden
        
        #line 956 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramViewModelGenerator.tt"

}
Exemplo n.º 17
0
        private void CreateConstructor(MetaModel dm, DiagramClass diagramClass, bool isBaseAbstractClass)
        {
            string accessor = "public";
            string name     = dm.Name + diagramClass.Name + "SurfaceViewModel";

            if (isBaseAbstractClass)
            {
                accessor = "protected";
                name    += "Base";
            }


            if (diagramClass is ModalDiagram)
            {
        #line default
        #line hidden

        #line 336 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("/// <summary>\r\n/// Constuctor.\r\n/// </summary>\r\n/// <param name=\"viewModelStore\">" +
                           "The store this view model belongs to.</param>\r\n/// <param name=\"element\">Element" +
                           ".</param>\r\n");


        #line default
        #line hidden

        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(accessor));


        #line default
        #line hidden

        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(" ");


        #line default
        #line hidden

        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(name));


        #line default
        #line hidden

        #line 342 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("(DslEditorViewModels.Data.ViewModelStore viewModelStore, DslEditorModeling::Domai" +
                           "nModelElement element)\r\n    : base(viewModelStore, element)\r\n{\r\n\r\n}\r\n");


        #line default
        #line hidden

        #line 347 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }
            else if (diagramClass is SpecificElementsDiagram)
            {
        #line default
        #line hidden

        #line 351 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("/// <summary>\r\n/// Constuctor.\r\n/// </summary>\r\n/// <param name=\"viewModelStore\">" +
                           "The store this view model belongs to.</param>\r\n/// <param name=\"modelContext\">Mo" +
                           "del context.</param>\r\n");


        #line default
        #line hidden

        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(accessor));


        #line default
        #line hidden

        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(" ");


        #line default
        #line hidden

        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(name));


        #line default
        #line hidden

        #line 357 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(@"(DslEditorViewModels.Data.ViewModelStore viewModelStore, DslEditorModeling::ModelContext modelContext)
    : base(viewModelStore, modelContext)
{
}

/// <summary>
/// Constuctor.
/// </summary>
/// <param name=""viewModelStore"">The store this view model belongs to.</param>
/// <param name=""modelContextName"">Model context name.</param>
");


        #line default
        #line hidden

        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(accessor));


        #line default
        #line hidden

        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(" ");


        #line default
        #line hidden

        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(name));


        #line default
        #line hidden

        #line 367 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("(DslEditorViewModels.Data.ViewModelStore viewModelStore, string modelContextName)" +
                           "\r\n    : base(viewModelStore, modelContextName)\r\n{\r\n}\r\n");


        #line default
        #line hidden

        #line 371 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }
            else if (diagramClass is DesignerSurfaceDiagram)
            {
        #line default
        #line hidden

        #line 377 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }

            if (diagramClass is RestorableChildlessDiagram || diagramClass is RestorableTemplatedDiagramVMOnly)
            {
        #line default
        #line hidden

        #line 382 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("/// <summary>\r\n/// Constuctor.\r\n/// </summary>\r\n/// <param name=\"viewModelStore\">" +
                           "The store this view model belongs to.</param>\r\n");


        #line default
        #line hidden

        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(accessor));


        #line default
        #line hidden

        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(" ");


        #line default
        #line hidden

        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(name));


        #line default
        #line hidden

        #line 387 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("(DslEditorViewModels.Data.ViewModelStore viewModelStore)\r\n    : base(viewModelSto" +
                           "re)\r\n{\r\n\r\n}\r\n");


        #line default
        #line hidden

        #line 392 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }
        }
Exemplo n.º 18
0
 public string GenerateDiagramViewModel(MetaModel dm, DiagramClass diagramClass)
 {
     this.GenerationEnvironment = null;
     this.GenerateDiagramViewModelInternal(dm, diagramClass);
     return(this.GenerationEnvironment.ToString());
 }
public void GenerateDiagramItemViewModel(MetaModel dm, DiagramClass diagramClass)
{

        
        #line default
        #line hidden
        
        #line 25 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("namespace ");

        
        #line default
        #line hidden
        
        #line 26 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(dm.Namespace));

        
        #line default
        #line hidden
        
        #line 26 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(".ViewModel\r\n{\r\n");

        
        #line default
        #line hidden
        
        #line 28 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

	foreach(PresentationElementClass presentationElement in diagramClass.PresentationElements)
	{
		string baseClass = "DslEditorViewDiagrams::DiagramItemElementViewModel";
		bool hasBaseClass = false;
		if( !(presentationElement is ShapeClass) )
			continue;
		else if( presentationElement is ShapeClass )
		{
			if( (presentationElement as ShapeClass).BaseShape != null )
			{
				baseClass = (presentationElement as ShapeClass).BaseShape.GetMetaModel().Namespace + ".ViewModel." + (presentationElement as ShapeClass).BaseShape.Name + "DiagramItemViewModel";
				hasBaseClass = true;
			}
		}
		
		ShapeClass shapeClassElement = presentationElement as ShapeClass;
				
		bool canHaveNestedChildren = false;
		bool canHaveRelativeChildren = false;
		foreach (PresentationElementClass element in diagramClass.PresentationElements)
		{
            if (element is ShapeClass)
            {
				ShapeClass shapeClass = element as ShapeClass;
				DomainClass domainClass = shapeClass.DomainClass;
		
				if( domainClass == null )
					continue;

				
				if( shapeClass.Parent == presentationElement )
				{
					if( shapeClass.IsRelativeChild )
						canHaveRelativeChildren = true;
					else
						canHaveNestedChildren = true;
				}
			}
		}
		
		

        
        #line default
        #line hidden
        
        #line 70 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("\t/// <summary>\r\n    /// View model for ");

        
        #line default
        #line hidden
        
        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(".\r\n\t///\r\n\t/// Double-derived class to allow easier code customization.\r\n    /// <" +
        "/summary>\r\n\tpublic partial class ");

        
        #line default
        #line hidden
        
        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("DiagramItemViewModel : ");

        
        #line default
        #line hidden
        
        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(@"DiagramItemViewModelBase
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""diagram"">The Diagram this item belongs to.</param>
        /// <param name=""shapeElement"">Model element, that is hosted by this view model.</param>
        public ");

        
        #line default
        #line hidden
        
        #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(@"DiagramItemViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::NodeShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
        }
		#endregion
	}

	/// <summary>
    /// View model for ");

        
        #line default
        #line hidden
        
        #line 93 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 93 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(".\r\n\t///\r\n\t/// This is the abstract base class.\r\n    /// </summary>\r\n\tpublic parti" +
        "al class ");

        
        #line default
        #line hidden
        
        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("DiagramItemViewModelBase : ");

        
        #line default
        #line hidden
        
        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));

        
        #line default
        #line hidden
        
        #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(@"
	{
		#region Constructor
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name=""viewModelStore"">The store this view model belongs to.</param>
        /// <param name=""diagram"">The Diagram this item belongs to.</param>
        /// <param name=""shapeElement"">Model element, that is hosted by this view model.</param>
        protected ");

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(presentationElement.Name));

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(@"DiagramItemViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::NodeShape shapeElement)
            : base(viewModelStore, diagram, shapeElement)
        {
        }
		#endregion
		
		#region Methods
        /// <summary>
        /// Gets whether this view model can have nested children or not.
        /// </summary>
        public override bool CanHaveNestedChildren 
		{ 
			get
			{
");

        
        #line default
        #line hidden
        
        #line 120 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

		if( hasBaseClass )
		{

        
        #line default
        #line hidden
        
        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("\t\t\tif( base.CanHaveNestedChildren )\r\n\t\t\t\treturn true;\r\n\t\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 127 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 129 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("\t\t\t\treturn ");

        
        #line default
        #line hidden
        
        #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(canHaveNestedChildren.ToString().ToLower()));

        
        #line default
        #line hidden
        
        #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(";\r\n\t\t\t}\r\n\t\t}\r\n\r\n        /// <summary>\r\n        /// Gets whether this view model c" +
        "an have relative children or not.\r\n        /// </summary>\r\n        public overri" +
        "de bool CanHaveRelativeChildren\r\n\t\t{ \r\n\t\t\tget\r\n\t\t\t{\r\n");

        
        #line default
        #line hidden
        
        #line 141 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

		if( hasBaseClass )
		{

        
        #line default
        #line hidden
        
        #line 144 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("\t\t\tif( base.CanHaveRelativeChildren )\r\n\t\t\t\treturn true;\r\n\t\t\t\r\n");

        
        #line default
        #line hidden
        
        #line 148 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("\t\t\t\r\n\t\t\t\treturn ");

        
        #line default
        #line hidden
        
        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(canHaveRelativeChildren.ToString().ToLower()));

        
        #line default
        #line hidden
        
        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(";\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n        #endregion\t\t\t\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 157 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

			if( shapeClassElement.Parent == null )
			{

        
        #line default
        #line hidden
        
        #line 160 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write(@"		#region Properties
        /// <summary>
        /// False if this item view model is directly hosted on the diagram surface and its shape can be deleted
        /// whithout the hosted model element beeing required to be deleted as well. True otherwise.
        /// </summary>
        /// <remarks>
		/// Items need to delete their hosted element if they are themselves not directly hosted
		/// on the diagram's surface.
		/// </remarks>
        public override bool AutomaticallyDeletesHostedElement 
        {
            get
            {

				return false;
            }
        }		
		#endregion
		
");

        
        #line default
        #line hidden
        
        #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

			}

			if(shapeClassElement.GeneratePropertiesVM)
			{
				this.PushIndent("\t\t");
				this.Write(DiagramGeneratorHelper.Instance.CreatePropertyHandlers(presentationElement, (presentationElement as PresentationDomainClassElement).DomainClass, hasBaseClass));
				this.PopIndent();
			}

        
        #line default
        #line hidden
        
        #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"
this.Write("\t}\r\n\t\r\n");

        
        #line default
        #line hidden
        
        #line 192 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\DiagramItemViewModelGenerator.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\ViewModel\DiagramItemViewModelGenerator.tt"

}
Exemplo n.º 20
0
        public void GenerateDiagram(MetaModel dm, DiagramClass diagram)
        {
            string baseClass = "DslEditorDiagrams::Diagram";

            if (diagram is DependencyDiagram)
            {
                baseClass = "DslEditorDiagrams::GraphicalDependenciesDiagram";
            }


        #line default
        #line hidden

        #line 30 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\r\nnamespace ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 32 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\r\n{\r\n\t/// <summary>\r\n    /// ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 35 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(" class representing a Diagram.\r\n    /// </summary>\r\n\t[DslModeling::DomainObjectId" +
                       "(\"");


        #line default
        #line hidden

        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Id.ToString("D")));


        #line default
        #line hidden

        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\")]\r\n\tpublic partial class ");


        #line default
        #line hidden

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


        #line default
        #line hidden

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


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\t\r\n\t\t/// <summary>\r\n\t\t/// VModellv" +
                       "ariante 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 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagram.Id.ToString("D")));


        #line default
        #line hidden

        #line 45 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@""");
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name=""store"">Store where new element is to be created.</param>
		/// <param name=""propertyAssignments"">List of domain property id/value pairs to set once the element is created.</param>
		public "        );


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@"(DslModeling::Store store, params DslModeling::PropertyAssignment[] propertyAssignments)
			: this(store != null ? store.DefaultPartitionForClass(DomainClassId) : null, propertyAssignments)
		{
		}
		
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name=""partition"">Partition where new element is to be created.</param>
		/// <param name=""propertyAssignments"">List of domain property id/value pairs to set once the element is created.</param>
		public "        );


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 61 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@"(DslModeling::Partition partition, params DslModeling::PropertyAssignment[] propertyAssignments)
			: base(partition, propertyAssignments)
		{
		}
		#endregion
		
	    /// <summary>
        /// Gets the unique name of this diagram.
        /// </summary>
        public override string UniqueName
        {
            get
			{
				return """                );


        #line default
        #line hidden

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


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\";\r\n\t\t\t}\r\n        }\r\n\t\t\r\n        /// <summary>\r\n        /// Initialize.\r\n        " +
                       "/// </summary>\r\n        public override void Initialize()\r\n        {\r\n");


        #line default
        #line hidden

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

            if (diagram is DesignerDiagramClass)
            {
                foreach (DiagramClass d in (diagram as DesignerDiagramClass).IncludedDiagramClasses)
                {
        #line default
        #line hidden

        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write("\t\t\tAddIncludedDiagram(new ");


        #line default
        #line hidden

        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(d.ModelContext.MetaModel.Namespace));


        #line default
        #line hidden

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


        #line default
        #line hidden

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


        #line default
        #line hidden

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


        #line default
        #line hidden

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



        #line default
        #line hidden

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


        #line default
        #line hidden

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


            if (CodeGenerationUtilities.NeedsLinkRules(dm))
            {
        #line default
        #line hidden

        #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(@"
        /// <summary>
        /// Gets the relationship shapes factory helper. Needs to be derived in the actual instance class.
        /// </summary>
        /// <returns></returns>
        public override DslEditorDiagrams::ModelLinkAddRuleForRSShapes.RSShapesFactoryHelper GetRSShapesFactoryHelper()
        {
            return ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("LinkForShapesAdded.");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("ElementForShapesFactoryHelper.Instance;\r\n        }\r\n");


        #line default
        #line hidden

        #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            }
            if (CodeGenerationUtilities.NeedsMappingLinkRules(dm))
            {
        #line default
        #line hidden

        #line 114 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write(@"
        /// <summary>
        /// Gets the mapping relationship shapes factory helper.  Needs to be derived in the actual instance class.
        /// </summary>
        /// <returns></returns>
        public override DslEditorDiagrams::ModelLinkAddRuleForMappingRSShapes.RSShapesFactoryHelper GetMappingRSShapesFactoryHelper()
        {
            return ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("MappingLinkForShapesAdded.");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("ElementForShapesFactoryHelper.Instance;\r\n        }\r\n");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 126 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write(@"		
		#region Methods		
		/// <summary>
        /// Adds a proto element to the current element.
        /// </summary>
        /// <param name=""protoElement"">Proto element representation of the element that is to be added.</param>
        /// <param name=""groupMerger"">
        /// Group merger class used to track id mapping, merge errors/warnings and 
        /// postprocess merging by rebuilding reference relationships.
        /// </param>
        /// <param name=""isRoot"">Root element?</param>
        public override void ModelMerge(DslEditorModeling::ModelProtoElement protoElement, DslEditorModeling::ModelProtoGroupMerger groupMerger, bool isRoot)
		{
");


        #line default
        #line hidden

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

            if (!diagram.IsCustom)
            {
        #line default
        #line hidden

        #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
                this.Write("\t\t\t// TODO\t\t\t\r\n");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 147 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
            this.Write("\t\t}\r\n\t\t#endregion\r\n\t}\r\n}\r\n");


        #line default
        #line hidden

        #line 152 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DiagramGenerator.tt"
        }
public string GenerateDiagramViewModel(MetaModel dm, DiagramClass diagramClass)
{
	this.GenerationEnvironment = null;
	this.GenerateDiagramViewModelInternal(dm, diagramClass);
	return this.GenerationEnvironment.ToString();
}
 /// <summary>
 /// Constructor. This view model constructed with 'bHookUpEvents=true' does react on model changes.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 /// <param name="element">Element represented by this view model.</param>
 public DiagramClassSelectableViewModel(ViewModelStore viewModelStore, DiagramClass element)
     : base(viewModelStore, element)
 {
     this.diagramClass = element;
 }
Exemplo n.º 23
0
        private void GenerateDiagramViewModelInternal(MetaModel dm, DiagramClass diagramClass)
        {
            string baseClass = "DslEditorViewDiagrams::BaseDiagramSurfaceViewModel";

            if (diagramClass is SpecificElementsDiagram)
            {
                if ((diagramClass as SpecificElementsDiagram).DomainClasses.Count == 0)
                {
                    return;
                }

                baseClass = "DslEditorViewDiagrams.Templates.SpecificElementsDesignerSurfaceViewModel";
            }
            else if (diagramClass is DesignerSurfaceDiagram)
            {
                baseClass = "DslEditorViewDiagrams.Templates.DesignerSurfaceViewModel";
            }
            else if (diagramClass is ModalDiagram)
            {
                if ((diagramClass as ModalDiagram).DomainClass == null)
                {
                    return;
                }

                baseClass = "DslEditorViewDiagrams.Templates.ModalDesignerSurfaceViewModel";
            }


        #line default
        #line hidden

        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("\r\nnamespace ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(".ViewModel\r\n{\r\n\t/// <summary>\r\n\t/// This class represents the default diagram sur" +
                       "face view model of the ");


        #line default
        #line hidden

        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.ApplicationName));


        #line default
        #line hidden

        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(".\r\n\t/// \r\n\t/// Double-derived class to allow easier code customization.\r\n\t/// </s" +
                       "ummary>\r\n\tpublic partial class ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));


        #line default
        #line hidden

        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("SurfaceViewModel : ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));


        #line default
        #line hidden

        #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("SurfaceViewModelBase\r\n\t{\r\n\t\t#region Constructor\r\n");


        #line default
        #line hidden

        #line 50 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

            this.PushIndent("\t\t");
            CreateConstructor(dm, diagramClass, false);
            this.PopIndent();


        #line default
        #line hidden

        #line 54 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("\t\r\n\t\t#endregion\r\n\t}\r\n\t\r\n\t/// <summary>\r\n\t/// This class represents the default di" +
                       "agram surface view model of the ");


        #line default
        #line hidden

        #line 59 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(dm.ApplicationName));


        #line default
        #line hidden

        #line 59 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(".\r\n\t/// \r\n\t/// This is the abstract base class.\r\n\t/// </summary>\r\n\tpublic abstrac" +
                       "t partial class ");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));


        #line default
        #line hidden

        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("SurfaceViewModelBase : ");


        #line default
        #line hidden

        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(baseClass));


        #line default
        #line hidden

        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("\r\n\t{\r\n\t\t#region Constructor\r\n");


        #line default
        #line hidden

        #line 66 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

            this.PushIndent("\t\t");
            CreateConstructor(dm, diagramClass, true);
            this.PopIndent();


        #line default
        #line hidden

        #line 70 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("\t\r\n\t\t#endregion\t\t\r\n");


        #line default
        #line hidden

        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

            if (diagramClass is ModalDiagram)
            {
                ModalDiagram diagram = diagramClass as ModalDiagram;


        #line default
        #line hidden

        #line 76 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("\t\t#region ModalDiagram\r\n\t\t/// <summary>\r\n        /// Unique name of the property " +
                           "grid docking window.\r\n        /// </summary>\r\n        public override string Doc" +
                           "kingPaneName\r\n        {\r\n            get { return \"");


        #line default
        #line hidden

        #line 83 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Name));


        #line default
        #line hidden

        #line 83 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("SurfaceDockWindowPane\" + this.NameExtension; }\r\n        }\r\n\r\n        /// <summary" +
                           ">\r\n        /// Title of the docking windo.\r\n        /// </summary>\r\n        publ" +
                           "ic override string DockingPaneTitle\r\n        {\r\n            get { return \"");


        #line default
        #line hidden

        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Title));


        #line default
        #line hidden

        #line 91 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("\" + this.TitleExtension; }\r\n        }\t\t\r\n\t\t\r\n        /// <summary>\r\n        /// I" +
                           "nitialization routine.\r\n        /// </summary>\r\n        protected override void " +
                           "Initialize()\r\n        {\r\n            base.Initialize();\r\n\r\n");


        #line default
        #line hidden

        #line 101 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

                if (diagram.DomainClass.GenerateSpecificViewModel)
                {
                    string dClass = diagram.DomainClass.GetMetaModel().Namespace + ".ViewModel." + diagram.DomainClass.Name + "SpecificViewModel";


        #line default
        #line hidden

        #line 105 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write("\t\t\tthis.HostedElementVM = new ");


        #line default
        #line hidden

        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(dClass));


        #line default
        #line hidden

        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write("(this.ViewModelStore, (this.HostedElement as ");


        #line default
        #line hidden

        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(diagram.DomainClass.GetFullName(true)));


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 107 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                }
                else
                {
        #line default
        #line hidden

        #line 111 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write("\t\t\tthis.HostedElementVM = new DslEditorViewModels::BaseModelElementViewModel(this" +
                               ".ViewModelStore, this.HostedElement, true);\r\n");


        #line default
        #line hidden

        #line 113 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                }


        #line default
        #line hidden

        #line 115 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("        }\t\t\r\n\t\t#endregion\r\n");


        #line default
        #line hidden

        #line 118 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }
            else if (diagramClass is SpecificElementsDiagram)
            {
                SpecificElementsDiagram diagram = diagramClass as SpecificElementsDiagram;


        #line default
        #line hidden

        #line 123 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(@"
		#region SpecificElementsDiagram		
		private SelectedElementEnum selectedElementEnum = SelectedElementEnum.___None___;
		
		/// <summary>
		/// Enumeration identifying the currently selected element type.
		/// </summary>
		public enum SelectedElementEnum
		{
			___None___,
");


        #line default
        #line hidden

        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

                foreach (DomainClass d in diagram.DomainClasses)
                {
        #line default
        #line hidden

        #line 137 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write("\t\t\t");


        #line default
        #line hidden

        #line 138 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));


        #line default
        #line hidden

        #line 138 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(",\r\n");


        #line default
        #line hidden

        #line 139 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                }


        #line default
        #line hidden

        #line 141 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n\t\t/// Gets the selected element type.\r\n\t\t/// </summary>" +
                           "\r\n\t\tpublic SelectedElementEnum SelectedElementType\r\n\t\t{\r\n\t\t\tget\r\n\t\t\t{\r\n\t\t\t\tretur" +
                           "n this.selectedElementEnum;\r\n\t\t\t}\r\n\t\t\tprivate set\r\n\t\t\t{\r\n\t\t\t\tif( this.selectedEl" +
                           "ementEnum != value )\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.selectedElementEnum = value;\r\n\t\t\t\t\tOnProp" +
                           "ertyChanged(\"SelectedElementType\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t/// <summary>\r\n    " +
                           "    /// Called if the hosted element was deleted.\r\n        /// </summary>\r\n     " +
                           "   /// <param name=\"args\">Data</param>\r\n        protected override void OnHosted" +
                           "ElementDeleted(DslModeling::ElementDeletedEventArgs args)\r\n        {\r\n          " +
                           "  base.OnHostedElementDeleted(args);\r\n\t\t\t\r\n\t\t\tthis.SelectedElementType = Selecte" +
                           "dElementEnum.___None___;\r\n        }\r\n\t\t\r\n        /// <summary>\r\n        /// Call" +
                           "back from SelectionChangedEvent.\r\n        /// </summary>\r\n        /// <param nam" +
                           "e=\"eventArgs\">SelectionChangedEventArgs.</param>\r\n        protected override voi" +
                           "d ReactOnViewSelection(DslEditorEvents::SelectionChangedEventArgs eventArgs)\r\n  " +
                           "      {\r\n\t\t\tbase.ReactOnViewSelection(eventArgs);\r\n\r\n\t\t\t// update selection\r\n   " +
                           "         if (this.IsInitialized && this.IsDockingPaneVisible)\r\n\t\t\t\tDslEditorView" +
                           "Models.Threading.DispatcherExtensions.InvokeAsynchronouslyInBackground(\r\n       " +
                           "            System.Windows.Threading.Dispatcher.CurrentDispatcher, new System.Ac" +
                           "tion(UpdateView));\r\n        }\r\n\t\t\t\t\r\n        /// <summary>\r\n        /// Initiali" +
                           "ze.\r\n        /// </summary>\r\n        protected override void Initialize()\r\n     " +
                           "   {\r\n            base.Initialize();\r\n\r\n            if (this.SelectedItemsCollec" +
                           "tion != null)\r\n\t\t\t\tDslEditorViewModels.Threading.DispatcherExtensions.InvokeAsyn" +
                           "chronouslyInBackground(\r\n                   System.Windows.Threading.Dispatcher." +
                           "CurrentDispatcher, new System.Action(UpdateView));\r\n        }\r\n\t\t\r\n\t\t/// <summar" +
                           "y>\r\n        /// Updates the view based on the current selection.\r\n        /// </" +
                           "summary>\r\n\t\tprotected virtual void UpdateView()\r\n\t\t{\r\n\t\t\tif( this.SelectedItemsC" +
                           "ollection.Count != 1 )\r\n\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\tDslEditorModeling::DomainModelElem" +
                           "ent element = this.SelectedItemsCollection[0] as DslEditorModeling::DomainModelE" +
                           "lement;\r\n\t\t\tif( element != null )\r\n\t\t\t{\r\n");


        #line default
        #line hidden

        #line 211 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

                foreach (DomainClass d in diagram.DomainClasses)
                {
        #line default
        #line hidden

        #line 214 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write("\t\t\t\tif( element is ");


        #line default
        #line hidden

        #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(d.GetFullName(true)));


        #line default
        #line hidden

        #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(" )\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.SelectedElementType = SelectedElementEnum.");


        #line default
        #line hidden

        #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(d.Name));


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 218 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

                    if (d.GenerateSpecificViewModel)
                    {
                        string dClass = d.GetMetaModel().Namespace + ".ViewModel." + d.Name + "SpecificViewModel";


        #line default
        #line hidden

        #line 222 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                        this.Write("\t\t\t\t\tif( HostedElement != null )\r\n\t\t\t\t\t\tif( HostedElement.Element.Id == element.I" +
                                   "d )\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\tHostedElement = new ");


        #line default
        #line hidden

        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(dClass));


        #line default
        #line hidden

        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                        this.Write("(this.ViewModelStore, (element as ");


        #line default
        #line hidden

        #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(d.GetFullName(true)));


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    }
                    else
                    {
        #line default
        #line hidden

        #line 232 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                        this.Write("\t\t\t\t\tHostedElement = new DslEditorViewModels::BaseModelElementViewModel(this.View" +
                                   "ModelStore, element, true);\r\n");


        #line default
        #line hidden

        #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    }


        #line default
        #line hidden

        #line 236 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                    this.Write("\t\t\t\t\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n");


        #line default
        #line hidden

        #line 240 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                }


        #line default
        #line hidden

        #line 242 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(@"			}
		}
		
		/// <summary>
        /// Reset.
        /// </summary>
        protected override void Reset()
        {
			this.SelectedElementType = SelectedElementEnum.___None___;
			
			base.Reset();
		}
		
		 /// <summary>
        /// Visibility changed.
        /// </summary>
        /// <param name=""bVisible""></param>
        protected override void OnVisibilityChanged(bool bVisible)
        {
            base.OnVisibilityChanged(bVisible);

            if (this.IsDockingPaneVisible && this.IsInitialized)
				if (this.SelectedItemsCollection != null)
					DslEditorViewModels.Threading.DispatcherExtensions.InvokeAsynchronouslyInBackground(
                        System.Windows.Threading.Dispatcher.CurrentDispatcher, new System.Action(UpdateView));
        }
		#endregion
		
");


        #line default
        #line hidden

        #line 271 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }
            else if (diagramClass is DesignerSurfaceDiagram)
            {
        #line default
        #line hidden

        #line 275 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("\t\t#region DesignerSurfaceDiagram\r\n\t\t\r\n\t\t#endregion\r\n");


        #line default
        #line hidden

        #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }


        #line default
        #line hidden

        #line 281 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write("\t\t#region IDockableViewModel\r\n");


        #line default
        #line hidden

        #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"

            if (!(diagramClass is ModalDiagram))
            {
        #line default
        #line hidden

        #line 286 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("      \t/// <summary>\r\n        /// Unique name of the property grid docking window" +
                           ".\r\n        /// </summary>\r\n        public override string DockingPaneName\r\n     " +
                           "   {\r\n            get { return \"");


        #line default
        #line hidden

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


        #line default
        #line hidden

        #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("SurfaceDockWindowPane\"; }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Title " +
                           "of the docking windo.\r\n        /// </summary>\r\n        public override string Do" +
                           "ckingPaneTitle\r\n        {\r\n            get { return \"");


        #line default
        #line hidden

        #line 300 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(diagramClass.Title));


        #line default
        #line hidden

        #line 300 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
                this.Write("\"; }\r\n        }\r\n");


        #line default
        #line hidden

        #line 302 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            }


        #line default
        #line hidden

        #line 304 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
            this.Write(@" 
                
		/// <summary>
		/// Gets the docking pane style. 
		/// </summary>
		public override global::Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.DockingPaneStyle DockingPaneStyle
        {
            get
            {
                return global::Tum.PDE.ToolFramework.Modeling.Visualization.ViewModel.DockingPaneStyle.DockedInDocumentPane;
            }
        }
        #endregion		
	}
}

");


        #line default
        #line hidden

        #line 320 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\ViewModel\TemplatedDiagramGeneratorHelper.tt"
        }