コード例 #1
0
ファイル: PlaceEditingForm.cs プロジェクト: nhannhan159/PAT
 public PlaceEditingForm(PNPlace place)
 {
     InitializeComponent();
     _place = place;
     textBox1.Text = _place.Name;
     textBox2.Text = _place.Capacity.ToString();
     textBox3.Text = _place.NumberOfTokens.ToString();
     TextBox_Guard.Text = _place.Guard;
     label4.ForeColor = Color.Black;
     label4.Text = "if Capacity is 0, the number of tokens is unlimited";
 }
コード例 #2
0
 public PlaceEditingForm(PNPlace place)
 {
     InitializeComponent();
     _place             = place;
     textBox1.Text      = _place.Name;
     textBox2.Text      = _place.Capacity.ToString();
     textBox3.Text      = _place.NumberOfTokens.ToString();
     TextBox_Guard.Text = _place.Guard;
     label4.ForeColor   = Color.Black;
     label4.Text        = "if Capacity is 0, the number of tokens is unlimited";
 }
コード例 #3
0
ファイル: PNTabItem.cs プロジェクト: nhannhan159/PAT
        private void Button_AddNewState_Click(object sender, EventArgs e)
        {
            PointF p = Point.Empty;
            //Add from menu bar
            if (this.Button_AddNewState.Checked)
            {
                p = this.Canvas.LastMouseClickPosition;
            }
            else
            {
                p = this.Canvas.lastRightClickPosition;
            }

            PNPlace classitem = new PNPlace(string.Format("P{0}", Canvas.PlaceCounter), 0, "", 0);
            Canvas.PlaceCounter++;

            classitem.X = p.X;
            classitem.Y = p.Y;

            //classitem.Initialize();

            AddCanvasItem(classitem);
            Canvas.Refresh();
            SetDirty();
        }
コード例 #4
0
ファイル: PNTabItem.cs プロジェクト: nhannhan159/PAT
        private void addProcessToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Canvas != null)
            {
                Canvas.Visible = false;
            }

            TreeNode node = TreeView_Structure.Nodes[0].Nodes["Models"].Nodes.Add("M" + pcounter);
            pcounter++;

            Canvas = new PNCanvas();
            Canvas.Node = node;
            node.Tag = Canvas;
            TreeView_Structure.SelectedNode = node;

            AddNewProcess(Canvas);

            //add the first
            // ---replace by lqv--
            // PNPlace classitem = new PNPlace("Place " + Canvas.StateCounter, 1, "", 0);
            // --
            PNPlace classitem = new PNPlace("P" + Canvas.StateCounter, 1, "", 0);
            // --

            Canvas.StateCounter++;
            classitem.X = 100 / Canvas.Zoom;
            classitem.Y = 100 / Canvas.Zoom;
            AddCanvasItem(classitem);

            Canvas.Refresh();
            SetDirty();
        }
コード例 #5
0
ファイル: PNCanvas.cs プロジェクト: nhannhan159/PAT
        public override void LoadFromXml(XmlElement elem)
        {
            Node.Text = elem.GetAttribute(NAME_PROCESS_NODE_NAME, "");
            Console.Write(Node.Text);
            Parameters = elem.GetAttribute(PARAMETER_NODE_NAME, "");
            Console.Write(Parameters);
            Zoom = float.Parse(elem.GetAttribute(ZOOM_PROCESS_NODE_NAME, ""));
            PlaceCounter = int.Parse(elem.GetAttribute(PLACE_COUNTER));
            TransitionCounter = int.Parse(elem.GetAttribute(TRANSITION_COUNTER));

            int color = 0;

            // --replace by lqvu--
            //XmlElement topologyElement = (XmlElement)elem.ChildNodes[0];
            //LoadTopologyElement(topologyElement);
            // --
            int id = 0;
            if (elem.ChildNodes.Count == 4)
            {
                XmlElement topologyElement = (XmlElement)elem.ChildNodes[id++];
                LoadTopologyElement(topologyElement);
            }
            // --

            XmlElement placesElement = (XmlElement)elem.ChildNodes[id++];
            foreach (XmlElement element in placesElement.ChildNodes)
            {
                string elementId = element.GetAttribute(XmlTag.TAG_REFERENCE_ID);
                if (this.mSensors.Exists(x => x.ID == elementId)) color = 1;
                if (this.mChannels.Exists(x => x.ID == elementId)) color = -1;
                PNPlace place = new PNPlace(string.Empty, 0, elementId, color);
                place.LoadFromXml(element);
                this.AddSingleCanvasItem(place);
                this.AddSingleCanvasItem(place.labelItems);
            }

            XmlElement transitionsElement = (XmlElement)elem.ChildNodes[id++];
            foreach (XmlElement element in transitionsElement.ChildNodes)
            {
                string elementId = element.GetAttribute(XmlTag.TAG_REFERENCE_ID);
                if (this.mSensors.Exists(x => x.ID == elementId)) color = 1;
                if (this.mChannels.Exists(x => x.ID == elementId)) color = -1;

                String nameProp = element.GetAttribute("Name");
                if (nameProp != null && nameProp.Length > 3 && nameProp.Substring(0, 4) == "Conn")
                    color = 2;

                PNTransition transition = new PNTransition(string.Empty, elementId, color);
                transition.LoadFromXml(element);
                this.AddSingleCanvasItem(transition);
                this.AddSingleCanvasItem(transition.labelItems);
            }

            XmlElement linksElement = (XmlElement)elem.ChildNodes[id++];
            foreach (XmlElement element in linksElement.ChildNodes)
            {
                PNArc arc = new PNArc(null, null);
                arc.LoadFromXML(element, this);

                this.AddSingleLink(arc);
                foreach (NailItem nailItem in arc.Nails)
                {
                    this.AddSingleCanvasItem(nailItem);
                }

                this.AddSingleCanvasItem(arc.Label);
            }
        }