Пример #1
0
 /// <summary>
 /// 更新环节
 /// </summary>
 /// <param name="workTacheInfo"></param>
 public void UpdateSelectedTache(WorkTacheInfo workTacheInfo)
 {
     if (selectedObj is WorkTache && (selectedObj as WorkTache).TacheType == WorkTacheType.Normal)
     {
         WorkTache tache = selectedObj as WorkTache;
         tache.Text      = tache.TacheInfo.Name;
         tache.TacheInfo = workTacheInfo;
     }
 }
Пример #2
0
        /// <summary>
        ///  添加新环节
        /// </summary>
        /// <param name="workTacheInfo"></param>
        public void AddTache(WorkTacheInfo workTacheInfo)
        {
            WorkTache wt = CreateTacheToView();

            wt.TacheType = WorkTacheType.Normal;
            wt.Location  = new Point(panelWorkFlow.Width / 2, panelWorkFlow.Height / 2);
            wt.Text      = wt.TacheInfo.Name;
            wt.TacheInfo = workTacheInfo;
        }
Пример #3
0
 /// <summary>
 /// 连接视图环节
 /// 只连接开始到任何终结的地方
 /// </summary>
 /// <param name="workTache"></param>
 /// <returns></returns>
 private void ConnectTacheToInfo(WorkTache workTache, ref List <WorkTacheInfo> infos)
 {
     if (workTache.TacheType == WorkTacheType.End || workTache.FlowLine2 == null)
     {
         return;
     }
     else
     {
         if (workTache.TacheType != WorkTacheType.Begin)
         {
             WorkTacheInfo info = new WorkTacheInfo();
             info.Name = workTache.TacheInfo.Name;
             info.Id   = workTache.TacheInfo.Id;
             info.Tag  = workTache.TacheInfo.Tag;
             infos.Add(info);
         }
         ConnectTacheToInfo(workTache.FlowLine2.EndControl as WorkTache, ref infos);
     }
 }
Пример #4
0
        /// <summary>
        ///加载工作流数据
        /// </summary>
        /// <param name="workTaches"></param>
        public void LoadFlowInfo(WorkFlowInfo flowInfo, string currentTacheId = "")
        {
            Clear();

            this.FlowInfo.Id = FlowInfo.Id;

            List <WorkTacheInfo> workTacheInfos = flowInfo.TacheInfos;

            WorkTache wtStart = CreateTacheToView();

            wtStart.TacheType = WorkTacheType.Begin;
            wtStart.Text      = "开始";

            SetTacheProperty(wtStart);

            List <WorkTache> taches = new List <WorkTache>();

            taches.Add(wtStart);
            bool left         = false;
            bool disConnected = false;

            for (int i = 0; i < workTacheInfos.Count; i++)
            {
                WorkTacheInfo item = workTacheInfos[i];
                WorkTache     wt   = CreateTacheToView();
                wt.TacheInfo = item;

                SetTacheProperty(wt);

                SetTachePosition(taches[i], wt, ref left);
                if (!disConnected)
                {
                    ConnectionLineToTache(taches[i], wt, currentTacheId);
                    disConnected = false;
                }

                if (workTacheInfos[i].IsDisConnectedFromNext)
                {
                    disConnected = true;
                }
                else
                {
                    disConnected = false;
                }
                taches.Add(wt);
            }

            //关联结束节点
            if (!disConnected)
            {
                WorkTache wtEnd = CreateTacheToView();
                wtEnd.TacheType = WorkTacheType.End;
                wtEnd.Text      = "结束";

                SetTacheProperty(wtEnd);

                SetTachePosition(taches.LastOrDefault(), wtEnd, ref left);
                //必须有环节数据 开始和结束节点才连线
                if (workTacheInfos.Count > 0)
                {
                    ConnectionLineToTache(taches.LastOrDefault(), wtEnd);
                }
            }
        }