public override Point GetFormalGateGraphNodePosition(XmlElement diagramElement,XmlElement formalGateElement,MessageEndKind messageEndType) { Point relevantPosition; string relevantPositionString=""; string messageElementId; //string formalGateElementId; string relevantAnchorageElementId=""; XmlElement relevantAnchorageElement; messageElementId=formalGateElement.GetAttribute(UmlModel.MESSAGE_ATTR_NAME); string messageQuery=ELEMENT_TYPE_MESSAGE_FOR_ID_QUERY+this.hrefPrefix+messageElementId+QUERY_END; XmlElement messageElement=(XmlElement)diagramElement.SelectSingleNode(messageQuery,this.namespaceManager); XmlElement messageGraphNode=this.GetGraphElementForElementElement(messageElement); string emfQuerys=messageGraphNode.GetAttribute(UmlModel.ANCHOR_ATTR_NAME); ArrayList convertedAnchorageQueries=converter.ConvertEmfQuery(emfQuerys); if(messageEndType==MessageEndKind.sourceEnd) { relevantAnchorageElementId=(string)convertedAnchorageQueries[0]; } else if(messageEndType==MessageEndKind.destinationEnd) { relevantAnchorageElementId=(string)convertedAnchorageQueries[1]; } relevantAnchorageElement=GetAnchorageElement(relevantAnchorageElementId,diagramElement); relevantPositionString=relevantAnchorageElement.GetAttribute(UmlModel.POSITION_ATTR_NAME); relevantPosition=this.GetPositionForPositionString(relevantPositionString); return relevantPosition; }
public abstract Point GetFormalGateGraphNodePosition(XmlElement diagramElement, XmlElement formalGateElement,MessageEndKind eventKind);