Beispiel #1
0
        /// <summary>
        /// Create a shape of the given link shape type.
        /// </summary>
        /// <param name="shapeTypeId">Shape type id.</param>
        /// <param name="modelElement">Model element.</param>
        /// <param name="assignments">Properties for the shape.</param>
        /// <returns>Shape if one could be created. Null otherwise.</returns>
        public override DslModeling::ModelElement CreateShapeForElementLink(System.Guid shapeTypeId, DslModeling::ModelElement modelElement, params DslModeling::PropertyAssignment[] assignments)
        {
            DslEditorDiagrams::LinkShape nodeShape = null;

            if (createRSShapeMap == null)
            {
                createRSShapeMap = new global::System.Collections.Generic.Dictionary <global::System.Guid, int>(2);
                createRSShapeMap.Add(global::Tum.PDE.ModelingDSL.ReferenceShape.DomainClassId, 0);
                createRSShapeMap.Add(global::Tum.PDE.ModelingDSL.EmbeddingShape.DomainClassId, 1);
            }
            int index;

            if (!createRSShapeMap.TryGetValue(shapeTypeId, out index))
            {
                throw new global::System.ArgumentException("Unrecognized shape type " + shapeTypeId.ToString());
            }
            switch (index)
            {
            case 0: nodeShape = new global::Tum.PDE.ModelingDSL.ReferenceShape(modelElement.Store, assignments); break;

            case 1: nodeShape = new global::Tum.PDE.ModelingDSL.EmbeddingShape(modelElement.Store, assignments); break;
            }

            if (nodeShape == null)
            {
                throw new System.InvalidOperationException("Couldn't create shape of type " + shapeTypeId.ToString() + " for element link " + modelElement.ToString());
            }

            nodeShape.Element = modelElement;

            return(nodeShape);
        }
Beispiel #2
0
        /// <summary>
        /// Create a shape of the given link shape type.
        /// </summary>
        /// <param name="shapeTypeId">Shape type id.</param>
        /// <param name="modelElement">Model element.</param>
        /// <param name="sourceShape">Source shape.</param>
        /// <param name="targetShape">Target shape.</param>
        /// <param name="assignments">Properties for the shape.</param>
        /// <returns>Shape if one could be created. Null otherwise.</returns>
        public override DslModeling::ModelElement CreateShapeForElementLink(System.Guid shapeTypeId, DslModeling::ModelElement modelElement, DslModeling::ModelElement sourceShape, DslModeling::ModelElement targetShape, params DslModeling::PropertyAssignment[] assignments)
        {
            if (!(sourceShape is DslEditorDiagrams::NodeShape) ||
                !(targetShape is DslEditorDiagrams::NodeShape))
            {
                return(null);
            }

            DslEditorDiagrams::LinkShape nodeShape = CreateShapeForElementLink(shapeTypeId, modelElement, assignments) as DslEditorDiagrams::LinkShape;

            if (nodeShape == null)
            {
                return(nodeShape);
            }

            nodeShape.SourceAnchor           = new DslEditorDiagrams::SourceAnchor(modelElement.Store);
            nodeShape.SourceAnchor.FromShape = sourceShape as DslEditorDiagrams::NodeShape;
            nodeShape.TargetAnchor           = new DslEditorDiagrams::TargetAnchor(modelElement.Store);
            nodeShape.TargetAnchor.ToShape   = targetShape as DslEditorDiagrams::NodeShape;

            return(nodeShape);
        }
Beispiel #3
0
 /// <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 ReferenceShapeDiagramItemLinkViewModelBase(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape shapeElement)
     : base(viewModelStore, diagram, shapeElement)
 {
 }
Beispiel #4
0
 /// <summary>
 /// Creates the view model for the given link shape.
 /// </summary>
 /// <param name="nodeShapeType">Shape type for which the view model is to be created.</param>
 /// <param name="diagram">Diagram surface vm.</param>
 /// <param name="nodeShape">Link shape.</param>
 /// <returns>
 /// View model of type BaseDiagramItemLinkViewModel if a view model can be created for the given element. Null otherwise.</returns>
 public override DslEditorViewModel.DiagramSurface.BaseDiagramItemLinkViewModel CreateDiagramLinkViewModel(System.Guid nodeShapeType, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape nodeShape)
 {
     return(null);
 }
Beispiel #5
0
 /// <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 EmbeddingShapeDiagramItemLinkViewModel(DslEditorViewModelData::ViewModelStore viewModelStore, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape shapeElement)
     : base(viewModelStore, diagram, shapeElement)
 {
 }
