<?xml version="1.0" encoding="UTF-8"?>

<!-- Esta es la página con el listado de menus genericos.
     Tiene una lista con las siguientes características:
        - Utiliza un ViewModel (paradigma MVVM) como BindingContext
        - Muestra el listado de los menús genéricos
        - Actualiza el listado al deslizar hacia abajo (pull-to-refresh)
        - Tiene menú contextual (slide-right en iOS, mantener pulsado en Android)
          con un botón para borrar una notificación
-->

<!-- Importante: La página necesita x:Name para poder referenciarla en la descripción
     de los elementos del menú contextual
-->
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:conv="clr-namespace:inutralia.Converters;assembly=inutralia"              
             xmlns:views="clr-namespace:inutralia.Views;assembly=inutralia"             
             x:Class="inutralia.Views.RecipeListView"
             x:Name="recipeListView" 
             BackgroundColor="White"
             Title="Recetas"
>
    <ContentPage.ToolbarItems>
        <ToolbarItem Icon="icon_filter.png" Clicked="ToolbarFiltersClicked" />
    </ContentPage.ToolbarItems>

    <ContentPage.Resources>
        <ResourceDictionary>
            <conv:ImageTransformator x:Key="cnvImg"></conv:ImageTransformator>
        </ResourceDictionary>
    </ContentPage.Resources>

    <!-- Este es el componente para el listado. Primero configura de dónde obtiene los datos 
         y el método al que llamar cuando se hace tap en un elemento de la lista. Luego
         configura el pull-to-refresh. Por último algunas opciones de visionado y gestión
         de memoria
    -->
    <StackLayout VerticalOptions="FillAndExpand">

        <ActivityIndicator HorizontalOptions="FillAndExpand" IsRunning="{Binding IsBusy}" IsVisible="{Binding IsBusy}"/>

        <Label Text="Buscando recetas..." VerticalOptions="CenterAndExpand" VerticalTextAlignment="Center" HorizontalTextAlignment="Center" IsVisible="{Binding IsBusy}"/>
        <Label Margin="8,0,8,0" Text="No se encontraron resultados. Cambie los filtros y pulse Aplicar" VerticalOptions="CenterAndExpand" VerticalTextAlignment="Center" HorizontalTextAlignment="Center" IsVisible="{Binding IsEmpty}"/>

        <ListView VerticalOptions="FillAndExpand"
                SeparatorVisibility="None"
                SeparatorColor="{ DynamicResource ListViewSeparatorColor }"
                Footer=""
                ItemsSource="{Binding Recipes}"
                RowHeight="240"
                ItemTapped="ItemTapped"
                HasUnevenRows="false"
                x:Name="listRecipe"
                IsVisible="{Binding IsNotEmpty}">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <views:RecipeItemTemplate/>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage>
