年度变更建库软件5.0版本
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.

98 lines
2.9 KiB

4 months ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.ADF.BaseClasses;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
using KGIS.Framework.AE.ExtensionMethod;
using KGIS.Framework.Platform;
using KGIS.Framework.Maps;
namespace Kingo.Plugin.MapView.Commands
{
[Guid("d6cf0401-78d0-4f87-b6e4-7b306f7d2014")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("KGIS.Commands.LayerSelectableCommand")]
public class LayerSelectableOnlyOneCommand : BaseCommand, ICommandSubType
{
//private IMapControl3 m_mapControl;
public long m_subType = 1;
private bool Selectable = true;
private IHookHelper m_hookHelper = null;
public void LayerSelectable()
{
}
public override void OnCreate(object hook)
{
if (m_hookHelper == null)
{
m_hookHelper = new HookHelper();
m_hookHelper.Hook = hook;
}
}
public override void OnClick()
{
IFeatureLayer layer = m_hookHelper.GetCustomProperty() as IFeatureLayer;
if (layer == null)
{
m_hookHelper.Hook = MapsManager.Instance.MapService.Hook;
layer = m_hookHelper.GetCustomProperty() as IFeatureLayer;
}
if (layer != null)
{
//if (m_subType == 1)
//{
// layer.Selectable = true;
//}
//else if (m_subType == 2)
//{
List<IFeatureLayer> allLayers = MapsManager.Instance.MapService.GetAllLayerInMap<IFeatureLayer>();//LayerHelper.GetAllLayerInMap<IFeatureLayer>(this.m_hookHelper.FocusMap);
foreach (var item in allLayers)
{
if (item != null)
{
item.Selectable = !Selectable;
}
}
layer.Selectable = Selectable;
Selectable = !Selectable;
//}
//else if (m_subType == 3)
//{
// layer.Selectable = false;
//}
}
}
public override bool Enabled
{
get
{
return true;
}
}
public int GetCount()
{
return 3;
}
public void SetSubType(int SubType)
{
m_subType = SubType;
}
public override string Caption
{
get
{
if (Selectable)
return "将此图层设置成唯一可选图层";
else
return "将此图层设置成唯一不可选图层";
}
}
}
}