Avances abrir diálogo

ConfiguracionSimplificada
Elena 2021-07-21 01:12:32 +02:00
parent 9327b6cd7e
commit de6303d9e3
6 changed files with 110 additions and 17 deletions

83
Helper/HelperGdb.cs Normal file
View File

@ -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)
{
}*/
}
}

View File

@ -130,6 +130,7 @@
<Compile Include="Button\ButtonLimp.cs" />
<Compile Include="Button\ButtonMaq.cs" />
<Compile Include="Button\ButtonRec.cs" />
<Compile Include="Helper\HelperGdb.cs" />
<Compile Include="OptionsMenuItem.cs" />
<Compile Include="ViewModel\PaneLimpiezaSub4ViewModel.cs" />
<Compile Include="ViewModel\PaneLimpiezaSub3ViewModel.cs" />

View File

@ -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}">
<UserControl.Resources>
<ResourceDictionary>

View File

@ -21,7 +21,7 @@
<ColumnDefinition Width="45"/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<Button Content="" HorizontalAlignment="Left" Margin="20,3,0,0" VerticalAlignment="Top" Width="16" Height="16" BorderThickness="0">
<Button Content="" HorizontalAlignment="Left" Margin="20,3,0,0" VerticalAlignment="Top" Width="16" Height="16" BorderThickness="0" Click="Button_Click">
<Button.Background>
<ImageBrush ImageSource="openfolder.png"/>
</Button.Background>

View File

@ -12,7 +12,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using OliviaAddInPro.Helper;
namespace OliviaAddInPro
{
@ -39,5 +39,14 @@ namespace OliviaAddInPro
{
e.Handled = !PanelGlobal.IsValid(((TextBox)sender).Text + e.Text, 1, 100);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
string res=HelperGdb.OpenFileDialog(HelperGdb.TiposOpenFileDlg.OpenFtrClassLine | HelperGdb.TiposOpenFileDlg.OpenFtrClassPoint);
if (res.Length > 0)
label_capalimp.Content = System.IO.Path.GetFileName(res);
else
label_capalimp.Content = Resource1.String_selec_capa;
}
}
}

View File

@ -20,32 +20,32 @@
<Label Margin="15,5,0,0" Content="Tiempos" FontWeight="DemiBold"/>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Label Content="Carga y Descarga" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeCargDesc, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Label Content="Desplazamiento ini/fin" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeDespIniFin, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Label Content="Hora inicio jornada" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeIniJornada, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Label Content="Reducción por tráfico (%)" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<TextBox Grid.Column="1" Height="20" Margin="10,8,15,7" PreviewTextInput="TextBox_PreviewTextInput" Text="{Binding Path=TextPercentTrafico, Mode = TwoWay}" TextAlignment="Right" MaxLength="3"/>
@ -53,16 +53,16 @@
<Label Margin="15,5,0,0" Content="Tiempos del convenio" FontWeight="DemiBold"/>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Label Content="Jornada" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeJornadaConv, Mode = TwoWay}" Margin="9,8,14,7"/>
</Grid>
<Grid Margin="0,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="180"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Label Content="Descanso personal" HorizontalAlignment="Left" Margin="15,5,0,0" VerticalAlignment="Top" Width="177" Height="30" Grid.ColumnSpan="2"/>
<xctk:DateTimeUpDown Grid.Column="1" Height="20" Format="Custom" FormatString="HH 'h' mm 'm'" Value="{Binding Path=TimeDescPers, Mode = TwoWay}" Margin="9,8,14,7"/>