|
|
|
|
using ESRI.ArcGIS.Carto;
|
|
|
|
|
using ESRI.ArcGIS.Controls;
|
|
|
|
|
using KGIS.Framework.AE.ExtensionMethod;
|
|
|
|
|
using KGIS.Framework.Maps;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using Kingo.Plugin.MapView.Views;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.Plugin.MapView.Commands
|
|
|
|
|
{
|
|
|
|
|
//[PathAttribute("Kingo.Plugin.MapView.Commands.CmdOpenAttrTable")]
|
|
|
|
|
public class CmdOpenAttrTable : BaseMapMenuCommand
|
|
|
|
|
{
|
|
|
|
|
IFeatureLayer featureLayer = null;
|
|
|
|
|
List<ViewAttrTable> listPanel = new List<ViewAttrTable>();
|
|
|
|
|
ViewAttrTable uCAttribute_Form = null;
|
|
|
|
|
public override void OnClick()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
object pLayer = m_hookHelper.GetCustomProperty();//获取对象的创建者的Application对象
|
|
|
|
|
IFeatureLayer pTocFeatureLayer = pLayer as IFeatureLayer;
|
|
|
|
|
if (pTocFeatureLayer == null) return;
|
|
|
|
|
featureLayer = pTocFeatureLayer;
|
|
|
|
|
string PanelName = "属性表_" + pTocFeatureLayer.Name;
|
|
|
|
|
uCAttribute_Form = listPanel.FirstOrDefault(f => f.Title == PanelName);
|
|
|
|
|
if (uCAttribute_Form == null || uCAttribute_Form.Title != PanelName)
|
|
|
|
|
{
|
|
|
|
|
uCAttribute_Form = new ViewAttrTable(m_hookHelper, null);//初始化当前的用户控件
|
|
|
|
|
uCAttribute_Form.CloseViewHandler += UCAttribute_Form_CloseViewHandler;
|
|
|
|
|
uCAttribute_Form.Title = PanelName;
|
|
|
|
|
listPanel.Add(uCAttribute_Form);
|
|
|
|
|
}
|
|
|
|
|
uCAttribute_Form.ShowPanel();
|
|
|
|
|
// 初始化的时候加载预定义查询条件
|
|
|
|
|
IFeatureLayerDefinition pFLDefinition = pTocFeatureLayer as IFeatureLayerDefinition;
|
|
|
|
|
string queryWhere = string.Empty;
|
|
|
|
|
if (pFLDefinition != null && !string.IsNullOrWhiteSpace(pFLDefinition.DefinitionExpression))
|
|
|
|
|
{
|
|
|
|
|
queryWhere += string.Format(" {0}", pFLDefinition.DefinitionExpression);
|
|
|
|
|
}
|
|
|
|
|
uCAttribute_Form.LoadData(featureLayer, queryWhere);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("初始化 打开属性表 命令时异常,异常信息如下:");
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
LogAPI.Debug("初始化 打开属性表 命令时异常信息结束");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void UCAttribute_Form_CloseViewHandler(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
ViewAttrTable view = sender as ViewAttrTable;
|
|
|
|
|
if (listPanel.FirstOrDefault(f => f.ID == view.ID) != null)
|
|
|
|
|
{
|
|
|
|
|
listPanel.Remove(view);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("关闭属性列表异常,异常信息如下:");
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
LogAPI.Debug("关闭属性列表异常信息结束");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 对象识别符.Hook
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="Hook"></param>
|
|
|
|
|
public override void OnCreate(object Hook)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (m_hookHelper == null)
|
|
|
|
|
{
|
|
|
|
|
m_hookHelper = new HookHelperClass();
|
|
|
|
|
}
|
|
|
|
|
m_hookHelper.Hook = Hook;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("初始化 打开属性表 命令时异常,异常信息如下:");
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
LogAPI.Debug("初始化 打开属性表 命令时异常信息结束");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|