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"; } }
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); }
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"; } }
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 = ""; // } } } }