SigListForm.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. using DevExpress.Xpo;
  2. using DevExpress.Xpo.DB;
  3. using DevExpress.XtraEditors;
  4. using Ips.Library.DxpLib;
  5. using Ips.Sps.Sigs;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15. namespace Ips.Sps.Sigs
  16. {
  17. public partial class SigListForm : DevExpress.XtraEditors.XtraForm
  18. {
  19. public SigListForm()
  20. {
  21. InitializeComponent();
  22. }
  23. public Session Session { get; private set; }
  24. XPCollection<Signal> _signalList;
  25. private void SigListForm_Load(object sender, EventArgs e)
  26. {
  27. Reload();
  28. gvSigList.BestFitColumns();
  29. }
  30. private void Reload()
  31. {
  32. Session = new Session();
  33. _signalList = new XPCollection<Signal>(Session, null, new SortProperty[]{
  34. new SortProperty(nameof(Signal.SigCategory), SortingDirection.Ascending),
  35. new SortProperty(nameof(Signal.SigFreq), SortingDirection.Ascending),
  36. new SortProperty(nameof(Signal.BandWidth), SortingDirection.Ascending)
  37. });
  38. bsSigList.DataSource = _signalList;
  39. }
  40. private void gvSigList_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
  41. {
  42. if (e.Clicks == 2)
  43. {
  44. e.Handled = true;
  45. btnEdit.PerformClick();
  46. }
  47. }
  48. private void ShowEditForm(int? id)
  49. {
  50. var form = new SigEditForm(id);
  51. form.FormClosed += EditFormClosed;
  52. try
  53. {
  54. form.ShowDialog();
  55. }
  56. finally
  57. {
  58. form.Dispose();
  59. }
  60. }
  61. private void EditFormClosed(object sender, FormClosedEventArgs e)
  62. {
  63. var form = sender as SigEditForm;
  64. form.FormClosed -= EditFormClosed;
  65. if (form.Id.HasValue)
  66. {
  67. Reload();
  68. gvSigList.FocusedRowHandle = gvSigList.LocateByValue(nameof(Signal.Oid), form.Id);
  69. }
  70. }
  71. private void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  72. {
  73. ShowEditForm(null);
  74. }
  75. private void btnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  76. {
  77. if (gvSigList.FocusedRowHandle < 0) return;
  78. int id = (int)gvSigList.GetFocusedRowCellValue(colOid);
  79. ShowEditForm(id);
  80. }
  81. private void btnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  82. {
  83. if (gvSigList.FocusedRowHandle < 0) return;
  84. var handles = gvSigList.GetSelectedRows();
  85. if (handles.Length == 0) return;
  86. if (MsgHelper.ShowConfirm("确定删除选中的记录吗?"))
  87. {
  88. var modelList = handles.Select(m => gvSigList.GetRow(m) as Signal).ToList();
  89. Session.Delete(modelList);
  90. Reload();
  91. }
  92. }
  93. private void gvSigList_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
  94. {
  95. if (e.Column == colSigFreq)
  96. {
  97. var signal = _signalList[e.ListSourceRowIndex];
  98. if (signal.SigCategory == Library.Entity.SignalCategory.SctSig)
  99. {
  100. e.DisplayText = $"[{signal.FreqStart}-{signal.FreqEnd}]-({signal.FreqStep}kHz)";
  101. }
  102. }
  103. }
  104. }
  105. }