using ESRI.ArcGIS.Controls; using KGIS.Framework.Platform; using KGIS.Framework.Utils.Interface; namespace Kingo.Plugin.EngineEditor.Commands.Tools { /// /// 自定义删除节点命令(用于节点编辑功能) /// public class CustomVertexDeleteCommandChinese : ControlsEditingVertexDeleteCommandClass { protected string m_caption; protected bool IsChecked = false; private IEngineEditor m_engineEditor; //ControlsEditingVertexDeleteCommand deleteVertexCmd = new ControlsEditingVertexDeleteCommandClass(); public CustomVertexDeleteCommandChinese() { m_caption = "删除折点"; } public override int Bitmap { get { return base.Bitmap; } } public override string Caption { get { return m_caption; } } public override string Category { get { return base.Category; } } public override bool Checked { get { return IsChecked; } } public override bool Enabled { get { if (m_engineEditor.CurrentTask != null && m_engineEditor.CurrentTask.UniqueName == "ControlToolsEditing_ModifyFeatureTask") { return true; } else { return false; } } } public override int HelpContextID { get { return base.HelpContextID; } } public override string HelpFile { get { return base.HelpFile; } } public override string Message { get { return base.Message; } } public override string Name { get { return base.Name; } } public override string Tooltip { get { return base.Tooltip; } } public override void OnCreate(object hook) { base.OnCreate(hook); if (m_engineEditor == null) { m_engineEditor = new EngineEditorClass(); } Platform.Instance.NotifyMsgEven2 += NotifyMsg_NotifyMsgEven;//暂时注销,待改回 } bool isActive = false; void NotifyMsg_NotifyMsgEven(NotifyMsgPackage obj) { if (obj.MsgType == "ResultEditVertexCommand") { isActive = obj.Content is CustomVertexDeleteCommandChinese; IsChecked = isActive; } } public override void OnClick() { //判断当前命令是否有效,防止出现内存受保护的异常 if (!isActive) { isActive = true; IsChecked = true; Platform.Instance.SendMsg(new NotifyMsgPackage() { MsgType = "EditVertexCommand", Content = this });//暂时注销,待改回 //base.OnClick(); } else { isActive = false; IsChecked = false; Platform.Instance.SendMsg(new NotifyMsgPackage() { MsgType = "ExitVertexCommand", Content = this }); } } } }