Exemple #1
0
        private static Arc GetArcObjectFromPnmlElement(PetriNet petriNet, XElement pnmlElement)
        {
            Arc arc = new Arc();

            arc.ID = pnmlElement.Attribute("id").Value;
            string startElementID = pnmlElement.Attribute("source").Value;
            string endElementID = pnmlElement.Attribute("target").Value;
            arc.StartElement = petriNet.Elements.FirstOrDefault(element => element.ID == startElementID);
            arc.EndElement = petriNet.Elements.FirstOrDefault(element => element.ID == endElementID);

            if (pnmlElement.Element("graphics") != null)
            {
                if (pnmlElement.Element("graphics").Element("dimension") != null)
                {
                    arc.SetGraphicsMetadataItem("graphics.dimension.@x", int.Parse(pnmlElement.Element("graphics").Element("dimension").Attribute("x").Value));
                    arc.SetGraphicsMetadataItem("graphics.dimension.@y", int.Parse(pnmlElement.Element("graphics").Element("dimension").Attribute("y").Value));
                }
            }
            return arc;
        }
Exemple #2
0
        private XElement ConvertArcToPnmlElement(Arc arc)
        {
            var arcElement = new XElement("arc");
            arc.ID = arc.ID ?? Guid.NewGuid().ToString().Substring(0, 8);
            arcElement.SetAttributeValue("id", arc.ID);
            arcElement.SetAttributeValue("source", arc.StartElement.ID);
            arcElement.SetAttributeValue("target", arc.EndElement.ID);

            var inscriptionElement = new XElement("inscription");
            var textElement = new XElement("text", string.Empty);
            inscriptionElement.Add(textElement);
            arcElement.Add(inscriptionElement);

            AppendMetadataToPnmlElement(arcElement, arc.GraphicsMetadata);
            return arcElement;
        }
        private void ConnectSelectedWidgets()
        {
            Arc arc = new Arc(SelectedWidgets[0].Element, SelectedWidgets[1].Element);
            do
            {
                arc.ID = "arc" + ElementIDProvider.GetNextID("arc");
            }
            while (Widgets.Exists(widget => widget.Element != null && widget.Element.ID == arc.ID));

            ArcWidget arcWidget = new ArcWidget(arc);
            Widgets.Add(arcWidget);
            HandleWidgetsChanged();

            RedrawCanvas();
            UpdateControlAvailability();
        }