public Region
				( Model model
			 	, ElementWrapper redefinedElement
			 	, global::EA.Diagram masterDiagram
			 	, global::EA.Partition partition
			 	, short regionPos = 0
			 	)
		: base(model,redefinedElement.wrappedElement)
		{
			this.redefinedElement = redefinedElement;
			this.masterDiagram = masterDiagram;
			this.partition = partition;
			this._regionPos = regionPos;
			if(redefinedElement is UML.StateMachines.BehaviorStateMachines.StateMachine) {
				_stateMachine = redefinedElement as UML.StateMachines.BehaviorStateMachines.StateMachine;
			}
			else if(redefinedElement is UML.StateMachines.BehaviorStateMachines.State) {
				_state = redefinedElement as UML.StateMachines.BehaviorStateMachines.State;
			}
			else {
				throw new ArgumentException("Only StateMachine or State instances are allowed as owners.","owningElement");
			}
			if(partition != null) {
				if(!string.IsNullOrEmpty(partition.Name) &&
				   partition.Name != "<anonymous>") {
					_name = partition.Name;
				}
				else {
					_name = base.name + "Region" + regionPos.ToString();
				}
			}
			else {
				_name = base.name + "Region";
			}
		}
Esempio n. 2
0
        private int getRegionTopOffset(global::EA.Partition partition)
        {
            int   regionTopOffset = 0;
            short otherRegionPos  = 0;

            foreach (global::EA.Partition otherPartition in redefinedElement.wrappedElement.Partitions)
            {
                if (otherRegionPos < _regionPos)
                {
                    regionTopOffset += otherPartition.Size;
                }
                else
                {
                    break;
                }
                ++otherRegionPos;
            }
            return(regionTopOffset);
        }
Esempio n. 3
0
 public Region
     (Model model
     , ElementWrapper redefinedElement
     , global::EA.Diagram masterDiagram
     , global::EA.Partition partition
     , short regionPos = 0
     )
     : base(model, redefinedElement.wrappedElement)
 {
     this.redefinedElement = redefinedElement;
     this.masterDiagram    = masterDiagram;
     this.partition        = partition;
     this._regionPos       = regionPos;
     if (redefinedElement is UML.StateMachines.BehaviorStateMachines.StateMachine)
     {
         _stateMachine = redefinedElement as UML.StateMachines.BehaviorStateMachines.StateMachine;
     }
     else if (redefinedElement is UML.StateMachines.BehaviorStateMachines.State)
     {
         _state = redefinedElement as UML.StateMachines.BehaviorStateMachines.State;
     }
     else
     {
         throw new ArgumentException("Only StateMachine or State instances are allowed as owners.", "owningElement");
     }
     if (partition != null)
     {
         if (!string.IsNullOrEmpty(partition.Name) &&
             partition.Name != "<anonymous>")
         {
             _name = partition.Name;
         }
         else
         {
             _name = base.name + "Region" + regionPos.ToString();
         }
     }
     else
     {
         _name = base.name + "Region";
     }
 }
Esempio n. 4
0
        void addOrUpdateFragments()
        {
            //add or update the fragments
            foreach (var mdFragment in magicDrawReader.allFragments)
            {
                //check if the fragment already exists
                var eaFragment = this.getElementByMDid(mdFragment.mdID);
                //create new if is doesn't exist yet
                //get its owner
                var owner = this.getElementByMDid(mdFragment.ownerMdID);
                if (eaFragment == null &&
                    owner != null)
                {
                    //create the fragment under the owner
                    eaFragment = this.model.factory.createNewElement <UML.Interactions.BasicInteractions.InteractionFragment>(owner, string.Empty) as TSF_EA.ElementWrapper;
                }
                if (eaFragment != null)
                {
                    //set the type
                    switch (mdFragment.fragmentType)
                    {
                    case "alt":
                        eaFragment.subType = "0";
                        break;

                    case "opt":
                        eaFragment.subType = "1";
                        break;

                    case "par":
                        eaFragment.subType = "3";
                        break;

                    case "loop":
                        eaFragment.subType = "4";
                        break;
                    }
                    //update the partitions
                    foreach (var guard in mdFragment.operandGuards)
                    {
                        global::EA.Partition partition = eaFragment.WrappedElement.Partitions.AddNew(guard, mdFragment.fragmentType) as global::EA.Partition;
                        partition.Size     = 100;                     //default value, later to be corrected in the DiagramLayoutCorrector
                        eaFragment.isDirty = true;                    //make sure it gets saved
                    }
                    eaFragment.save();
                    //add the md_guid tagged value if needed
                    if (eaFragment != null)
                    {
                        eaFragment.addTaggedValue("md_guid", mdFragment.mdID);
                    }
                    //tell the user what we are doing
                    EAOutputLogger.log(this.model, this.outputName
                                       , string.Format("{0} Updating fragment in '{1}'"
                                                       , DateTime.Now.ToLongTimeString()
                                                       , eaFragment.owner.name)
                                       , eaFragment.id
                                       , LogTypeEnum.log);
                    //set the operands
//					string xrefDescription = this.getOperandDescription(mdFragment.operandGuards);
//					if (! string.IsNullOrEmpty(xrefDescription))
//					{
//						string updateXrefSQL = "";
//					}
                }
            }
        }