using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.Geodatabase; using KGIS.Framework.Commands; using KGIS.Framework.EngineEditor; using KGIS.Framework.Maps; using KGIS.Framework.Platform; using KGIS.Framework.Utils.Helper; using System.Windows.Forms; namespace Kingo.Plugin.EngineEditor.Commands.Tools { public class CmdDeleteFeature : BaseMapMenuCommand { //private IHookHelper m_hookHelper; private ESRI.ArcGIS.Controls.ControlsEditingClearCommandClass controlsEditingClearCommandClass = null; private IEngineEditor m_pEditor; public override void OnCreate(object hook) { if (m_hookHelper == null) { m_hookHelper = new HookHelper(); m_hookHelper.Hook = hook; } m_pEditor = new EngineEditorClass(); //base.OnCreate(hook); controlsEditingClearCommandClass = new ControlsEditingClearCommandClass(); controlsEditingClearCommandClass.OnCreate(hook); } public override void OnClick() { if (MessageHelper.ShowYesNoAndTips("是否删除选中图斑?") != System.Windows.Forms.DialogResult.Yes) return; //base.OnClick(); controlsEditingClearCommandClass.OnClick(); Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SignDelete" }); //通知刷新图斑查看界面 KGIS.Framework.Platform.Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { Content = "RefreshTBBGDetail", MsgType = "RefreshTBBGDetail" }); } public override bool Enabled { get { if (m_pEditor == null) { return false; } if (m_pEditor.EditState != esriEngineEditState.esriEngineStateEditing) { return false; } if ((m_pEditor as EngineEditorClass).TargetLayer == null) { return false; } else { IFeatureSelection s = (m_pEditor as EngineEditorClass).TargetLayer as IFeatureSelection; if (s == null) return false; ISelectionSet seleSet = s.SelectionSet; if (seleSet != null) { return seleSet.Count != 0; } return false; } return true; } } } }