Beispiel #6
0
        /// <summary>
        /// Creates the view model for the given link shape.
        /// </summary>
        /// <param name="nodeShapeType">Shape type for which the view model is to be created.</param>
        /// <param name="diagram">Diagram surface vm.</param>
        /// <param name="nodeShape">Link shape.</param>
        /// <returns>
        /// View model of type BaseDiagramItemLinkViewModel if a view model can be created for the given element. Null otherwise.</returns>
        public override DslEditorViewModel.DiagramSurface.BaseDiagramItemLinkViewModel CreateDiagramLinkViewModel(System.Guid nodeShapeType, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape nodeShape)
        {
            if (nodeShapeType == global::Tum.VModellXT.Dynamik.AblaufbausteinpunktRAblaufbausteinspezShape.DomainClassId)
            {
                return(new Tum.VModellXT.Dynamik.ViewModel.AblaufbausteinpunktRAblaufbausteinspezShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }

            if (nodeShapeType == global::Tum.VModellXT.Dynamik.AblaufbausteinRAblaufbausteinspezShape.DomainClassId)
            {
                return(new Tum.VModellXT.Dynamik.ViewModel.AblaufbausteinRAblaufbausteinspezShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }

            if (nodeShapeType == global::Tum.VModellXT.Dynamik.UebergangShape.DomainClassId)
            {
                return(new Tum.VModellXT.Dynamik.ViewModel.UebergangShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }


            return(null);
        }
Beispiel #7
0
        /// <summary>
        /// Creates the view model for the given link shape.
        /// </summary>
        /// <param name="nodeShapeType">Shape type for which the view model is to be created.</param>
        /// <param name="diagram">Diagram surface vm.</param>
        /// <param name="nodeShape">Link shape.</param>
        /// <returns>
        /// View model of type BaseDiagramItemLinkViewModel if a view model can be created for the given element. Null otherwise.</returns>
        public override DslEditorViewModel.DiagramSurface.BaseDiagramItemLinkViewModel CreateDiagramLinkViewModel(System.Guid nodeShapeType, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape nodeShape)
        {
            if (nodeShapeType == global::Tum.FamilyTreeDSL.ParentOfShape.DomainClassId)
            {
                return(new Tum.FamilyTreeDSL.ViewModel.ParentOfShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }

            if (nodeShapeType == global::Tum.FamilyTreeDSL.MarriedToShape.DomainClassId)
            {
                return(new Tum.FamilyTreeDSL.ViewModel.MarriedToShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }


            return(null);
        }
Beispiel #8
0
        /// <summary>
        /// Creates the view model for the given link shape.
        /// </summary>
        /// <param name="nodeShapeType">Shape type for which the view model is to be created.</param>
        /// <param name="diagram">Diagram surface vm.</param>
        /// <param name="nodeShape">Link shape.</param>
        /// <returns>
        /// View model of type BaseDiagramItemLinkViewModel if a view model can be created for the given element. Null otherwise.</returns>
        public override DslEditorViewModel.DiagramSurface.BaseDiagramItemLinkViewModel CreateDiagramLinkViewModel(System.Guid nodeShapeType, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape nodeShape)
        {
            if (nodeShapeType == global::Tum.PDE.ModelingDSL.ReferenceShape.DomainClassId)
            {
                return(new Tum.PDE.ModelingDSL.ViewModel.ReferenceShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }

            if (nodeShapeType == global::Tum.PDE.ModelingDSL.EmbeddingShape.DomainClassId)
            {
                return(new Tum.PDE.ModelingDSL.ViewModel.EmbeddingShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }


            return(null);
        }
Beispiel #9
0
        /// <summary>
        /// Creates the view model for the given link shape.
        /// </summary>
        /// <param name="nodeShapeType">Shape type for which the view model is to be created.</param>
        /// <param name="diagram">Diagram surface vm.</param>
        /// <param name="nodeShape">Link shape.</param>
        /// <returns>
        /// View model of type BaseDiagramItemLinkViewModel if a view model can be created for the given element. Null otherwise.</returns>
        public override DslEditorViewModel.DiagramSurface.BaseDiagramItemLinkViewModel CreateDiagramLinkViewModel(System.Guid nodeShapeType, DslEditorViewDiagrams::DiagramSurfaceViewModel diagram, DslEditorDiagrams::LinkShape nodeShape)
        {
            if (nodeShapeType == global::Tum.StateMachineDSL.TransitionShape.DomainClassId)
            {
                return(new Tum.StateMachineDSL.ViewModel.TransitionShapeDiagramItemLinkViewModel(this.Store, diagram, nodeShape));
            }


            return(null);
        }