华谊自己改写的工作流

ModifyOutputEditForm.cs 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using FlowEditor.WorkFlow;
  10. namespace FlowEditor
  11. {
  12. public partial class ModifyOutputEditForm : Form
  13. {
  14. WorkFlow.Flow _flow;
  15. WorkFlow.FlowNode _objNode;
  16. List<WorkFlow.OutputPort> _newOutputPortList;
  17. WorkFlow.OutputPort _outputPort;
  18. public WorkFlow.Flow Flow
  19. {
  20. get { return _flow; }
  21. set { _flow = value; }
  22. }
  23. public WorkFlow.FlowNode ObjNode
  24. {
  25. get { return _objNode; }
  26. set
  27. {
  28. _objNode = value;
  29. }
  30. }
  31. public List<WorkFlow.OutputPort> NewOutputPortList
  32. {
  33. get { return _newOutputPortList; }
  34. set { _newOutputPortList = value; }
  35. }
  36. public WorkFlow.OutputPort OutputPort
  37. {
  38. get { return _outputPort; }
  39. set { _outputPort = value; }
  40. }
  41. public ModifyOutputEditForm()
  42. {
  43. InitializeComponent();
  44. }
  45. /// <summary>
  46. /// 获取可供作为出口的节点列表
  47. /// 开始节点不选,当前节点不选,除了当前出口的节点外其他已被作为出口的节点不选
  48. /// </summary>
  49. /// <returns></returns>
  50. protected List<WorkFlow.FlowNode> GetNodes()
  51. {
  52. List<WorkFlow.FlowNode> nodeList = new List<WorkFlow.FlowNode>();
  53. nodeList.Add(_outputPort.ObjNode);
  54. foreach (WorkFlow.FlowNode node in _flow.FlowNodeList)
  55. {
  56. if (node.Type == WorkFlow.FlowNodeType.Begin_FlowNode || node == _objNode)
  57. continue;
  58. bool bAdd = true;
  59. if (_newOutputPortList != null && _newOutputPortList.Count > 0)
  60. {
  61. foreach (WorkFlow.OutputPort outputPort in _newOutputPortList)
  62. {
  63. if (outputPort.ObjNode == node)
  64. {
  65. bAdd = false;
  66. break;
  67. }
  68. }
  69. }
  70. if (bAdd)
  71. nodeList.Add(node);
  72. }
  73. return nodeList;
  74. }
  75. private void OutputEditForm_Load(object sender, EventArgs e)
  76. {
  77. FlowNode[] nodes = GetNodes().ToArray<FlowNode>();
  78. cbNextNodes.Items.AddRange(nodes);
  79. //设置原来出口节点为当前节点
  80. cbNextNodes.SelectedItem = _outputPort.ObjNode;
  81. tbID.Text = _outputPort.ID;
  82. tbName.Text = _outputPort.Name;
  83. }
  84. private void btOK_Click(object sender, EventArgs e)
  85. {
  86. _outputPort.ID = tbID.Text;
  87. _outputPort.Name = tbName.Text;
  88. _outputPort.ObjNode = (FlowNode)cbNextNodes.SelectedItem;
  89. }
  90. }
  91. }