public override void HandleMouseHoverOut(LTSCanvas canvas) { try { PNArc route = this.FindSelectedRouteBasedOnTransition(canvas); route.HandleMouseHoverOut(canvas); } catch { } }
public ArcEditingForm(PNArc arc) { InitializeComponent(); _arc = arc; textBox3.Text = _arc.Weight.ToString(); if (arc.From is PNPlace) { label1.Text = "From:"; } textBox1.Text = (arc.From as StateItem).Name; if (arc.To is PNPlace) { label2.Text = "To:"; } textBox2.Text = (arc.To as StateItem).Name; }
private void Canvas_CanvasItemSelected(object sender, CanvasItemEventArgs e) { if (this.Button_AddLink.Checked) { if (this.SelectedItems.Count > 0 && e.CanvasItem != null) { CanvasItemData SelectedItem = this.SelectedItems[0]; if (SelectedItem.Item is StateItem && e.CanvasItem.Item is StateItem && SelectedItem.Item.GetType() != e.CanvasItem.Item.GetType()) { StateItem sourceState = SelectedItem.Item as StateItem; StateItem targetState = e.CanvasItem.Item as StateItem; PNArc r = new PNArc(SelectedItem.Item, targetState); if (sourceState is PNTransition) { (sourceState as PNTransition).OutputPlaces.Add(targetState as PNPlace); } else { (targetState as PNTransition).InputPlaces.Add(sourceState as PNPlace); } this.AddLink(r); SetDirty(); } e.CanvasItem.Item.HandleMouseUp(new PointF()); Button_AddLink.Checked = false; } else if (this.SelectedItems.Count == 0 && e.CanvasItem != null) { //Select the starting state of route this.SelectedItems.Clear(); this.SelectedItems.Add(e.CanvasItem); Canvas.temporaryNails.Add((e.CanvasItem.Item as StateItem).Center()); } else if (this.SelectedItems.Count > 0 && e.CanvasItem == null) { //Click on canvas to create a new nail Canvas.temporaryNails.Add(this.Canvas.LastMouseClickPosition); } } else { this.SelectedItems.Clear(); if (e.CanvasItem != null) { this.SelectedItems.Add(e.CanvasItem); e.CanvasItem.Item.HandleSelected(this.Canvas); } CanvasItemData SelectedItem = e.CanvasItem; if (SelectedItem == null) { //Button_AddToken.Enabled = false; //Button_DeleteToken.Enabled = false; if (Button_AddNewState.Checked) { Button_AddNewState_Click(sender, e); Button_AddNewState.Checked = false; } if (Button_AddNewTransition.Checked) { Button_AddNewTransition_Click(sender, e); Button_AddNewTransition.Checked = false; } } else { //if (e.CanvasItem.Item is PNPlace && Button_AddToken.Checked) //{ // PNPlace place = e.CanvasItem.Item as PNPlace; // place.NumberOfTokens++; // Button_AddToken.Checked = false; // Canvas.Refresh(); // SetDirty(); //} //if (e.CanvasItem.Item is PNPlace && Button_DeleteToken.Checked) //{ // PNPlace place = e.CanvasItem.Item as PNPlace; // place.NumberOfTokens--; // Button_DeleteToken.Checked = false; // Canvas.Refresh(); // SetDirty(); //} //if (e.CanvasItem.Item is PNTransition) //{ // Button_AddToken.Enabled = false; // Button_DeleteToken.Enabled = false; //} } } SelectedRoute = null; this.Button_Delete.Enabled = (this.SelectedItems.Count > 0); if (SelectedItems.Count == 1 && SelectedItems[0].Item is PNPlace) { //Button_AddToken.Enabled = true; //PNPlace place = SelectedItems[0].Item as PNPlace; //Button_DeleteToken.Enabled = (place.NumberOfTokens > 0); } }
private void AddLink(PNArc route) { this.Canvas.AddLink(route); StoreCurrentCanvas(); }
private void EditingArc(PNArc arc) { ArcEditingForm form = new ArcEditingForm(arc); if (form.ShowDialog() == DialogResult.OK) { // do something here SetDirty(); } Canvas.Refresh(); }
public override void RemovedFromCanvas(LTSCanvas canvas) { PNArc route = this.FindSelectedRouteBasedOnTransition(canvas); route.RemovedFromCanvas(canvas); }
public override void HandleSelected(LTSCanvas canvas) { PNArc route = this.FindSelectedRouteBasedOnTransition(canvas); route.CurrentState = ItemState.Selected; }
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); } }
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); } }