华谊自己改写的工作流

DefModifyRollbackOprEditForm.cs 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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.BusinessConfigurator.DefBusinessConfigurator
  11. {
  12. public partial class DefModifyRollbackOprEditForm : Form
  13. {
  14. WorkFlow.Flow _flow;
  15. WorkFlow.BusineFlowNode _objNode;
  16. List<RollbackOpr> _newRollbackList;
  17. RollbackOpr _rollback;
  18. bool bExit = true;
  19. public WorkFlow.Flow Flow
  20. {
  21. get { return _flow; }
  22. set { _flow = value; }
  23. }
  24. public WorkFlow.BusineFlowNode ObjNode
  25. {
  26. get { return _objNode; }
  27. set
  28. {
  29. _objNode = value;
  30. }
  31. }
  32. public List<RollbackOpr> NewRollbackList
  33. {
  34. get { return _newRollbackList; }
  35. set { _newRollbackList = value; }
  36. }
  37. public RollbackOpr Rollback
  38. {
  39. get { return _rollback; }
  40. set { _rollback = value; }
  41. }
  42. /// <summary>
  43. /// 获取可供作为打回的节点列表
  44. /// 当前节点不选,已被作为打回的节点不选
  45. /// </summary>
  46. /// <returns></returns>
  47. protected List<BusineFlowNode> GetNodes()
  48. {
  49. List<BusineFlowNode> nodeList = new List<BusineFlowNode>();
  50. nodeList.Add(_rollback.ObjNode);
  51. foreach (WorkFlow.FlowNode node in _flow.FlowNodeList)
  52. {
  53. if (!node.BeBusineNode || node == _objNode)
  54. continue;
  55. //寻找已添加的打回节点
  56. bool bAdd = true;
  57. if (_newRollbackList != null && _newRollbackList.Count > 0)
  58. {
  59. foreach (RollbackOpr rollbackOpr in _newRollbackList)
  60. {
  61. if (rollbackOpr.ObjNode == node)
  62. {
  63. bAdd = false;
  64. break;
  65. }
  66. }
  67. }
  68. if (bAdd)
  69. nodeList.Add((BusineFlowNode)node);
  70. }
  71. return nodeList;
  72. }
  73. public DefModifyRollbackOprEditForm()
  74. {
  75. InitializeComponent();
  76. }
  77. private void DefModifyRollbackOprEditForm_Load(object sender, EventArgs e)
  78. {
  79. tbID.Text = _rollback.RollbackOprID;
  80. tbName.Text = _rollback.RollbackOprName;
  81. List<BusineFlowNode> nodeList = GetNodes();
  82. cbNextNodes.Items.AddRange(nodeList.ToArray());
  83. if (nodeList.Count > 0)
  84. cbNextNodes.SelectedItem = _rollback.ObjNode;
  85. }
  86. private void btOK_Click(object sender, EventArgs e)
  87. {
  88. tbID.Text.Trim();
  89. tbName.Text.Trim();
  90. //判断ID是否重复
  91. if (_objNode.RollbackOprList != null && _newRollbackList.Count > 0)
  92. {
  93. foreach (RollbackOpr rollback in _newRollbackList)
  94. {
  95. if (rollback.RollbackOprID == _rollback.RollbackOprID)
  96. {
  97. MessageBox.Show("警告", "操作ID重复!");
  98. bExit = false;
  99. return;
  100. }
  101. }
  102. }
  103. _rollback.RollbackOprID = tbID.Text;
  104. _rollback.RollbackOprName = tbName.Text;
  105. _rollback.ObjNode = (BusineFlowNode)cbNextNodes.SelectedItem;
  106. }
  107. private void DefModifyRollbackOprEditForm_FormClosing(object sender, FormClosingEventArgs e)
  108. {
  109. if (!bExit)
  110. e.Cancel = true;
  111. }
  112. }
  113. }