A progress dialog, for long operations
Inheritance: System.Windows.Forms.Form
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            reportHandler.Name = "Functional Analysis report";

            Hide();
            ProgressDialog dialog = new ProgressDialog("Generating report", reportHandler);
            dialog.ShowDialog(Owner);
        }
        /// <summary>
        ///     Executes the operation in background using a progress handler
        /// </summary>
        /// <param name="message">The message to display on the dialog window</param>
        /// <param name="allowCancel">Indicates that the opeation can be canceled</param>
        public virtual void ExecuteUsingProgressDialog(string message, bool allowCancel = true)
        {
            DateTime start = DateTime.Now;

            Util.DontNotify(() =>
            {
                try
                {
                    SynchronizerList.SuspendSynchronization();

                    if (ShowDialog)
                    {
                        Dialog = new ProgressDialog(message, this, allowCancel);
                        Dialog.ShowDialog();
                    }
                    else
                    {
                        ExecuteWork();
                    }
                }
                catch (ThreadAbortException)
                {
                }
                catch (Exception e)
                {
                    MessageBox.Show("Exception raised", e.Message);
                }
                finally
                {
                    Span = DateTime.Now.Subtract(start);
                    SynchronizerList.ResumeSynchronization();
                }
            });
        }
        /// <summary>
        ///     Creates a report config with user's choices
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            reportHandler.Name = "Tests coverage report";

            reportHandler.AddFrames = CB_Frames.Checked;
            reportHandler.AddActivatedRulesInFrames = CB_ActivatedRulesInFrames.Checked;

            reportHandler.AddSubSequences = CB_SubSequences.Checked;
            reportHandler.AddActivatedRulesInSubSequences = CB_ActivatedRulesInSubSequences.Checked;

            reportHandler.AddTestCases = CB_TestCases.Checked;
            reportHandler.AddActivatedRulesInTestCases = CB_ActivatedRulesInTestCases.Checked;

            reportHandler.AddSteps = CB_Steps.Checked;
            reportHandler.AddActivatedRulesInSteps = CB_ActivatedRulesInSteps.Checked;

            Hide();

            try
            {
                SynchronizerList.SuspendSynchronization();

                ProgressDialog dialog = new ProgressDialog("Generating report", reportHandler);
                dialog.ShowDialog(Owner);
            }
            finally
            {
                SynchronizerList.ResumeSynchronization();
            }
        }
        /// <summary>
        ///     Launches the command of importing excel file
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_Import_Click(object sender, EventArgs e)
        {
            Hide();
            Double.TryParse(CBB_SpeedInterval.Text, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture,
                out _brakingCurvesImporter.SpeedInterval);

            _brakingCurvesImporter.FrameName = TB_FrameName.Text;
            _brakingCurvesImporter.FileName = TB_FileName.Text;
            _brakingCurvesImporter.FillEBD = CB_EBD.Checked;
            _brakingCurvesImporter.FillSBD = CB_SBD.Checked;
            _brakingCurvesImporter.FillEBI = CB_EBI.Checked;
            _brakingCurvesImporter.FillSBI1 = CB_SBI1.Checked;
            _brakingCurvesImporter.FillSBI2 = CB_SBI2.Checked;
            _brakingCurvesImporter.FillWarning = CB_Warning.Checked;
            _brakingCurvesImporter.FillPermitted = CB_Permitted.Checked;
            _brakingCurvesImporter.FillIndication = CB_Indication.Checked;

            ProgressDialog dialog = new ProgressDialog("Importing excel file....", _brakingCurvesImporter);
            dialog.ShowDialog(Owner);
        }
        /// <summary>
        ///     Creates a report config with user's choices
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            _reportHandler.Name = "Specification issues report";

            _reportHandler.AddSpecIssues = CB_ShowIssues.Checked;
            _reportHandler.AddDesignChoices = CB_ShowDesignChoices.Checked;
            _reportHandler.AddInformationNeeded = moreInformationNeededCheckBox.Checked;

            Hide();

            ProgressDialog dialog = new ProgressDialog("Generating report", _reportHandler);
            dialog.ShowDialog(Owner);
        }
        /// <summary>
        ///     Creates a report config with user's choices
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            _reportHandler.Name = "Model report";

            _reportHandler.AddRanges = CB_AddRanges.Checked;
            _reportHandler.AddRangesDetails = CB_AddRangesDetails.Checked;

            _reportHandler.AddEnumerations = CB_AddEnumerations.Checked;
            _reportHandler.AddEnumerationsDetails = CB_AddEnumerationsDetails.Checked;

            _reportHandler.AddStructures = CB_AddStructures.Checked;
            _reportHandler.AddStructuresDetails = CB_AddStructuresDetails.Checked;

            _reportHandler.AddCollections = CB_AddCollections.Checked;
            _reportHandler.AddCollectionsDetails = CB_AddCollectionsDetails.Checked;

            _reportHandler.AddStateMachines = CB_AddStateMachines.Checked;
            _reportHandler.AddStateMachinesDetails = CB_AddStateMachinesDetails.Checked;

            _reportHandler.AddFunctions = CB_AddFunctions.Checked;
            _reportHandler.AddFunctionsDetails = CB_AddFunctionsDetails.Checked;

            _reportHandler.AddProcedures = CB_AddProcedures.Checked;
            _reportHandler.AddProceduresDetails = CB_AddProceduresDetails.Checked;

            _reportHandler.AddVariables = CB_AddVariables.Checked;
            _reportHandler.AddVariablesDetails = CB_AddVariablesDetails.Checked;
            _reportHandler.InOutOnly = CB_InOutFilter.Checked;

            _reportHandler.AddRules = CB_AddRules.Checked;
            _reportHandler.AddRulesDetails = CB_AddRulesDetails.Checked;

            _reportHandler.ImplementedOnly = CB_ImplementedFilter.Checked;

            Hide();

            ProgressDialog dialog = new ProgressDialog("Generating report", _reportHandler);
            dialog.ShowDialog(Owner);
        }
        /// <summary>
        ///     Creates a report config with user's choices
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            reportHandler.Name = "Specification coverage report";

            reportHandler.AddSpecification = CB_AddSpecification.Checked;
            reportHandler.ShowFullSpecification = CB_ShowFullSpecification.Checked;

            reportHandler.AddCoveredParagraphs = CB_AddCoveredParagraphs.Checked;
            reportHandler.ShowAssociatedReqRelated = CB_ShowAssociatedReqRelated.Checked;

            reportHandler.AddNonCoveredParagraphs = CB_AddNonCoveredParagraphs.Checked;

            reportHandler.AddReqRelated = CB_AddReqRelated.Checked;
            reportHandler.ShowAssociatedParagraphs = CB_ShowAssociatedParagraphs.Checked;

            Hide();

            ProgressDialog dialog = new ProgressDialog("Generating report", reportHandler);
            dialog.ShowDialog(Owner);
        }
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            _reportHandler.Name = "ERTMS Academy report";

            _reportHandler.User = Cbb_UserNames.Text;
            _reportHandler.GitLogin = _usersAndLogin[_reportHandler.User];
            _reportHandler.SinceHowManyDays = (int) sinceUpDown.Value;

            Hide();

            ProgressDialog dialog = new ProgressDialog("Generating report", _reportHandler);
            dialog.ShowDialog(Owner);
        }
        /// <summary>
        ///     Creates a report config with user's choices
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_CreateReport_Click(object sender, EventArgs e)
        {
            _reportHandler.Name = "Findings report";

            _reportHandler.addQuestions = CB_ShowQuestions.Checked;
            _reportHandler.addComments = CB_ShowComments.Checked;
            _reportHandler.addBugs = CB_ShowBugs.Checked;
            _reportHandler.addReviewed = CB_Reviewed.Checked;
            _reportHandler.addNotReviewed = CB_NotReviewed.Checked;

            Hide();

            ProgressDialog dialog = new ProgressDialog("Generating report", _reportHandler);
            dialog.ShowDialog(Owner);
        }