using comal.timesheets.Data_Classes; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace comal.timesheets { public delegate void DataGridHeaderTapped(int columnnumber, SearchUtils.SortDirection SortDirection); public delegate void DataGridHeaderFilterTapped(int columnnumber, string columnname); [XamlCompilation(XamlCompilationOptions.Compile)] public partial class DataGridHeaderRow : ContentView { public event DataGridHeaderTapped OnDataGridHeaderTapped; public event DataGridHeaderFilterTapped OnDataGridHeaderFilterTapped; public string ColumnName { get; set; } public int ColumnNumber { get; set; } public SearchUtils.SortDirection SortDirection { get; set; } public DataGridHeaderRow() { InitializeComponent(); SortDirection = SearchUtils.SortDirection.Default; } private void HeaderBtn_Clicked(object sender, EventArgs e) { SortDirection = ChooseDirection(SortDirection); OnDataGridHeaderTapped?.Invoke(ColumnNumber, SortDirection); } private void Image_tapped(object sender, EventArgs e) { OnDataGridHeaderFilterTapped?.Invoke(ColumnNumber, ColumnName); } public void Setup() { headerBtn.Text = ColumnName; if (ColumnName == "Image") filterBtn.IsVisible = false; ForceLayout(); } private SearchUtils.SortDirection ChooseDirection(SearchUtils.SortDirection sortdirection) { switch (sortdirection) { case SearchUtils.SortDirection.Default: sortdirection = SearchUtils.SortDirection.Ascending; break; case SearchUtils.SortDirection.Ascending: sortdirection = SearchUtils.SortDirection.Descending; break; case SearchUtils.SortDirection.Descending: sortdirection = SearchUtils.SortDirection.Ascending; break; } return sortdirection; } public void ChangeFilterColour(bool filterpresent) { if (filterpresent) { col1.Width = 30; col0.Width = 0; } else { col1.Width = 0; col0.Width = 30; } } } }