Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
        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);
        }