年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

199 lines
6.2 KiB

using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.ADF.BaseClasses;
using ESRI.ArcGIS.Controls;
using System;
using Kingo.Plugin.ResultsOfProof.View.JZTBXX;
using KGIS.Framework.Utils.Helper;
using KGIS.Framework.Maps;
using Kingo.PluginServiceInterface;
using KGIS.Framework.Utils.Interface;
using KGIS.Framework.Utils;
using KGIS.Framework.Commands;
using KUI.Windows;
namespace Kingo.Plugin.ResultsOfProof.Commands
{
public class BGExportXJJZTBXXCommand : BaseMenuCommand
{
private IMapService m_MapManager;
private IHookHelper m_hookHelper = null;
private BGFrmJZTBList ucXJJZTBList = null;
public override void OnCreate(object hook)
{
if (hook == null)
{
return;
}
try
{
if (m_hookHelper == null)
{
m_hookHelper = new HookHelperClass();
}
m_hookHelper.Hook = hook;
if (m_hookHelper.ActiveView == null)
{
m_hookHelper = null;
return;
}
m_MapManager = MapsManager.Instance.MapService;
m_MapManager.ProjectClosed += M_ViewManager_CloseProjectHandler;
m_MapManager.ProjectOpened += M_ViewManager_OpenProjectHandler;
}
catch
{
m_hookHelper = null;
return;
}
}
private void M_ViewManager_CloseProjectHandler(object sender, EventArgs e)
{
if (ucXJJZTBList != null)
{
ucXJJZTBList.ClosePanel();
ucXJJZTBList = null;
}
}
private void M_ViewManager_OpenProjectHandler(object sender, EventArgs e)
{
if (ucXJJZTBList != null)
{
ucXJJZTBList.ClosePanel();
ucXJJZTBList = null;
}
}
public override void OnClick()
{
IEngineEditor pEditor = new EngineEditorClass();
if (pEditor.EditState == esriEngineEditState.esriEngineStateEditing)
{
MessageHelper.ShowTips("请先关闭编辑!");
return;
}
IFeatureLayer JZTB_FC = null;
IFeatureLayer JCDLTB_FC = null;
try
{
JZTB_FC = MapsManager.Instance.MapService.GetFeatureLayerByName("JCTB");
JCDLTB_FC = MapsManager.Instance.MapService.GetFeatureLayerByLayerName("地类图斑");
if (JZTB_FC == null || JZTB_FC.FeatureClass == null)
{
MessageHelper.ShowWarning("未找到举证成果图斑图层!");
return;
}
if (JZTB_FC.FeatureClass.FeatureCount(null) == 0)
{
MessageHelper.ShowWarning("举证成果图斑数据为空,请先导入举证成果数据!");
return;
}
if (JCDLTB_FC == null || JCDLTB_FC.FeatureClass == null)
{
MessageHelper.ShowWarning("未找到基础地类图斑图层!");
return;
}
if (JCDLTB_FC.FeatureClass.FeatureCount(null) == 0)
{
MessageHelper.ShowWarning("基础地类图斑数据为空,请先导入基础地类图斑数据!");
return;
}
if (ucXJJZTBList != null)
{
ucXJJZTBList.ClosePanel();
ucXJJZTBList = null;
}
this.ShowLoading("正在加载举证图斑信息表数据,请稍等……", 0, 0);
if (ucXJJZTBList == null)
{
ucXJJZTBList = new BGFrmJZTBList(m_hookHelper);
ucXJJZTBList.CloseViewHandler += ucXJJZTBList_CloseViewHandler;
}
ucXJJZTBList.ShowPanel();
this.CloseLoading();
}
catch (Exception ex)
{
LogAPI.Debug("BG县举证图斑信息表导出失败" + ex.Message);
MessageHelper.ShowError("BG县举证图斑信息表导出失败,可能的原因是:" + ex.Message);
}
finally
{
this.CloseLoading();
if (JZTB_FC != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(JZTB_FC);
}
if (JCDLTB_FC != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(JCDLTB_FC);
}
}
}
private void ucXJJZTBList_CloseViewHandler(object sender, EventArgs e)
{
if (ucXJJZTBList != null)
{
ucXJJZTBList = null;
}
}
public event Action<NotifyMsgPackage> NotifyMsgEven;
public void SetNotifyMsg(NotifyMsgPackage msg)
{
try
{
if (NotifyMsgEven != null)
NotifyMsgEven(msg);
}
catch (Exception ex)
{
MessageHelper.ShowError(ex.Message);
}
}
private void ucXJJZTBList_Closed()
{
ucXJJZTBList = null;
}
void main_Closed(object sender, EventArgs e)
{
//if (!(sender as FrmBaseDataLoad).IsCancel)
//{
// NotifyMsgPackage msg = new NotifyMsgPackage();
// msg.MsgType = "OpenPrj";
// SetNotifyMsg(msg);
//}
}
public override bool Enabled
{
get
{
if (!(MapsManager.Instance.MapService.GetProjectInfo() is ProjectInfo pTemp))
{
return false;
}
else
{
if (string.IsNullOrWhiteSpace(pTemp.DBPath))
{
return false;
}
else
{
return true;
}
}
}
}
}
}