private void OnLayoutChange(List <string> numericTypes = null, List <string> tracingTypes = null) { // If numericTypes or tracingTypes are not null... then we are loading a file; clear lNumerics and lTracings! if (numericTypes != null) { listNumerics.Clear(); } if (tracingTypes != null) { listTracings.Clear(); } // Set default numeric types to populate if (numericTypes == null || numericTypes.Count == 0) { numericTypes = new List <string> (new string [] { "ECG", "NIBP", "SPO2", "RR", "ETCO2", "ABP", "CVP", "T", "PA", "ICP", "IAP" }); } else if (numericTypes.Count < rowsNumerics) { List <string> buffer = new List <string> (new string [] { "ECG", "NIBP", "SPO2", "RR", "ETCO2", "ABP", "CVP", "T", "PA", "ICP", "IAP" }); buffer.RemoveRange(0, numericTypes.Count); numericTypes.AddRange(buffer); } // Cap available amount of numerics rowsNumerics = Utility.Clamp(rowsNumerics, 1, numericTypes.Count); for (int i = listNumerics.Count; i < rowsNumerics && i < numericTypes.Count; i++) { Controls.MonitorNumeric newNum; newNum = new Controls.MonitorNumeric((Controls.MonitorNumeric.ControlType.Values)Enum.Parse(typeof(Controls.MonitorNumeric.ControlType.Values), numericTypes [i])); listNumerics.Add(newNum); } // Set default tracing types to populate if (tracingTypes == null || tracingTypes.Count == 0) { tracingTypes = new List <string> (new string [] { "ECG_II", "ECG_III", "SPO2", "RR", "ETCO2", "ABP", "CVP", "PA", "ICP" }); } else if (tracingTypes.Count < rowsTracings) { List <string> buffer = new List <string> (new string [] { "ECG_II", "ECG_III", "SPO2", "RR", "ETCO2", "ABP", "CVP", "PA", "ICP" }); buffer.RemoveRange(0, tracingTypes.Count); tracingTypes.AddRange(buffer); } // Cap available amount of tracings rowsTracings = Utility.Clamp(rowsTracings, 1, tracingTypes.Count); for (int i = listTracings.Count; i < rowsTracings && i < tracingTypes.Count; i++) { Strip newStrip = new Strip(6f, (Leads.Values)Enum.Parse(typeof(Leads.Values), tracingTypes [i])); Controls.MonitorTracing newTracing = new Controls.MonitorTracing(newStrip); listTracings.Add(newTracing); } // Reset the UI container and repopulate with the UI elements gridNumerics.Children.Clear(); gridNumerics.RowDefinitions.Clear(); for (int i = 0; i < rowsNumerics && i < listNumerics.Count; i++) { gridNumerics.RowDefinitions.Add(new RowDefinition()); listNumerics [i].SetValue(Grid.RowProperty, i); gridNumerics.Children.Add(listNumerics [i]); } gridTracings.Children.Clear(); gridTracings.RowDefinitions.Clear(); for (int i = 0; i < rowsTracings && i < listTracings.Count; i++) { gridTracings.RowDefinitions.Add(new RowDefinition()); listTracings [i].SetValue(Grid.RowProperty, i); gridTracings.Children.Add(listTracings [i]); } }
public void RemoveTracing(Controls.MonitorTracing requestSender) { rowsTracings -= 1; listTracings.Remove(requestSender); OnLayoutChange(); }