using System; using System.Collections.Generic; using System.Linq; using System.Windows.Controls; using com.sun.security.ntlm; using Comal.Classes; using InABox.Clients; using InABox.Core; using InABox.DynamicGrid; using static com.sun.xml.@internal.ws.api.config.management.policy.ManagementAssertion; namespace PRSDesktop { public partial class MeetingPanel : UserControl, IPanel { public MeetingPanel() { InitializeComponent(); } #region IPanel public void Setup() { MeetingAssignments.Refresh(true, false); MeetingDetails.Setup(); foreach (var column in MeetingModel.Columns.Items) Meetings.AddHiddenColumn(column.Property); Meetings.Refresh(true, false); } public void Shutdown() { } public void Refresh() { Meetings.Refresh(false, true); } public string SectionName => "Meetings"; public DataModel DataModel(Selection selection) { return new AutoDataModel(null); } public event DataModelUpdateEvent? OnUpdateDataModel; public bool IsReady { get; set; } public void CreateToolbarButtons(IPanelHost host) { } public Dictionary Selected() { return new Dictionary(); } public void Heartbeat(TimeSpan time) { } #endregion private void Meetings_OnOnSelectItem(object sender, DynamicGridSelectionEventArgs e) { CoreRow? row = e.Rows?.FirstOrDefault(); var meeting = row?.ToObject() ?? new Meeting(); Meetings.InitialiseEditorForm(MeetingDetailsForm, new Meeting[] { meeting }); MeetingDetailsForm.OnAfterEditorValueChanged += MeetingDetailsForm_OnAfterEditorValueChanged; var model = new MeetingModel(row); MeetingDetails.Model = model; MeetingDetails.Refresh(); MeetingAssignments.Model = model; MeetingAssignments.Refresh(false,true); } private Dictionary? MeetingDetailsForm_OnAfterEditorValueChanged(DynamicEditorGrid sender, string columnname) { var item = MeetingDetailsForm.Items.FirstOrDefault(); if(item is Meeting meeting) { new Client().Save(meeting, ""); // Commented out because if you do too many refreshes, the selection on the grid is lost and bad stuff happens. // Meetings.Refresh(false, true); } return null; } } }