|
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
using System.Windows.Threading;
|
|
|
|
|
using DevExpress.Xpf.Core.Native;
|
|
|
|
|
using ESRI.ArcGIS.Controls;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using KGIS.Framework.Utils.Interface;
|
|
|
|
|
using KGIS.Framework.Views;
|
|
|
|
|
using KGIS.Framework.Maps;
|
|
|
|
|
using KGIS.Framework.Platform;
|
|
|
|
|
using Kingo.Plugin.ResultsOfProof.ViewModel;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.Plugin.ResultsOfProof.View.JZTBXX
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// BGFrmJZTBList.xaml 的交互逻辑
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class BGFrmJZTBList : UserControl, IDockPanel2
|
|
|
|
|
{
|
|
|
|
|
//用于定位
|
|
|
|
|
public IHookHelper m_hookHelper { get; set; }
|
|
|
|
|
public Guid ID { get; set; }
|
|
|
|
|
public DockStyle DockAreas { get; set; }
|
|
|
|
|
public System.Drawing.Size FloatSize { get; set; }
|
|
|
|
|
public int DockWidth { get; set; }
|
|
|
|
|
public int DockHeight { get; set; }
|
|
|
|
|
public DockStyle DefaultArea { get; set; }
|
|
|
|
|
public bool ShowCloseButton { get; set; }
|
|
|
|
|
public bool ShowAutoHideButton { get; set; }
|
|
|
|
|
public string Title { get; set; }
|
|
|
|
|
public bool IsShowInMap { get; set; }
|
|
|
|
|
|
|
|
|
|
private bool IsReturn = false;
|
|
|
|
|
|
|
|
|
|
private IMapService _MapService;
|
|
|
|
|
|
|
|
|
|
public event EventHandler CloseViewHandler;
|
|
|
|
|
|
|
|
|
|
public BGJZTBListViewModel ViewModel = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 构造函数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="hook"></param>
|
|
|
|
|
/// <param name="pIsExportJZTBXXB">是否导出举证图斑信息表</param>
|
|
|
|
|
public BGFrmJZTBList(IHookHelper hookHelper)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
DevExpress.Xpf.Core.ThemeManager.SetTheme(this, DevExpress.Xpf.Core.Theme.Office2013LightGray);
|
|
|
|
|
_MapService = MapsManager.Instance.MapService;// Platform.Instance.MapsManager.GetMapService();
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
this.m_hookHelper = hookHelper;
|
|
|
|
|
Init();
|
|
|
|
|
_MapService.OnSelectionChanged += AxMapControl_OnSelectionChanged;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
}
|
|
|
|
|
//TODO 周旺华 用于处理弹出筛选界面无法输入英文和字符问题
|
|
|
|
|
gcXJJZTB.View.FilterEditorCreated += (sender, e) =>
|
|
|
|
|
{
|
|
|
|
|
Window window;
|
|
|
|
|
Dispatcher.BeginInvoke(new Action(() =>
|
|
|
|
|
{
|
|
|
|
|
window = LayoutHelper.FindLayoutOrVisualParentObject<Window>(e.FilterControl);
|
|
|
|
|
window.Close();
|
|
|
|
|
window.ShowDialog();
|
|
|
|
|
}), DispatcherPriority.Render);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
public void Init()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
this.DockAreas = DockStyle.DockBottom | DockStyle.Float;
|
|
|
|
|
this.FloatSize = new System.Drawing.Size(600, 800);
|
|
|
|
|
this.DefaultArea = DockStyle.DockBottom;
|
|
|
|
|
this.ShowCloseButton = true;
|
|
|
|
|
this.ShowAutoHideButton = true;
|
|
|
|
|
this.Title = "举证图斑信息表";
|
|
|
|
|
this.DockHeight = 230;
|
|
|
|
|
this.IsShowInMap = true;
|
|
|
|
|
ViewModel = new BGJZTBListViewModel(m_hookHelper.Hook);
|
|
|
|
|
ViewModel.m_hookHelper = this.m_hookHelper;
|
|
|
|
|
DataContext = ViewModel;
|
|
|
|
|
CommandSubscribe();
|
|
|
|
|
|
|
|
|
|
ControlsZoomToSelectedCommandClass zoom = new ControlsZoomToSelectedCommandClass();
|
|
|
|
|
zoom.OnCreate(m_hookHelper.Hook);
|
|
|
|
|
zoom.OnClick();
|
|
|
|
|
IsReturn = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void CommandSubscribe()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
//上一条
|
|
|
|
|
ViewModel.PrevDataCmd.Subscribe(_ =>
|
|
|
|
|
{
|
|
|
|
|
int[] seleRows = gcXJJZTB.GetSelectedRowHandles();
|
|
|
|
|
if (seleRows == null || seleRows.Length == 0)
|
|
|
|
|
return;
|
|
|
|
|
if (seleRows.Min() > 0)
|
|
|
|
|
{
|
|
|
|
|
ViewModel.RowHandle = seleRows.Min() - 1;
|
|
|
|
|
gcXJJZTB.BeginSelection();
|
|
|
|
|
gcXJJZTB.UnselectAll();
|
|
|
|
|
gcXJJZTB.SelectItem(seleRows.Min() - 1);
|
|
|
|
|
tvXJJZTB.MoveFocusedRow(ViewModel.RowHandle);
|
|
|
|
|
gcXJJZTB.EndSelection();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//下一条
|
|
|
|
|
ViewModel.NextDataCmd.Subscribe(_ =>
|
|
|
|
|
{
|
|
|
|
|
int[] seleRows = gcXJJZTB.GetSelectedRowHandles();
|
|
|
|
|
if (seleRows == null || seleRows.Length == 0)
|
|
|
|
|
return;
|
|
|
|
|
if (seleRows.Max() < gcXJJZTB.VisibleRowCount - 1)
|
|
|
|
|
{
|
|
|
|
|
ViewModel.RowHandle = seleRows.Max() + 1;
|
|
|
|
|
gcXJJZTB.BeginSelection();
|
|
|
|
|
gcXJJZTB.UnselectAll();
|
|
|
|
|
gcXJJZTB.SelectItem(ViewModel.RowHandle);
|
|
|
|
|
tvXJJZTB.MoveFocusedRow(ViewModel.RowHandle);
|
|
|
|
|
gcXJJZTB.EndSelection();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
ViewModel.RefreshDataCmd.Subscribe(_ =>
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
int[] seleRows = gcXJJZTB.GetSelectedRowHandles();
|
|
|
|
|
if (seleRows == null || seleRows.Length == 0)
|
|
|
|
|
return;
|
|
|
|
|
if (seleRows.Max() < gcXJJZTB.VisibleRowCount - 1)
|
|
|
|
|
{
|
|
|
|
|
ViewModel.RowHandle = seleRows.Max();
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
ViewModel.RefreshSource();
|
|
|
|
|
gcXJJZTB.BeginSelection();
|
|
|
|
|
gcXJJZTB.UnselectAll();
|
|
|
|
|
gcXJJZTB.SelectItem(ViewModel.RowHandle);
|
|
|
|
|
tvXJJZTB.MoveFocusedRow(ViewModel.RowHandle);
|
|
|
|
|
gcXJJZTB.EndSelection();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("刷新举证图斑信息表失败:");
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
ViewModel.GridControlUnSelectAll.Subscribe(_ =>
|
|
|
|
|
{
|
|
|
|
|
gcXJJZTB.UnselectAll();
|
|
|
|
|
});
|
|
|
|
|
ViewModel.GridControlRefreshData.Subscribe(_ =>
|
|
|
|
|
{
|
|
|
|
|
gcXJJZTB.RefreshData();
|
|
|
|
|
});
|
|
|
|
|
ViewModel.GridControlFocusRow.Subscribe(_ =>
|
|
|
|
|
{
|
|
|
|
|
gcXJJZTB.BeginSelection();
|
|
|
|
|
gcXJJZTB.UnselectAll();
|
|
|
|
|
int cont = gcXJJZTB.VisibleRowCount;
|
|
|
|
|
int topRowIndex = 0;
|
|
|
|
|
//cont = cont > 200 ? 200 : cont;
|
|
|
|
|
for (int i = 0; i < cont; i++)
|
|
|
|
|
{
|
|
|
|
|
int rowHandle = gcXJJZTB.GetRowHandleByVisibleIndex(i);
|
|
|
|
|
if (!gcXJJZTB.IsGroupRowHandle(rowHandle))
|
|
|
|
|
{
|
|
|
|
|
int objId = int.Parse(gcXJJZTB.GetCellValue(rowHandle, gcXJJZTB.Columns["OBJECTID"]).ToString());
|
|
|
|
|
if (ViewModel.ObjectIDArray.Contains(objId))//选中集合是否和当前显示在DataView中的数据匹配
|
|
|
|
|
{
|
|
|
|
|
gcXJJZTB.SelectItem(rowHandle);
|
|
|
|
|
ViewModel.RowHandle = rowHandle;
|
|
|
|
|
if (topRowIndex <= 0)
|
|
|
|
|
{
|
|
|
|
|
topRowIndex = rowHandle;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gcXJJZTB.EndSelection();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
throw ex;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void AxMapControl_OnSelectionChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Dispatcher.Invoke(new Action(() =>
|
|
|
|
|
{
|
|
|
|
|
//ViewModel.RefreshSource();
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public event Action<NotifyMsgPackage> NotifyMsgEven;
|
|
|
|
|
public void SetNotifyMsg(NotifyMsgPackage msg)
|
|
|
|
|
{
|
|
|
|
|
if (NotifyMsgEven != null)
|
|
|
|
|
{
|
|
|
|
|
NotifyMsgEven(msg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ShowPanel()
|
|
|
|
|
{
|
|
|
|
|
Platform.Instance.OpenView(this, false);
|
|
|
|
|
if (MapsManager.Instance.MapService != null)
|
|
|
|
|
{
|
|
|
|
|
MapsManager.Instance.MapService.ProjectClosed += (sender, e) =>
|
|
|
|
|
{
|
|
|
|
|
ClosePanel();
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ClosePanel()
|
|
|
|
|
{
|
|
|
|
|
Platform.Instance.CloseView(this);
|
|
|
|
|
ViewModel = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ClosePanelInvoke()
|
|
|
|
|
{
|
|
|
|
|
CloseViewHandler?.Invoke(this, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|