public AbstractEdge(string name, long unid, bool showAnnotation, int weight, Position position, Transition transition, PointF curveMiddlePoint, EdgeType edgeType) : base(name, unid, showAnnotation) { this.weight = weight; this.position = position; this.transition = transition; this.curveMiddlePointOffset = curveMiddlePoint; this.edgeType = edgeType; }
public static AbstractNetworkItem openFromXml(XmlNode node) { PointF origo = new PointF(0, 0); PointF labelOffset = new PointF(0, 0); List<AbstractToken> tokens = null; List<PetriEvent> events = null; XmlNodeList list = node.ChildNodes; foreach (XmlNode childNode in list) { string namespaceUri = childNode.NamespaceURI; string localName = childNode.LocalName; switch (namespaceUri) { case PetriXmlHelper.XML_POINTF_NAMESPACE: if ("Origo".Equals(localName)) { origo = PetriXmlHelper.openPointF(childNode); } else if ("LabelOffset".Equals(localName)) { labelOffset = PetriXmlHelper.openPointF(childNode); } break; case PetriXmlHelper.XML_POSITION_NAMESPACE: switch (localName) { case "Tokens": tokens = Position.openTokensFromXml(childNode.ChildNodes); break; } break; case PetriXmlHelper.XML_ITEM_NAMESPACE: switch (localName) { case "Events": events = PetriEvent.openEvents(childNode.ChildNodes, "ItemEvent"); break; } break; } } string name = AbstractItem.openNameAttrFromNode(node); long unid = AbstractItem.openUnidAttrFromNode(node); bool showAnnotation = AbstractItem.openShowAnnotationAttrFromNode(node); float radius = AbstractNetworkItem.openRadiusAttrFromNode(node); int capacityLimit = AbstractPosition.openCapacityLimitAttrFromNode(node); Position ret = new Position(name, unid, showAnnotation, origo, radius, capacityLimit); ret.PetriEvents.addEvent(events); ret.LabelOffset = labelOffset; ret.tokens.AddRange(tokens); return ret; }
public EdgeTransitionPosition(string name, long unid, bool showAnnotation, int weight, Transition transition, Position position, PointF curveMiddlePoint, EdgeType edgeType) : base(name, unid, showAnnotation, weight, position, transition, curveMiddlePoint, edgeType) { }
protected void addEdgeTransitionPosition(int weight, Transition transition, Position position, PointF curveMiddlePoint) { this.addEdge(new EdgeTransitionPosition("", this.unidGenNumber++, true, weight, transition, position, curveMiddlePoint, EdgeType.NORMAL)); }
public int getPlusWeight(Position position, Transition transition) { int ret = 0; foreach (AbstractEdge edge in this.edges) { if (edge is EdgeTransitionPosition) { if (EdgeType.NORMAL.Equals(edge.EdgeType)) { EdgeTransitionPosition etp = (EdgeTransitionPosition)edge; if (etp.StartTransition.Equals(transition) && etp.EndPosition.Equals(position)) { ret = etp.Weight; break; } } } } return ret; }
public int getMinusWeight(Position position, Transition transition) { int ret = 0; foreach (AbstractEdge edge in this.edges) { if (edge is EdgePositionTransition) { if (EdgeType.NORMAL.Equals(edge.EdgeType)) { EdgePositionTransition ept = (EdgePositionTransition)edge; if ( ept.StartPosition.Equals(position) && ept.EndTransition.Equals(transition) ) { ret = ept.Weight; break; } } } } return ret; }
public void deleteToken(Position position) { if (position != null) { position.deleteToken(); this.deleteAllStates(); } }
public void addToken(Position position, string name) { if (position != null) { position.addToken(this.identityProvider.tokenIdentity(name), this.unidGenNumber++); this.deleteAllStates(); } }
public AbstractNetworkItem addPosition(string name, PointF origo, float radius) { Position position = new Position(this.identityProvider.positionIdentity(name), this.unidGenNumber++, true, origo, radius, 0); this.addItem(position); return position; }