Exemplo n.º 1
0
        /// <summary>
        /// </summary>
        private void miDownProcess_Click(object sender, EventArgs e)
        {
            //在下边增加一个新的进程
            ProcessButton pb = new ProcessButton();

            pb.Left = this.Left - (int)(4.5 * DrawUtility.a);
            pb.Top  = this.Top + this.Height - 4;
            this.Parent.Controls.Add(pb);
            pb.InFlows.Add(this);
            this.ToProcesses.Add(pb);
        }
Exemplo n.º 2
0
 /// <summary>
 /// </summary>
 private void miProcess_Click(object sender, EventArgs e)
 {
     //如果已经有的不要增加了。
     if (ToProcesses.Count > 0)
     {
         MessageBox.Show("目标进程已经存在");
     }
     else
     {
         //在右边增加一个新的进程
         ProcessButton pb = new ProcessButton();
         pb.Left = this.Right;
         pb.Top  = this.Top - 2 * DrawUtility.a;
         this.Parent.Controls.Add(pb);
         pb.InFlows.Add(this);
         this.ToProcesses.Add(pb);
     }
 }
Exemplo n.º 3
0
 public override FunctionButton AddOutProcess(string processName)
 {
     if (ToProcesses.Count > 0)
     {
         return(null);
     }
     else
     {
         //在右边增加一个新的进程
         ProcessButton pb = new ProcessButton();
         pb.ProcessName = processName;
         pb.Left        = this.Right - this.Width / 2;
         pb.Top         = this.Top - 2 * DrawUtility.a;
         this.Parent.Controls.Add(pb);
         pb.InFlows.Add(this);
         this.ToProcesses.Add(pb);
         return(pb);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// </summary>
        private void miProcess_Click(object sender, EventArgs e)
        {
            //在下边增加一个新的进程
            ProcessButton pb = new ProcessButton();

            if (this.FromProcesses.Count > 0)
            {
                pb.Left = (FromProcesses[0] as ProcessButton).Left;
                pb.Top  = this.Top + this.Height;
            }
            else
            {
                pb.Left = this.Left - (DrawUtility.rw + DrawUtility.ah - 4) * DrawUtility.a / 2;
                pb.Top  = this.Top + this.Height;
            }
            this.Parent.Controls.Add(pb);
            pb.InFlows.Add(this);
            this.ToProcesses.Add(pb);
        }
Exemplo n.º 5
0
        /// <summary>
        /// </summary>
        private void miDefine_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.Cross;
                SelectProcessForm spf = new SelectProcessForm(this.Parent);
                if (spf.ShowDialog() == DialogResult.OK)
                {
                    ProcessButton     pb = spf.SelectedButton;
                    DefineArrowButton dab;
                    if (pb.Left > this.Left)
                    {
                        Point startPoint = new Point(this.Left + this.Width, this.Top);
                        Point endPoint   = new Point(pb.Left, pb.Top + pb.Height);
                        dab = new DefineArrowButton(startPoint, endPoint);
                        //向右上方画
                        dab.Left = this.Left + this.Width;
                        dab.Top  = this.Top - (startPoint.Y - endPoint.Y);
                    }
                    else
                    {
                        Point startPoint = new Point(this.Left, this.Top);
                        Point endPoint   = new Point(pb.Left + pb.Width, pb.Top + pb.Height);
                        dab = new DefineArrowButton(startPoint, endPoint);
                        //向右上方画
                        dab.Left = endPoint.X;
                        dab.Top  = endPoint.Y;
                    }

                    this.Parent.Controls.Add(dab);
                    OutFlows.Add(dab);
                    dab.FromProcesses.Add(this);
                    dab.ToProcesses.Add(pb);
                }
                //获取目标点
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
Exemplo n.º 6
0
        public override FunctionButton AddOutProcess(string processName)
        {
            //如果已经有的不要增加了。
            if (ToProcesses.Count > 0)
            {
                MessageBox.Show("目标进程已经存在");
                return(null);
            }
            else
            {
                //在右边增加一个新的进程,SystemColors.Control
                ProcessButton pb = new ProcessButton(SystemColors.Control, this.degree, this.ArrowHead);
                pb.ProcessName = processName;
                this.Parent.Controls.Add(pb);
                pb.DrawButton();

                pb.InFlows.Add(this);
                this.ToProcesses.Add(pb);
                return(pb);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// </summary>
        private void miJump_Click(object sender, EventArgs e)
        {
            //选择目标点
            ProcessButton     pbEnd = null;
            SelectProcessForm spf   = new SelectProcessForm(this.Parent);

            if (spf.ShowDialog() == DialogResult.OK)
            {
                pbEnd = spf.SelectedButton;
                int length = 0;
                if (pbEnd.Left > this.Left)
                {
                    length = Math.Abs(pbEnd.Left - this.Left - DrawUtility.a);
                }
                else
                {
                    length = Math.Abs(this.Left - pbEnd.Left - DrawUtility.a);
                }

                bool            isBack = pbEnd.Left < this.Left;
                JumpArrowButton jab    = new JumpArrowButton(isBack, length);
                DrawUtility.DrawJumpArrow(jab, null, length, isBack);
                if (pbEnd.Left > this.Left)
                {
                    jab.Left = this.Left + this.Width / 2 - DrawUtility.a;
                    jab.Top  = this.Top - 12 * DrawUtility.a;
                }
                else
                {
                    jab.Left = pbEnd.Left + pbEnd.Width / 2 - DrawUtility.a;
                    jab.Top  = this.Top - 17 * DrawUtility.a;
                }
                this.Parent.Controls.Add(jab);
                OutFlows.Add(jab);
                jab.FromProcesses.Add(this);
                jab.ToProcesses.Add(pbEnd);
            }
        }