using System; using System.Collections.Generic; using System.Linq; using Comal.Classes; using InABox.Clients; using InABox.Core; using InABox.DynamicGrid; namespace PRSDesktop { internal class FactoryGroupsGrid : DynamicGrid { public FactoryGroupsGrid() { Options.AddRange(DynamicGridOption.RecordCount); } public List Groups { get; set; } //public DynamicGridColumns DefineColumns() //{ // return LoadColumns(); //} protected override DynamicGridColumns LoadColumns() { ActionColumns.Clear(); ActionColumns.Add(new DynamicRowMovementColumn(DynamicRowMovement.Up, SwapRows)); ActionColumns.Add(new DynamicRowMovementColumn(DynamicRowMovement.Down, SwapRows)); var columns = new DynamicGridColumns { new() { ColumnName = "Group", Width = 0 }, new() { ColumnName = "QAChecker", Width = 0 } }; return columns; } private bool SwapRows(int arg1, int arg2) { var item = Groups[arg1]; Groups.Remove(item); Groups.Insert(arg2, item); return true; } #region Save / Load //protected override DataTable Reload(Dictionary criteria, List columnnames, String sort) //{ // DataTable result = new DataTable(); // result.LoadColumns(typeof(FactoryGroup)); // result.LoadRows(Groups); // return result; //} protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { var result = new CoreTable(); result.LoadColumns(typeof(FactoryGroup)); result.LoadRows(Groups); action.Invoke(result, null); } protected override FactoryGroup LoadItem(CoreRow row) { var index = Data.Rows.IndexOf(row); return Groups[index]; } protected override void SaveItem(FactoryGroup item) { if (!Groups.Contains(item)) Groups.Add(item); } protected override void DeleteItems(params CoreRow[] rows) { foreach (var row in rows) { var index = Data.Rows.IndexOf(row); Groups.RemoveAt(index); } } protected override FactoryGroup CreateItem() { return base.CreateItem(); } protected override Document LoadDocument(Guid id) { return new Client().Load(new Filter(x => x.ID).IsEqualTo(id)).FirstOrDefault(); } protected override Document FindDocument(string filename) { return new Client().Load(new Filter(x => x.FileName).IsEqualTo(filename)).FirstOrDefault(); } protected override void SaveDocument(Document document) { new Client().Save(document, "Added from Factory Groups Screen"); } #endregion } }