public void OkDialog() { var helper = new MessageBoxHelper(this); // Validate start and end. double start; double end; if (!helper.ValidateDecimalTextBox(textStart, TransitionFullScan.MIN_RES_MZ, TransitionFullScan.MAX_RES_MZ, out start) || !helper.ValidateDecimalTextBox(textEnd, TransitionFullScan.MIN_RES_MZ, TransitionFullScan.MAX_RES_MZ, out end)) { return; } if (start >= end) { MessageDlg.Show(this, Resources.CalculateIsolationSchemeDlg_OkDialog_Start_value_must_be_less_than_End_value); return; } // Validate window width. double windowWidth; if (!helper.ValidateDecimalTextBox(textWidth, 0.1, TransitionFullScan.MAX_RES_MZ - TransitionFullScan.MIN_RES_MZ, out windowWidth)) { return; } if (windowWidth > end - start) { MessageDlg.Show(this, Resources.CalculateIsolationSchemeDlg_OkDialog_Window_width_must_be_less_than_or_equal_to_the_isolation_range); return; } // Validate margins. double? margin = null; if (!helper.IsZeroOrEmpty(textMargin)) { double marginValue; if (!helper.ValidateDecimalTextBox(textMargin, TransitionInstrument.MIN_MZ_MATCH_TOLERANCE, TransitionFullScan.MAX_RES_MZ - TransitionFullScan.MIN_RES_MZ, out marginValue)) { return; } margin = marginValue; } // Validate CE range. double? ceRange = null; if (!helper.IsZeroOrEmpty(textCERange)) { double ceRangeValue; if (!helper.ValidateDecimalTextBox(textCERange, 0.0, double.MaxValue, out ceRangeValue)) { return; } ceRange = ceRangeValue; } // Validate multiplexing. if (Multiplexed) { int windowsPerScan; if (!helper.ValidateNumberTextBox(textWindowsPerScan, 2, 20, out windowsPerScan)) { return; } // Make sure multiplexed window count is a multiple of windows per scan. if (Multiplexed && IsolationWindows.Count % windowsPerScan != 0) { MessageDlg.Show(this, Resources.CalculateIsolationSchemeDlg_OkDialog_The_number_of_generated_windows_could_not_be_adjusted_to_be_a_multiple_of_the_windows_per_scan_Try_changing_the_windows_per_scan_or_the_End_value); return; } } try { // ReSharper disable ObjectCreationAsStatement new IsolationWindow(start, end, null, margin, margin, ceRange); // ReSharper restore ObjectCreationAsStatement } catch (InvalidDataException x) { MessageDlg.ShowException(this, x); return; } DialogResult = DialogResult.OK; }