using abs; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Windows.Forms; using Telerik.WinControls.UI; using VisionDataAndServices.Services.Classes; namespace VisionUI.Setup { public partial class FormResetGridLayout : RadFormABS { BindingList gridOptionsListMain = null; BindingList gridOptionsListDetail = null; ResetGridLayout resetGridLayout = new(); public FormResetGridLayout() { InitializeComponent(); } private void FormResetGridLayout_Load(object sender, EventArgs e) { this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.MinimizeBox = false; UI.ApplyThemeHighlights(this); resetGridLayout.ShowMessage += ShowMessage; absUIControls.FormatGrid(gvGrids, false, false, false, false); gvGrids.AllowAddNewRow = false; gvGrids.EnableSorting = false; gvGrids.ReadOnly = false; gridOptionsListMain = resetGridLayout.GetGridMain(); gridOptionsListDetail = resetGridLayout.GetGridDetail(); SetupGrid(gvGrids, gridOptionsListMain, gridOptionsListDetail); absUIControls.AddGridCheckBox(gvGrids); ((GridViewCheckBoxColumn)gvGrids.Columns["selected"]).EnableHeaderCheckBox = true; ((GridViewCheckBoxColumn)gvGrids.Columns["selected"]).ShouldCheckDataRows = true; ((GridViewCheckBoxColumn)gvGrids.Templates[0].Columns["selected"]).ShouldCheckDataRows = true; gvGrids.HeaderCellToggleStateChanged += gvGrids_HeaderCellToggleStateChanged; gvGrids.CellEndEdit += gvGrids_CellEndEdit; gvGrids.MasterTemplate.Templates[0].EnableSorting = false; gvGrids.MasterTemplate.Templates[0].ShowColumnHeaders = false; gvGrids.MasterTemplate.Templates[0].AllowEditRow = true; gvGrids.MasterTemplate.Templates[0].Columns["Selected"].Width = 50; gvGrids.MasterTemplate.Templates[0].Columns["Selected"].HeaderText = string.Empty; gvGrids.MasterTemplate.Templates[0].Columns["Selected"].ReadOnly = false; } private void SetupGrid(RadGridView grid, BindingList? gridOptionsListMain, BindingList? gridOptionsListDetail) { grid.MasterTemplate.AutoGenerateColumns = true; grid.MasterTemplate.ReadOnly = false; GridViewTemplate template1 = new GridViewTemplate(); if (gridOptionsListMain is not null) { template1.AutoGenerateColumns = true; template1.DataSource = gridOptionsListDetail; template1.AllowAddNewRow = false; template1.Caption = " Summary "; grid.MasterTemplate.Templates.Add(template1); GridViewRelation relation1 = new GridViewRelation(grid.MasterTemplate); relation1.ChildTemplate = template1; relation1.RelationName = "Detail"; relation1.ParentColumnNames.Add("FormDescr"); relation1.ChildColumnNames.Add("FormDescr"); grid.Relations.Add(relation1); } grid.DataSource = gridOptionsListMain; grid.MasterTemplate.Columns["FormDescr"].Width = 10; grid.MasterTemplate.Columns["FormDescr"].HeaderText = "Form"; grid.MasterTemplate.Columns["FormDescr"].HeaderTextAlignment = ContentAlignment.MiddleLeft; grid.MasterTemplate.Columns["FormDescr"].ReadOnly = true; if (gridOptionsListDetail is not null) { grid.MasterTemplate.Templates[0].Columns["GridDescr"].Width = 340; grid.MasterTemplate.Templates[0].Columns["GridDescr"].HeaderText = "Grid"; grid.MasterTemplate.Templates[0].Columns["GridDescr"].HeaderTextAlignment = ContentAlignment.MiddleLeft; grid.MasterTemplate.Templates[0].Columns["GridDescr"].ReadOnly = true; } foreach (var item in grid.MasterTemplate.Templates[0].Columns) { if (!item.FieldName.Equals("Selected", StringComparison.OrdinalIgnoreCase) && !item.FieldName.Equals("GridDescr", StringComparison.OrdinalIgnoreCase)) item.IsVisible = false; } foreach (var item in grid.MasterTemplate.Rows) { item.IsExpanded = true; } } private async void bResetDefault_Click(object sender, EventArgs e) { await resetGridLayout.ResetUserGridSettings(gridOptionsListDetail); } private async void bApplyAllUsers_Click(object sender, EventArgs e) { await resetGridLayout.ApplyAllUserGridSettings(gridOptionsListDetail, AuthServices.Instance.BranchID); } private void gvGrids_HeaderCellToggleStateChanged(object sender, GridViewHeaderCellEventArgs e) { if (e.Column.Name == "Selected") { ToggleGrids(e.State == Telerik.WinControls.Enumerations.ToggleState.On); gvGrids.MasterTemplate.Refresh(); gvGrids.TableElement.Update(GridUINotifyAction.DataChanged); } } private void gvGrids_CellEndEdit(object sender, GridViewCellEventArgs e) { if (e.Row.Cells.Count > 4) return; string formName = e.Row.Cells["FormDescr"].Value.ToString(); foreach(var item in gridOptionsListDetail.Where(n => n.FormDescr == formName)) { item.Selected = (bool)e.Value; } } private void lnkSelectAll_Click(object sender, EventArgs e) { ToggleGrids(true); } private void lnkDeselectAll_Click(object sender, EventArgs e) { ToggleGrids(false); } private void ToggleGrids(bool toggle) { foreach (var item in gridOptionsListDetail) { item.Selected = toggle; } } } }