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.
102 lines
3.6 KiB
102 lines
3.6 KiB
using ESRI.ArcGIS.Controls; |
|
using KGIS.Framework.Commands; |
|
using KGIS.Framework.Platform; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using KGIS.Framework.Views; |
|
using Kingo.PluginServiceInterface; |
|
using System; |
|
using UIShell.OSGi; |
|
|
|
namespace Kingo.Plugin.MapView.Commands |
|
{ |
|
/// <summary> |
|
/// 关闭工程 |
|
/// </summary> |
|
public class CmdCloseProject : BaseMenuCommand |
|
{ |
|
/// <summary> |
|
/// 编辑器 |
|
/// </summary> |
|
private IEngineEditor m_Editor; |
|
public object CmdParameter { get; set; } |
|
public IHookHelper m_hookHelper { get; set; } |
|
|
|
private IViewManager m_ViewManager; |
|
public override void OnClick() |
|
{ |
|
try |
|
{ |
|
if (MessageHelper.ShowYesNoAndTips("是否要关闭当前工程?") == System.Windows.Forms.DialogResult.No) |
|
{ |
|
return; |
|
} |
|
if (m_Editor.EditState != esriEngineEditState.esriEngineStateNotEditing) |
|
{ |
|
MessageHelper.ShowTips("当前工程正处于编辑状态,关闭之前请先结束编辑!"); |
|
return; |
|
} |
|
if (Platform.Instance.SystemType == SystemTypeEnum.BGFWCG) |
|
{ |
|
IUcMulitMapControlHelper ucMulitMapControlHelper = BundleRuntime.Instance.GetFirstOrDefaultService<IUcMulitMapControlHelper>(); |
|
if (ucMulitMapControlHelper != null) |
|
{ |
|
ucMulitMapControlHelper.ClearData(); |
|
} |
|
IUcZYQMagrHelper ucZYQMagrHelper = BundleRuntime.Instance.GetFirstOrDefaultService<IUcZYQMagrHelper>(); |
|
if (ucZYQMagrHelper != null) |
|
{ |
|
ucZYQMagrHelper.ClearData(); |
|
} |
|
} |
|
KGIS.Framework.Maps.MapsManager.Instance.MapService.CloseProject(); |
|
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "RefreshLayer" }); |
|
//关闭前关闭所有的未关闭的窗体 |
|
//m_ViewManager = Platform.Instance.ViewManager; |
|
//m_ViewManager.CloseAllDocument(); |
|
//m_ViewManager.CloseAllPanel(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("关闭工程时发生异常,异常信息如下:"); |
|
LogAPI.Debug(ex); |
|
LogAPI.Debug("异常信息结束"); |
|
} |
|
} |
|
|
|
public override void OnCreate(object Hook) |
|
{ |
|
try |
|
{ |
|
if (m_hookHelper == null) |
|
{ |
|
m_hookHelper = new HookHelper |
|
{ |
|
Hook = Hook |
|
}; |
|
} |
|
if (m_Editor == null) |
|
m_Editor = new EngineEditorClass(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("初始化 关闭工程命令 时异常,异常信息如下:"); |
|
LogAPI.Debug(ex); |
|
LogAPI.Debug("初始化 关闭工程命令 时异常信息结束"); |
|
} |
|
} |
|
|
|
public override bool Enabled |
|
{ |
|
get |
|
{ |
|
//验证是否打开工程 |
|
object ProInfo = KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo(); |
|
if (ProInfo == null) |
|
return false; |
|
else |
|
return true; |
|
} |
|
} |
|
} |
|
}
|
|
|