EmtListForm.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using DevExpress.Mvvm;
  2. using DevExpress.Xpo;
  3. using DevExpress.Xpo.DB;
  4. using DevExpress.XtraEditors;
  5. using Ips.Library.Basic;
  6. using Ips.Library.DxpLib;
  7. using Ips.Sps.Emts;
  8. using Ips.Sps.TskResults.Poses.Etos;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. using System.Windows.Forms;
  18. namespace Ips.Sps.Emts
  19. {
  20. public partial class EmtListForm : DevExpress.XtraEditors.XtraForm
  21. {
  22. public EmtListForm()
  23. {
  24. InitializeComponent();
  25. }
  26. public Session Session { get; private set; }
  27. private void EmtListForm_Load(object sender, EventArgs e)
  28. {
  29. Reload();
  30. gvEmtList.BestFitColumns();
  31. }
  32. private void Reload()
  33. {
  34. Session = new Session();
  35. var emtList = new XPCollection<Emt>(Session, null, new[]
  36. {
  37. new SortProperty(nameof(Emt.Enable),SortingDirection.Descending)
  38. });
  39. bsEmtList.DataSource = emtList;
  40. }
  41. private void gvEmtList_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
  42. {
  43. if (e.Button == MouseButtons.Left)
  44. {
  45. if (e.Clicks == 2)
  46. {
  47. e.Handled = true;
  48. btnEdit.PerformClick();
  49. }
  50. }
  51. else if (e.Button == MouseButtons.Right)
  52. {
  53. popupMenu.ShowPopup(Cursor.Position);
  54. }
  55. }
  56. private void ShowEditForm(int? id)
  57. {
  58. var form = new EmtEditForm(id);
  59. form.FormClosed += EditFormClosed;
  60. try
  61. {
  62. form.ShowDialog();
  63. }
  64. finally
  65. {
  66. form.Dispose();
  67. }
  68. }
  69. private void EditFormClosed(object sender, FormClosedEventArgs e)
  70. {
  71. var form = sender as EmtEditForm;
  72. form.FormClosed -= EditFormClosed;
  73. if (form.Id.HasValue)
  74. {
  75. Reload();
  76. gvEmtList.FocusedRowHandle = gvEmtList.LocateByValue(nameof(Emt.Oid), form.Id);
  77. }
  78. }
  79. private void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  80. {
  81. ShowEditForm(null);
  82. }
  83. private void btnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  84. {
  85. int id = (int)gvEmtList.GetFocusedRowCellValue(colOid);
  86. ShowEditForm(id);
  87. }
  88. private void btnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  89. {
  90. var handles = gvEmtList.GetSelectedRows();
  91. if (handles.Length == 0) return;
  92. if (MsgHelper.ShowConfirm("确定删除选中的记录吗?"))
  93. {
  94. var modelList = handles.Select(m => gvEmtList.GetRow(m) as Emt).ToList();
  95. Session.Delete(modelList);
  96. Reload();
  97. }
  98. }
  99. private void btnMarkToMap_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  100. {
  101. var emtList = gvEmtList.GetSelectRow<Emt>();
  102. foreach (var emt in emtList)
  103. {
  104. if (GeoUtil.IsValidPoint(emt.Lon, emt.Lat))
  105. {
  106. Messenger.Default.Send(new AddMarkerEto()
  107. {
  108. Text = emt.Name,
  109. Lon = emt.Lon,
  110. Lat = emt.Lat
  111. });
  112. }
  113. }
  114. }
  115. }
  116. }