using System; using System.Windows; using System.Windows.Media.Imaging; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; using InABox.WPF; using PRSDesktop.Panels.Jobs; namespace PRSDesktop { internal class JobDesignGrid : DynamicDataGrid, IJobControl { private BitmapImage barcode = PRSDesktop.Resources.barcode.AsBitmapImage(); private BitmapImage design = PRSDesktop.Resources.design.AsBitmapImage(); private BitmapImage qacheck = PRSDesktop.Resources.checklist.AsBitmapImage(); private BitmapImage tick = PRSDesktop.Resources.tick.AsBitmapImage(); public CoreTable Setouts { get; private set; } public Job Job { get; set; } public JobPanelSettings Settings { get; set; } protected override void DoReconfigure(FluentList options) { base.DoReconfigure(options); options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows, DynamicGridOption.ImportData); } protected override void DoImport() { var window = new JobDesignImportWindow(); if (window.ShowDialog() == true) Refresh(false,true); } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { criteria.Add(new Filter(x => x.JobLink.ID).IsEqualTo(Job.ID)); sort = new SortOrder(x => x.Number, SortDirection.Descending); base.Reload(criteria, columns, ref sort, action); } protected override bool CanCreateItems() { return Job.ID != Guid.Empty; } protected override Setout CreateItem() { var setout = base.CreateItem(); setout.JobLink.ID = Job.ID; setout.JobLink.Synchronise(Job); return setout; } } }