public IList <Control> DeleteSelected() { IList <Control> result = new List <Control>(); foreach (Control control in ControlList) { if (control.IsSelected) { result.Add(control); } else { if (control is LineControl) { LineControl line = control as LineControl; //if (line.Source.IsSelected || line.Target.IsSelected) // result.Add(control); } } } foreach (Control control in result) { ControlList.Remove(control); } return(result); }
public override void OnMouseUp(int x, int y) { Point scrollOffset = Ctrl.ScrollOffset; Point startPoint = Ctrl.PointToScreen(new Point(startMouseX - scrollOffset.X + 20, startMouseY - scrollOffset.Y + 20)); ControlPaint.DrawReversibleLine(startPoint, Ctrl.PointToScreen(new Point(endMouseX - scrollOffset.X + 20, endMouseY - scrollOffset.Y + 20)), Color.Black); HitTestResult end = Ctrl.Document.HitTest(x, y); //if ((end == null) || (!(end.control is BaseControl))) //{ // MessageBox.Show("流向没有结束在节点上"); //} //else //{ Point sPoint = new Point(startMouseX - scrollOffset.X, startMouseY - scrollOffset.Y); Point ePoint = new Point(endMouseX - scrollOffset.X, endMouseY - scrollOffset.Y); LineControl line = new LineControl(sPoint, ePoint); line.AlignToGrid(); this.Ctrl.Document.ControlList.Add(line); this.Ctrl.Document.Lines.Add(line); //} Ctrl.RedrawAll(); Ctrl.CurrentTool = new SelectorTool(); }
public void CreateXml(XmlElement xmlElement) { XmlElement processElement = xmlElement.OwnerDocument.CreateElement("process"); XmlAttribute attr = xmlElement.OwnerDocument.CreateAttribute("id"); attr.Value = _id; processElement.Attributes.Append(attr); attr = xmlElement.OwnerDocument.CreateAttribute("description"); attr.Value = _description; processElement.Attributes.Append(attr); XmlElement actsElement = processElement.OwnerDocument.CreateElement("activities"); processElement.AppendChild(actsElement); foreach (Control control in _controls) { if (!(control is LineControl)) { BaseControl act = control as BaseControl; act.CreateXml(actsElement); } } XmlElement linesElement = processElement.OwnerDocument.CreateElement("lines"); processElement.AppendChild(linesElement); foreach (Control control in _controls) { if (control is LineControl) { LineControl line = control as LineControl; line.CreateXml(linesElement); } } xmlElement.AppendChild(processElement); }