/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
		/// <param name="bCallInitialize"></param>
        protected DomainElementSpecificViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.DomainElement element, DslEditorViewModel::BaseModelElementViewModel parentVM, bool bCallInitialize)
            : base(viewModelStore, element, parentVM, false)
        {
			if( bCallInitialize )
			{
				this.Initialize();
				
				this.InitializeRelationships();
				this.InitializeSubscription();				
			}
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
        public EmbeddableElementSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.EmbeddableElement element, DslEditorViewModel::BaseModelElementViewModel parentVM)
            : this(viewModelStore, element, parentVM, true)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
        public EmbeddableElementSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.EmbeddableElement element)
            : this(viewModelStore, element, null)
        {
		}
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="modelContext">Hosted model context.</param>
        /// <param name="mainViewModel">Main view model.</param>	
        public VariantenkonfigModelContextViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorModeling::ModelContext modelContext, DslEditorViewModel::BaseMainViewModel mainViewModel)
            : base(viewModelStore, modelContext, mainViewModel)
        {

        }	
		/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="modelData">Document data.</param>
		/// <param name="bHookUpEvents">True if events listeners should be initialized.</param>
		/// <param name="ownedByStore">Store owning this store.</param>
        public FamilyTreeDSLViewModelStore(DslEditorModeling::ModelData modelData, bool bHookUpEvents, DslEditorViewModelData::ViewModelStore ownedByStore)
            : base(modelData, bHookUpEvents, ownedByStore)
        {
        }			
        private DslEditorViewModelData::ViewModelStore GetExternViewModelStore(DslEditorViewModelData::ViewModelStore st, System.Type type)
        {
            foreach (DslEditorViewModelData::ViewModelStore s in st.ExternStores)
                if( s.GetType() == type )
                    return s;

            return null;
        }
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">View model store.</param>
        public PDEModelingDSLViewModelFactoryBase(DslEditorViewModelData::ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
        }
		/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="modelData">Document data.</param>
		/// <param name="bHookUpEvents">True if events listeners should be initialized.</param>
		/// <param name="ownedByStore">Store owning this store.</param>
        public VModellXTViewModelStore(DslEditorModeling::ModelData modelData, bool bHookUpEvents, DslEditorViewModelData::ViewModelStore ownedByStore)
            : base(modelData, bHookUpEvents, ownedByStore)
        {
        }			
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
        public DomainPropertySpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.DomainProperty element, DslEditorViewModel::BaseModelElementViewModel parentVM)
            : this(viewModelStore, element, parentVM, true)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
        public DomainPropertySpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.DomainProperty element)
            : this(viewModelStore, element, null)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
        public BaseDomainElementSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.BaseDomainElement element)
            : this(viewModelStore, element, null)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
        public AttributedDomainElementSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.AttributedDomainElement element, DslEditorViewModel::BaseModelElementViewModel parentVM)
            : this(viewModelStore, element, parentVM, true)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">View model store.</param>
        public TestLanguageViewModelFactoryBase(DslEditorViewModelData::ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
        }
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="modelData">Document data.</param>
		/// <param name="bHookUpEvents">True if events listeners should be initialized.</param>
		/// <param name="ownedByStore">Store owning this store.</param>
        protected TestLanguageViewModelStoreBase(DslEditorModeling::ModelData modelData, bool bHookUpEvents, DslEditorViewModelData::ViewModelStore ownedByStore)
            : base(modelData, bHookUpEvents, ownedByStore)
        {
			
			this.Options = new TestLanguageViewModelOptions();
			
        }		
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">View model store.</param>
        public VSPluginDSLViewModelFactoryBase(DslEditorViewModelData::ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
        }
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
		/// <param name="bCallInitialize"></param>
        public EmbeddableElementSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.EmbeddableElement element, DslEditorViewModel::BaseModelElementViewModel parentVM, bool bCallInitialize)
            : base(viewModelStore, element, parentVM, bCallInitialize)
        {
		}		
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">View model store.</param>
        public VModellXTViewModelFactoryBase(DslEditorViewModelData::ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
        }
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
		/// <param name="bCallInitialize"></param>
        public DomainPropertySpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.DomainProperty element, DslEditorViewModel::BaseModelElementViewModel parentVM, bool bCallInitialize)
            : base(viewModelStore, element, parentVM, bCallInitialize)
        {
		}		
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="modelContext">Hosted model context.</param>
        /// <param name="mainViewModel">Main view model.</param>	
        public DefaultContextModelContextViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorModeling::ModelContext modelContext, DslEditorViewModel::BaseMainViewModel mainViewModel)
            : base(viewModelStore, modelContext, mainViewModel)
        {

        }	
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
        public ConversionModelInfoSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.ConversionModelInfo element)
            : this(viewModelStore, element, null)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="modelData">Document data.</param>
		/// <param name="bHookUpEvents">True if events listeners should be initialized.</param>
		/// <param name="ownedByStore">Store owning this store.</param>
        protected FamilyTreeDSLViewModelStoreBase(DslEditorModeling::ModelData modelData, bool bHookUpEvents, DslEditorViewModelData::ViewModelStore ownedByStore)
            : base(modelData, bHookUpEvents, ownedByStore)
        {
			
			this.Options = new FamilyTreeDSLViewModelOptions();
			
        }		
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
        public ConversionModelInfoSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.ConversionModelInfo element, DslEditorViewModel::BaseModelElementViewModel parentVM)
            : this(viewModelStore, element, parentVM, true)
        {
		}
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">View model store.</param>
        public FamilyTreeDSLViewModelFactoryBase(DslEditorViewModelData::ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
        }
		/// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="element">Element to be hosted by this view model.</param>
		/// <param name="parentVM">Parent view model. Can be null.</param>
		/// <param name="bCallInitialize"></param>
        public ConversionModelInfoSpecificViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, global::Tum.PDE.ModelingDSL.ConversionModelInfo element, DslEditorViewModel::BaseModelElementViewModel parentVM, bool bCallInitialize)
            : base(viewModelStore, element, parentVM, bCallInitialize)
        {
		}		
		public ModelTreeStateMachineLanguageViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, DslModeling::ModelElement element, DslModeling::ElementLink link, System.Guid domainRoleId, DslEditorTreeViewModel::ModelElementTreeViewModel parent, bool bHookUpEvents, bool bCreateContextMenus, DslEditorViewModel::MainModelTreeViewModel mainModelTreeVm) 
			: base(viewModelStore, element, link, domainRoleId, parent, bHookUpEvents, bCreateContextMenus, mainModelTreeVm)
		{
		}
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="modelContext">Hosted model context.</param>
        /// <param name="mainViewModel">Main view model.</param>	
        public VModellXTMustertexteModelContextViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorModeling::ModelContext modelContext, DslEditorViewModel::BaseMainViewModel mainViewModel)
            : base(viewModelStore, modelContext, mainViewModel)
        {

        }