|
|
|
|
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 "设置所有图层不可选";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|