private void DeleteCommand_Executed(BaseModelElementViewModel vm)
        {
            DomainClass d = vm.Element as DomainClass;

            if (d != null)
            {
                SpecificElementsDiagram diagram = this.DiagramClassView.DiagramClass as SpecificElementsDiagram;
                if (diagram.DomainClasses.Contains(d))
                {
                    using (Transaction t = this.Store.TransactionManager.BeginTransaction())
                    {
                        diagram.DomainClasses.Remove(d);
                        t.Commit();
                    }
                }

                this.RemoveReference(d);
            }
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="diagramClass">Element to be hosted by this view model.</param>
        public SpecificElementsDiagramViewModel(ViewModelStore viewModelStore, DiagramClassView diagramClassView, DiagramViewModel parent)
            : base(viewModelStore, diagramClassView, parent)
        {
            this.referenceVMs  = new ObservableCollection <BaseModelElementViewModel>();
            this.deleteCommand = new DelegateCommand <BaseModelElementViewModel>(DeleteCommand_Executed);

            SpecificElementsDiagram diagramClass = diagramClassView.DiagramClass as SpecificElementsDiagram;

            foreach (DomainClass d in diagramClass.DomainClasses)
            {
                this.AddReference(d);
            }

            this.EventManager.GetEvent <ModelElementLinkAddedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(SpecificElementsDiagramReferencesDomainClasses.DomainClassId),
                                                                                true, diagramClass.Id, new Action <ElementAddedEventArgs>(OnReferenceAdded));

            this.EventManager.GetEvent <ModelElementLinkDeletedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(SpecificElementsDiagramReferencesDomainClasses.DomainClassId),
                                                                                  true, diagramClass.Id, new Action <ElementDeletedEventArgs>(OnReferenceRemoved));

            this.EventManager.GetEvent <ModelRolePlayerChangedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRole(SpecificElementsDiagramReferencesDomainClasses.DomainClassDomainRoleId),
                                                                                 new Action <RolePlayerChangedEventArgs>(OnReferenceChanged));
            this.EventManager.GetEvent <ModelRolePlayerChangedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRole(SpecificElementsDiagramReferencesDomainClasses.SpecificElementsDiagramDomainRoleId),
                                                                                 new Action <RolePlayerChangedEventArgs>(OnReferenceChanged));
        }
Beispiel #3
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"
        }