using System; using System.Collections.Generic; using System.Linq; using System.Security.Policy; using System.Text; using System.Threading.Tasks; using ArcGIS.Desktop.Catalog; using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Framework; namespace OliviaAddInPro.Helper { public static class HelperGdb { [Flags] public enum TiposOpenFileDlg { OpenFtrClassLine=1, OpenFtrClassPoint=2, OpenFtrClassPolygon=4, OpenGdb=8, } //Devuelve el Path del archivo seleccionado o un string vacío si se ha cancelado public static string OpenFileDialog(TiposOpenFileDlg tipo, string initialLoc="") { string titulo; titulo = "Abrir Archivo"; //Create a browse filter that uses Pro's "esri_browseDialogFilters_geodatabases" filter. //The browse filter is used in an OpenItemDialog. //fuentes filtros //https://github.com/Esri/arcgis-pro-sdk-community-samples/blob/master/Map-Exploration/IdentifyWindow/Daml.cs BrowseProjectFilter filtro = new BrowseProjectFilter(); if ((tipo & TiposOpenFileDlg.OpenFtrClassLine)== TiposOpenFileDlg.OpenFtrClassLine) { filtro.AddFilter(BrowseProjectFilter.GetFilter("esri_browseDialogFilters_featureClasses_line")); titulo = "Abrir Feature Class"; } if ((tipo & TiposOpenFileDlg.OpenFtrClassPoint) == TiposOpenFileDlg.OpenFtrClassPoint) { filtro.AddFilter(BrowseProjectFilter.GetFilter("esri_browseDialogFilters_featureClasses_point")); titulo = "Abrir Feature Class"; } if ((tipo & TiposOpenFileDlg.OpenFtrClassPolygon) == TiposOpenFileDlg.OpenFtrClassPolygon) { filtro.AddFilter(BrowseProjectFilter.GetFilter("esri_browseDialogFilters_featureClasses_polygon")); titulo = "Abrir Feature Class"; } if ((tipo & TiposOpenFileDlg.OpenGdb) == TiposOpenFileDlg.OpenGdb) { filtro.AddFilter(BrowseProjectFilter.GetFilter("esri_browseDialogFilters_geodatabases")); titulo = "Abrir Geodatabase"; } if(tipo==0) { filtro.AddFilter(BrowseProjectFilter.GetFilter("")); } //Display the filter in an Open Item dialog OpenItemDialog aNewFilter = new OpenItemDialog { Title = titulo, InitialLocation = initialLoc, MultiSelect = false, //Set the BrowseFilter property to Pro's Geodatabase filter. BrowseFilter = filtro }; bool? ok = aNewFilter.ShowDialog(); if (ok.Value) return aNewFilter.Items.First().Path; else return ""; } /*public static bool SelecPolig(string title, int wnd_handle, out string text_sal, out IGeometry geom_sal) { } public static bool SelecInstal(string title, int wnd_handle, out string text_sal, out double x, out double y) { }*/ } }