diff --git a/Helper/HelperGdb.cs b/Helper/HelperGdb.cs new file mode 100644 index 0000000..90bd3a9 --- /dev/null +++ b/Helper/HelperGdb.cs @@ -0,0 +1,83 @@ +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) + { + + }*/ + } +} diff --git a/OliviaAddInPro.csproj b/OliviaAddInPro.csproj index 9c95183..f435d57 100644 --- a/OliviaAddInPro.csproj +++ b/OliviaAddInPro.csproj @@ -130,6 +130,7 @@ + diff --git a/View/PaneLimpieza.xaml b/View/PaneLimpieza.xaml index 1c677ef..a8cdaee 100644 --- a/View/PaneLimpieza.xaml +++ b/View/PaneLimpieza.xaml @@ -11,7 +11,7 @@ xmlns:frameworkControls="clr-namespace:ArcGIS.Desktop.Framework.Controls;assembly=ArcGIS.Desktop.Framework" xmlns:ui="clr-namespace:OliviaAddInPro" mc:Ignorable="d" - d:DesignHeight="300" d:DesignWidth="300" + d:DesignHeight="500" d:DesignWidth="300" d:DataContext="{Binding Path=ui.PaneLimpiezaViewModel}"> diff --git a/View/PaneLimpiezaSub1.xaml b/View/PaneLimpiezaSub1.xaml index 0567df8..97c74ff 100644 --- a/View/PaneLimpiezaSub1.xaml +++ b/View/PaneLimpiezaSub1.xaml @@ -21,7 +21,7 @@ -