コード例 #1
0
        public virtual void AddNewElement(ContextMenuCreationHelper cHelper)
        {
            DomainRoleInfo info = cHelper.RoleInfo;

            using (Transaction transaction = this.Store.TransactionManager.BeginTransaction("Create new element"))
            {
                ModelElement modelElement = this.Store.ElementFactory.CreateElement(cHelper.RolePlayerInfo.Id);

                // create and assign name to the element if it has a property marked as "IsElementName"
                if ((modelElement as IDomainModelOwnable).DomainElementHasName)
                {
                    (modelElement as IDomainModelOwnable).GetDomainModelServices().ElementNameProvider.CreateAndAssignName(this.Element, modelElement);
                }

                RoleAssignment[] roleAssignments = new RoleAssignment[2];
                roleAssignments[0] = new RoleAssignment(info.Id, this.Element);
                roleAssignments[1] = new RoleAssignment(info.OppositeDomainRole.Id, modelElement);

                this.Store.ElementFactory.CreateElementLink(info.DomainRelationship, roleAssignments);

                transaction.Commit();
            }
        }
コード例 #2
0
        public virtual void AddNewElement(ContextMenuCreationHelper cHelper)
        {
            DomainRoleInfo info = cHelper.RoleInfo;
            using (Transaction transaction = this.Store.TransactionManager.BeginTransaction("Create new element"))
            {
                ModelElement modelElement = this.Store.ElementFactory.CreateElement(cHelper.RolePlayerInfo.Id);

                // create and assign name to the element if it has a property marked as "IsElementName"
                if ( (modelElement as IDomainModelOwnable).DomainElementHasName )
                    (modelElement as IDomainModelOwnable).GetDomainModelServices().ElementNameProvider.CreateAndAssignName(this.Element, modelElement);

                RoleAssignment[] roleAssignments = new RoleAssignment[2];
                roleAssignments[0] = new RoleAssignment(info.Id, this.Element);
                roleAssignments[1] = new RoleAssignment(info.OppositeDomainRole.Id, modelElement);

                this.Store.ElementFactory.CreateElementLink(info.DomainRelationship, roleAssignments);

                transaction.Commit();
            }
        }