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

103 lines
3.3 KiB

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.Platform;
using KGIS.Framework.Maps;
namespace Kingo.Plugin.MapView.Commands
{
public class AllLayerSelectableCommand : BaseCommand, ICommandSubType
{
private IHookHelper m_hookHelper = null;// Env.Instance.KMap.HookHelper;
public long m_subType = 2;
private bool Selectable = true;
public AllLayerSelectableCommand()
{
}
public override void OnCreate(object hook)
{
if (m_hookHelper == null)
{
m_hookHelper = new HookHelper();
m_hookHelper.Hook = hook;
}
}
public override void OnClick()
{
List<IFeatureLayer> allLayers = MapsManager.Instance.MapService.GetAllLayerInMap<IFeatureLayer>();// LayerHelper.GetAllLayerInMap<IFeatureLayer>(m_hookHelper.FocusMap);
Selectable = !Selectable;
foreach (var layer in allLayers)
{
if (layer == null)
continue;
if (!Selectable)
{
layer.Selectable = false;
}
else
{
layer.Selectable = true;
}
}
}
public override bool Enabled
{
get
{
//int canSelectCount = 0;
//int notCanSelectCount = 0;
//List<IFeatureLayer> allLayers = Platform.Instance.MapsService.GetAllLayerInMap<IFeatureLayer>();//LayerHelper.GetAllLayerInMap<IFeatureLayer>(m_hookHelper.FocusMap);
//foreach (var layer in allLayers)
//{
// if (layer != null)
// {
// if (layer.Selectable == false)
// {
// notCanSelectCount++;
// }
// else
// {
// canSelectCount++;
// }
// }
//}
//if (m_subType == 1)
//{
// //所有图层可选菜单 只有一种情况下不可点击(所有都已经选择上)
// return !(notCanSelectCount == 0 && canSelectCount > 0);
//}
//else
//{
// //所有图层不可选菜单只有一种情况下不可点击(所有都没选择上)
// return !(canSelectCount == 0 && notCanSelectCount > 0);
//}
return true;
}
}
public int GetCount()
{
return 2;
}
public void SetSubType(int SubType)
{
m_subType = SubType;
}
public override string Caption
{
get
{
if (!Selectable)
return "设置所有图层可选";
else
return "设置所有图层不可选";
}
}
}
}