コード例 #1
0
ファイル: PNArc.cs プロジェクト: vu111293/pat-design
        public override void LoadFromXML(XmlElement xmlElement, LTSCanvas canvas)
        {
            if (canvas is PNCanvas)
            {
                PNCanvas myCanvas      = canvas as PNCanvas;
                string   startingState = xmlElement.GetAttribute("From");
                this.From = myCanvas.FindState(startingState);
                string endState = xmlElement.GetAttribute("To");
                this.To = myCanvas.FindState(endState);

                if (From is PNTransition)
                {
                    (From as PNTransition).OutputPlaces.Add(To as PNPlace);
                }
                else
                {
                    (To as PNTransition).InputPlaces.Add(From as PNPlace);
                }

                this.Weight = int.Parse(xmlElement.GetAttribute("Weight"));

                for (int i = 0; i < xmlElement.ChildNodes.Count - 1; i++)
                {
                    NailItem nail = new NailItem(this);
                    nail.LoadFromXml(xmlElement.ChildNodes[i] as XmlElement);
                    this.Nails.Add(nail);
                }

                this.Label.LoadFromXml(xmlElement.ChildNodes[xmlElement.ChildNodes.Count - 1] as XmlElement);
            }
        }
コード例 #2
0
ファイル: PNCanvas.cs プロジェクト: KWSN-PAT/KWSN
        public PNCanvas Dup()
        {
            PNCanvas duplicate = new PNCanvas();

            duplicate.LoadFromXml(this.Clone());
            duplicate.Node.Text = this.Node.Text + "-Copy";

            bool nameExist = true;

            while (nameExist)
            {
                nameExist = false;
                foreach (TreeNode node in this.Node.Parent.Nodes)
                {
                    if (node.Text.Equals(duplicate.Node.Text, StringComparison.CurrentCultureIgnoreCase))
                    {
                        duplicate.Node.Text = duplicate.Node.Text + "-Copy";
                        nameExist           = true;
                        break;
                    }
                }
            }

            return(duplicate);
        }
コード例 #3
0
        public static PNModel LoadLTSFromXML(string text)
        {
            string          assertion = string.Empty;
            List <PNCanvas> canvases  = new List <PNCanvas>();

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(text);

            XmlNodeList sitesNodes = doc.GetElementsByTagName(Parsing.ASSERTION_NODE_NAME);

            //TODO? What is this for?
            foreach (XmlElement component in sitesNodes)
            {
                assertion = component.InnerText;
            }

            sitesNodes = doc.GetElementsByTagName(Parsing.MODELS_NODE_NAME);

            if (sitesNodes.Count > 0)
            {
                foreach (XmlElement component in sitesNodes[0].ChildNodes)
                {
                    PNCanvas canvas = new PNCanvas();
                    canvas.LoadFromXml(component);
                    canvases.Add(canvas);
                }
            }

            return(new PNModel(assertion, canvases));
        }
コード例 #4
0
        public static PNModel LoadLTSFromXML(string text)
        {
            string          assertion = string.Empty;
            List <PNCanvas> canvases  = new List <PNCanvas>();

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(text);

            // testing----------------------------------------------------

            XmlElement topology;

            List <string> sensorIds  = new List <string>();
            List <string> channelIds = new List <string>();

            XmlNodeList sitesNodes = doc.GetElementsByTagName(PNNode.TAG_TOPOLOGY);

            topology = (XmlElement)sitesNodes[0];

            sitesNodes = doc.GetElementsByTagName(PNNode.TAG_SENSOR);
            foreach (XmlElement element in sitesNodes)
            {
                sensorIds.Add(element.GetAttribute(PNNode.TAG_SENSOR_ID));
            }

            sitesNodes = doc.GetElementsByTagName(PNNode.TAG_CHANNEL);
            foreach (XmlElement element in sitesNodes)
            {
                channelIds.Add(element.GetAttribute(PNNode.TAG_CHANNEL_ID));
            }

            //------------------------------------------------------------

            sitesNodes = doc.GetElementsByTagName(Parsing.ASSERTION_NODE_NAME);

            //TODO? What is this for?
            foreach (XmlElement component in sitesNodes)
            {
                assertion = component.InnerText;
            }

            sitesNodes = doc.GetElementsByTagName(Parsing.MODELS_NODE_NAME);

            if (sitesNodes.Count > 0)
            {
                foreach (XmlElement component in sitesNodes[0].ChildNodes)
                {
                    PNCanvas canvas = new PNCanvas(sensorIds, channelIds);
                    canvas.LoadFromXmlAlt(component, 0);
                    canvases.Add(canvas);
                }
            }

            return(new PNModel(assertion, canvases, topology));
        }