123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- namespace PRSDesktop.Forms.Export
- {
- internal class ExportColumns : IGlobalConfigurationSettings
- {
- public List<ExportColumn> Columns { get; set; }
- }
- internal class ExportGrid : DynamicGrid<ExportColumn>
- {
- private ExportColumns _columns = new();
- private readonly Dictionary<string, Type> _properties;
- private readonly Type _Type;
- public ExportGrid(Type type)
- {
- _Type = type;
- _properties = CoreUtils.PropertyList(_Type, x => true, true);
- Options.AddRange(DynamicGridOption.RecordCount);
- ActionColumns.Add(new DynamicRowMovementColumn(DynamicRowMovement.Up, SwapRows));
- ActionColumns.Add(new DynamicRowMovementColumn(DynamicRowMovement.Down, SwapRows));
- }
- private bool SwapRows(int arg1, int arg2)
- {
- var item = _columns.Columns[arg1];
- _columns.Columns.Remove(item);
- _columns.Columns.Insert(arg2, item);
- return true;
- }
- private DynamicGridColumns ExportGrid_OnLoadColumns(object sender, DynamicGridColumns master)
- {
- var columns = new DynamicGridColumns();
- columns.Add(new DynamicGridColumn { ColumnName = "Name", /* Type = typeof(String), */ Width = 0 });
- var col = new DynamicGridColumn { ColumnName = "Property", /* Type = typeof(String), */ Width = 0 };
- foreach (var key in _properties.Keys)
- col.Lookups[key] = key;
- columns.Add(col);
- columns.Add(new DynamicGridColumn { ColumnName = "Format", /* Type = typeof(String), */ Width = 50 });
- return columns;
- }
- protected override void Reload(Filters<ExportColumn> criteria, Columns<ExportColumn> columns, ref SortOrder<ExportColumn> sort,
- Action<CoreTable, Exception> action)
- {
- _columns = new GlobalConfiguration<ExportColumns>(_Type.Name).Load();
- if (_columns.Columns == null || _columns.Columns.Count == 0)
- {
- if (_columns.Columns == null)
- _columns.Columns = new List<ExportColumn>();
- foreach (var prop in _properties.Keys)
- _columns.Columns.Add(new ExportColumn { Property = prop, Name = prop, Format = "" });
- new GlobalConfiguration<ExportColumns>(_Type.Name).Save(_columns);
- }
- var result = new CoreTable();
- result.LoadColumns(typeof(ExportColumn));
- result.LoadRows(_columns.Columns);
- action.Invoke(result, null);
- }
- //protected override DataTable Reload(Dictionary<string, object> criteria, List<string> columns, string sort)
- //{
- // _columns = new GlobalConfiguration<ExportColumns>(_Type.Name).Load();
- // if ((_columns.Columns == null) || (_columns.Columns.Count == 0))
- // {
- // if (_columns.Columns == null)
- // _columns.Columns = new List<ExportColumn>();
- // foreach (String prop in _properties.Keys)
- // _columns.Columns.Add(new ExportColumn() { Property = prop, Name = prop, Format = "" });
- // new GlobalConfiguration<ExportColumns>(_Type.Name).Save(_columns);
- // }
- // DataTable result = new DataTable();
- // result.LoadColumns(typeof(ExportColumn));
- // result.LoadRows(_columns.Columns);
- // return result;
- //}
- protected override ExportColumn LoadItem(CoreRow row)
- {
- var index = Data.Rows.IndexOf(row);
- return _columns.Columns[index];
- }
- public override void SaveItem(ExportColumn item)
- {
- new GlobalConfiguration<ExportColumns>(_Type.Name).Save(_columns);
- }
- protected override void DeleteItems(params CoreRow[] rows)
- {
- foreach (var row in rows.OrderByDescending(x => x.Index))
- _columns.Columns.RemoveAt(row.Index);
- new GlobalConfiguration<ExportColumns>(_Type.Name).Save(_columns);
- }
- }
- }
|