protected internal void InterpretExecutionOccurrenceSpecification(ExecutionOccurrenceSpecification executionOccurrenceSpec, SequenceChartElement nextOccurrenceSpec) { Lifeline coveredLifeline=executionOccurrenceSpec.CoveredLifeline; string coveredLifelineId = coveredLifeline.XmiId; string processEntryId=this.GetProcessEntryIdForLifelineId(coveredLifelineId); if(executionOccurrenceSpec.SpecificationKind== ExecutionOccurrenceSpecKind.START) { // >>>>>> Creates an RegionBegin-entry that represents only an Activation // >>>>>> there is no desicion for Coregions and Suspensions if(nextOccurrenceSpec is MessageEnd) { this.entryCreator.CreateRegionBeginEditorEntryNoWordWrap(processEntryId,ACTIVATION); } else { this.entryCreator.CreateRegionBeginEditorEntry(processEntryId,ACTIVATION); } } else if(executionOccurrenceSpec.SpecificationKind== ExecutionOccurrenceSpecKind.FINISH) { this.entryCreator.CreateRegionEndEditorEntry(processEntryId); } }
protected void CreateExecutionOccurenceSpecs(Interaction relevantInteraction) { ExecutionSpecification currentExecutionSpec; ExecutionOccurrenceSpecification executionOccurrenceSpecStart; ExecutionOccurrenceSpecification executionOccurrenceSpecFinish; XmlElement currentBehaviorExecutionSpecElement; XmlElement executionOccurrenceSpecFinishElement; XmlElement executionOccurrenceSpecStartElement; Point currentExecutionSpecPosition; Size currentExecutionSpecDimension; Point executionOccurrenceSpecStartPosition; Point executionOccurrenceSpecFinishPosition; string currentExecutionOccurrenceSpecStartId; string currentExecutionOccurrenceSpecFinishId; ArrayList executionSpecs =relevantInteraction.ExecutionSpecs; IEnumerator itrExecutionSpecs =executionSpecs.GetEnumerator(); while(itrExecutionSpecs.MoveNext()) { currentExecutionSpec=(ExecutionSpecification)itrExecutionSpecs.Current; currentExecutionSpecPosition=currentExecutionSpec.Position; currentExecutionSpecDimension=currentExecutionSpec.Dimension; currentBehaviorExecutionSpecElement=currentExecutionSpec.XmlRepresentation; currentExecutionOccurrenceSpecStartId=currentBehaviorExecutionSpecElement.GetAttribute(UmlModel.START_ATTR_COMPLETE_NAME); currentExecutionOccurrenceSpecFinishId=currentBehaviorExecutionSpecElement.GetAttribute(UmlModel.FINISH_ATTR_COMPLETE_NAME); executionOccurrenceSpecStartPosition=new Point(currentExecutionSpecPosition.X,currentExecutionSpecPosition.Y); executionOccurrenceSpecFinishPosition=new Point(currentExecutionSpecPosition.X, currentExecutionSpecPosition.Y+currentExecutionSpecDimension.Height); executionOccurrenceSpecStartElement= modelDocumentInterpreter.GetExecutionOccurrenceSpecElementForId(relevantInteraction.XmlRepresentation, currentExecutionOccurrenceSpecStartId); executionOccurrenceSpecFinishElement= modelDocumentInterpreter.GetExecutionOccurrenceSpecElementForId(relevantInteraction.XmlRepresentation, currentExecutionOccurrenceSpecFinishId); executionOccurrenceSpecStart=new ExecutionOccurrenceSpecification(executionOccurrenceSpecStartPosition, currentExecutionOccurrenceSpecStartId, relevantInteraction.XmlRepresentation); executionOccurrenceSpecStart.CoveredLifeline=currentExecutionSpec.CoveredLifeline; executionOccurrenceSpecStart.Position=executionOccurrenceSpecStartPosition; executionOccurrenceSpecStart.SpecificationKind= ExecutionOccurrenceSpecKind.START; executionOccurrenceSpecFinish=new ExecutionOccurrenceSpecification(executionOccurrenceSpecFinishPosition, currentExecutionOccurrenceSpecFinishId, relevantInteraction.XmlRepresentation); executionOccurrenceSpecFinish.CoveredLifeline=currentExecutionSpec.CoveredLifeline; executionOccurrenceSpecFinish.Position=executionOccurrenceSpecFinishPosition; executionOccurrenceSpecFinish.SpecificationKind= ExecutionOccurrenceSpecKind.FINISH; relevantInteraction.ExecutionOccurrenceSpecs.Add(executionOccurrenceSpecStart); relevantInteraction.ExecutionOccurrenceSpecs.Add(executionOccurrenceSpecFinish); } }