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.7 KiB
102 lines
3.7 KiB
using ESRI.ArcGIS.Carto; |
|
using ESRI.ArcGIS.Controls; |
|
using ESRI.ArcGIS.Geodatabase; |
|
using KGIS.Framework.AE.ExtensionMethod; |
|
using KGIS.Framework.Maps; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using Kingo.Plugin.DataLoad.Views; |
|
using System; |
|
|
|
namespace Kingo.Plugin.DataLoad.Commands |
|
{ |
|
/// <summary> |
|
/// 图层右键数据导入 |
|
/// </summary> |
|
public class CmdLayerDataImport : BaseMapMenuCommand |
|
{ |
|
private IEngineEditor editor = null; |
|
private new IHookHelper m_hookHelper = null; |
|
public override void OnClick()//OpenAttributeTableCommand |
|
{ |
|
try |
|
{ |
|
if (editor == null) |
|
{ |
|
editor = new EngineEditorClass(); |
|
} |
|
object pTargetObj = m_hookHelper.GetCustomProperty(); |
|
if (pTargetObj is IFeatureLayer) |
|
{ |
|
IFeatureLayer pFeatureLayer = pTargetObj as IFeatureLayer; |
|
if ((pFeatureLayer.FeatureClass as FeatureClass).Workspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace) |
|
{ |
|
if (editor.EditState != esriEngineEditState.esriEngineStateEditing) |
|
{ |
|
MessageHelper.ShowTips("请先开启编辑!"); |
|
return; |
|
} |
|
} |
|
else |
|
{ |
|
if (editor.EditState == esriEngineEditState.esriEngineStateEditing) |
|
{ |
|
MessageHelper.ShowTips("请先停止编辑!"); |
|
return; |
|
} |
|
} |
|
FrmDataImport main = new FrmDataImport |
|
{ |
|
TargetLayer = pTargetObj as IFeatureLayer, |
|
Title = "数据导入", |
|
WindowStartupLocation = System.Windows.WindowStartupLocation.Manual, |
|
Left = 240, |
|
Top = 110 |
|
}; |
|
main.ImpComplate += ImpComplate; |
|
main.InitData(); |
|
main.ShowInMainWindow(true); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
MessageHelper.ShowTips("数据导入失败!"); |
|
LogAPI.Debug("数据导入异常:" + ex); |
|
} |
|
} |
|
|
|
public override void OnCreate(object Hook) |
|
{ |
|
try |
|
{ |
|
if (m_hookHelper == null) |
|
{ |
|
m_hookHelper = new HookHelper(); |
|
m_hookHelper.Hook = Hook; |
|
} |
|
editor = new EngineEditorClass(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("加载 数据导入 命令时发生异常,异常信息如下:"); |
|
LogAPI.Debug(ex); |
|
LogAPI.Debug("异常信息结束"); |
|
} |
|
} |
|
private void ImpComplate(bool pIsComplate) |
|
{ |
|
if (pIsComplate) |
|
{ |
|
IMapControlDefault mapControl = m_hookHelper.Hook as IMapControlDefault; |
|
if (mapControl != null) |
|
{ |
|
mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, mapControl.ActiveView.Extent); |
|
if ((m_hookHelper.GetCustomProperty() is IFeatureLayer)) |
|
{ |
|
mapControl.ActiveView.Extent = (m_hookHelper.GetCustomProperty() as ILayer).AreaOfInterest; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|