using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Windows.Controls; using Comal.Classes; using InABox.Configuration; using InABox.Core; using InABox.DynamicGrid; using InABox.Wpf; namespace PRSDesktop { public enum JobDesignsView { Unapproved, Approved } public class JobDesignSettings : IUserConfigurationSettings { public JobDesignsView View { get; set; } } /// /// Interaction logic for JobDesigns.xaml /// public partial class JobDesignPanel : UserControl, IPanel, IMasterDetailControl { private JobDesignSettings _settings; public JobDesignPanel() { _settings = new UserConfiguration().Load(); InitializeComponent(); DesignsTabControl.SelectedItem = _settings.View == JobDesignsView.Unapproved ? UnapprovedTabItem : ApprovedTabItem; Designs.OnSelectItem += Designs_OnSelectItem; } public Job? Master { get => Designs.Master; set { UnapprovedDesigns.Job = value; Designs.Master = value; } } public bool IsReady { get; set; } public event DataModelUpdateEvent? OnUpdateDataModel; public void CreateToolbarButtons(IPanelHost host) { } public string SectionName => "Job Designs"; public DataModel DataModel(Selection selection) { var ids = Designs.ExtractValues(c => c.ID, selection).ToArray(); return new BaseDataModel(new Filter(x => x.ID).InList(ids)); } public void Refresh() { if (DesignsTabControl.SelectedTab == UnapprovedTabItem) UnapprovedDesigns.Refresh(); else Designs.Refresh(false, true); } public Dictionary Selected() { return new Dictionary(); } public void Setup() { //DesignsTabControl.SelectedItem = ParentSettings UnapprovedDesigns.Setup(); Designs.Refresh(true, false); Documents.Refresh(true, false); Packets.Refresh(true, false); } private void DesignsTabControl_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.Source == e.OriginalSource) { _settings.View = DesignsTabControl.SelectedItem == UnapprovedTabItem ? JobDesignsView.Unapproved : JobDesignsView.Approved; new UserConfiguration().Save(_settings); Refresh(); } } public void Shutdown(CancelEventArgs? cancel) { } public void Heartbeat(TimeSpan time) { } private void Designs_OnSelectItem(object sender, DynamicGridSelectionEventArgs e) { var design = e.Rows?.FirstOrDefault()?.ToObject(); Documents.Design = design; Documents.Refresh(true, true); Packets.Master = Master; Packets.Design = design; Packets.Refresh(true, true); } } }