private IEnumerable <NamedLayer> GetAllSelectedFeatureLayers(ISet iSet) { var layers = new List <NamedLayer>(); iSet.Reset(); object obj; while ((obj = iSet.Next()) != null) { if (!(obj is IGeoFeatureLayer)) { continue; } var layer = obj as ILayer; layers.Add( new NamedLayer { Name = LayerUtils.GetFullName(MxDocument.FocusMap, layer), Index = LayerUtils.GetIndexString(MxDocument.FocusMap, layer), Layer = layer } ); } return(layers); }
private IEnumerable <NamedLayer> GetSelectedFeatureLayers() { if (MxDocument.SelectedLayer is IGeoFeatureLayer) { var layer = MxDocument.SelectedLayer; return(new List <NamedLayer> { new NamedLayer { Name = LayerUtils.GetFullName(MxDocument.FocusMap, layer), Index = LayerUtils.GetIndexString(MxDocument.FocusMap, layer), Layer = layer } }); } if (MxDocument.SelectedLayer is IGroupLayer) { var layer = MxDocument.SelectedLayer; var layers = new List <NamedLayer>(); LayerUtils.SearchLayer(layer as ICompositeLayer, typeof(IGeoFeatureLayer), layers, LayerUtils.GetIndexString(MxDocument.FocusMap, layer) + "-", LayerUtils.GetFullName(MxDocument.FocusMap, layer) + "/"); return(layers.Count > 0 ? layers : InternalGetAllFeatureLayers()); } IContentsViewSelection selection = GetSelection(); if (selection != null && selection.SelectedItems.Count > 1) { var layers = GetAllSelectedFeatureLayers(selection.SelectedItems); return(layers.Any() ? layers : InternalGetAllFeatureLayers()); } return(InternalGetAllFeatureLayers()); }
private IEnumerable <NamedLayer> GetLayersFromFocusMap(string type) { return(from layer in LayerUtils.GetAllLayers(MxDocument.FocusMap, type) let name = LayerUtils.GetFullName(MxDocument.FocusMap, layer) let index = LayerUtils.GetIndexString(MxDocument.FocusMap, layer) select new NamedLayer { Name = name, Index = index, Layer = layer }); }