CommunicationSetting.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. 
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows.Forms;
  5. using Core.StlMes.Client.LgResMgt.Mcms.entity;
  6. using CoreFS.CA06;
  7. namespace Core.StlMes.Client.LgResMgt.Mcms
  8. {
  9. public partial class CommunicationSetting : FrmBase
  10. {
  11. public CommunicationSetting(List<CommunicationEntity> datas )
  12. {
  13. InitializeComponent();
  14. if (datas == null)
  15. {
  16. _entitys = new List<CommunicationEntity>();
  17. }else
  18. {
  19. _entitys = datas.Select(p =>
  20. {
  21. CommunicationEntity temp = new CommunicationEntity();
  22. temp.PoundNo = p.PoundNo;
  23. if (p.Communication is SocketClient)
  24. {
  25. SocketClient tempS = new SocketClient
  26. {
  27. Ip = ((SocketClient) p.Communication).Ip,
  28. Port = ((SocketClient) p.Communication).Port
  29. };
  30. temp.Communication = tempS;
  31. }
  32. else if (p.Communication is SerialPortEntity)
  33. {
  34. SerialPortEntity tempS = new SerialPortEntity
  35. {
  36. PortName = ((SerialPortEntity) p.Communication).PortName,
  37. BaudRate = ((SerialPortEntity) p.Communication).BaudRate,
  38. StrDataBits = ((SerialPortEntity) p.Communication).StrDataBits,
  39. StopBits = ((SerialPortEntity) p.Communication).StopBits,
  40. StrParity = ((SerialPortEntity) p.Communication).StrParity
  41. };
  42. temp.Communication = tempS;
  43. }
  44. else
  45. {
  46. p.Communication = null;
  47. }
  48. return temp;
  49. }).ToList();
  50. }
  51. communicationEntityBindingSource.DataSource = Entitys;
  52. }
  53. private List<CommunicationEntity> _entitys;
  54. public List<CommunicationEntity> Entitys
  55. {
  56. get { return _entitys; }
  57. }
  58. private void utmMain_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  59. {
  60. switch (e.Tool.Key)
  61. {
  62. case "Save": // ButtonTool
  63. // Place code here
  64. matGrid.Update();
  65. List<CommunicationEntity> data =
  66. communicationEntityBindingSource.DataSource as List<CommunicationEntity>;
  67. if(data == null) data = new List<CommunicationEntity>();
  68. if ( data.Any(p=>string.IsNullOrWhiteSpace(p.PoundNo)))
  69. {
  70. MessageBox.Show("磅房不能为空!");
  71. return;
  72. }
  73. if (data.Any(p => p.Communication==null))
  74. {
  75. MessageBox.Show("磅房通信参数不能为空!");
  76. return;
  77. }
  78. _entitys = data;
  79. this.DialogResult = DialogResult.OK;
  80. break;
  81. case "Close": // ButtonTool
  82. this.DialogResult = DialogResult.Cancel;
  83. break;
  84. }
  85. }
  86. private void comEdit_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  87. {
  88. CommunicationEntity entity = matGrid.ActiveRow.ListObject as CommunicationEntity;
  89. using (CommunicationDetailSetting deatil = new CommunicationDetailSetting(entity.Communication))
  90. {
  91. if (deatil.ShowDialog() == DialogResult.OK)
  92. {
  93. entity.Communication = deatil.Entity;
  94. }
  95. }
  96. communicationEntityBindingSource.ResetBindings(false);
  97. }
  98. }
  99. }