示例#1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="canvas"></param>
        /// <param name="edgeInfo"></param>
        public PPathwayEdge(CanvasControl canvas, EdgeInfo edgeInfo)
        {
            m_canvas = canvas;
            m_edgeInfo = edgeInfo;

            SetEdge(m_brush, m_width);
        }
示例#2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="canvas"></param>
        /// <param name="edgeInfo"></param>
        /// <param name="process"></param>
        /// <param name="variable"></param>
        public PPathwayEdge(CanvasControl canvas, EdgeInfo edgeInfo, PPathwayProcess process, PPathwayVariable variable)
            : this(canvas, edgeInfo)
        {
            m_variable = variable;
            m_process = process;
            m_variable.Edges.Add(this);
            m_process.Edges.Add(this);

            SetEdge(m_brush, LINE_WIDTH);
            base.Pickable = (variable.Visible && process.Visible);
            base.Visible = (variable.Visible && process.Visible);

            m_varPoint = variable.GetContactPoint(process.Center);
            m_proPoint = process.GetContactPoint(m_varPoint);
            this.DrawLine();
        }
示例#3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="process"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        private List<EdgeInfo> CreateEdgeInfos(string process, List<EcellReference> list)
        {
            Dictionary<string, EdgeInfo> dic = new Dictionary<string, EdgeInfo>();
            List<EdgeInfo> infos = new List<EdgeInfo>();
            foreach (EcellReference er in list)
            {
                if (!base.m_canvas.Variables.ContainsKey(er.Key))
                    continue;
                // register
                if (!dic.ContainsKey(er.Key))
                {
                    EdgeInfo info = new EdgeInfo(process, list, er);
                    dic.Add(er.Key, info);
                    continue;
                }

                // set edge type.
                if (dic[er.Key].Direction == EdgeDirection.None)
                {
                    EdgeInfo tmp = new EdgeInfo(process, list, er);
                    dic[er.Key].Direction = tmp.Direction;
                    dic[er.Key].LineType = tmp.LineType;
                }
            }

            infos.AddRange(dic.Values);
            return infos;
        }