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; | 
						|
                    } | 
						|
                } | 
						|
            } | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |