private void step3()
        {
            btCreateTraces.Enabled = false;
            DI.log.debug("Creating Traces");
            O2Timer tTimer = new O2Timer("Creating Traces").start();


            string textFilter = "";
            //TreeView _tvRawData = tvRawData;
            ICirData _cdCirData = cdCirData;
            Dictionary <String, O2TraceBlock_OunceV6> _dO2TraceBlock = dO2TraceBlock;
            Dictionary <string, O2TraceBlock_OunceV6> dRawData       = JoinTracesUtils.calculateDictionaryWithRawData(tvRawData);
            const bool bOnlyProcessTracesWithNoCallers = false;

            string     targetFolder                = DI.config.O2TempDir;
            string     fileNamePrefix              = Path.GetFileNameWithoutExtension(lbCirFileLoaded.Text);
            const bool bCreateFileWithAllTraces    = true;
            const bool bCreateFileWithUniqueTraces = false;
            const bool bDropDuplicateSmartTraces   = false;
            const bool bIgnoreRootCallInvocation   = false;

            JoinTracesUtils.createAssessessmentFileWithJoinnedTraces(
                textFilter, dRawData, _cdCirData, _dO2TraceBlock,
                bOnlyProcessTracesWithNoCallers, targetFolder, fileNamePrefix, bCreateFileWithAllTraces,
                bCreateFileWithUniqueTraces, bDropDuplicateSmartTraces, bIgnoreRootCallInvocation, null,
                sAssessmentFile =>
            {
                this.invokeOnThread(
                    () =>
                {
                    lbCreatedAssessmentFile.Text    = sAssessmentFile;
                    lbCreatedAssessmentFile.Visible = true;

                    btCreateTraces.Enabled = true;
                });
                tTimer.stop();
                if (sAssessmentFile != "")
                {
                    findingsViewerfor_JoinnedTraces.loadO2Assessment(sAssessmentFile);
                }
                return(sAssessmentFile);
            });
        }
        private void btCreateTraces_Click(object sender, EventArgs e)
        {
            btCreateTraces.Enabled = false;
            DI.log.debug("Creating Traces");
            O2Timer tTimer = new O2Timer("Creating Traces").start();


            string textFilter = tbCreateTracesForKeyword.Text;
            //TreeView _tvRawData = tvRawData;
            ICirData _cdCirData = cdCirData;
            Dictionary <String, O2TraceBlock_OunceV6> _dO2TraceBlock = dO2TraceBlock;
            Dictionary <string, O2TraceBlock_OunceV6> dRawData       = JoinTracesUtils.calculateDictionaryWithRawData(tvRawData);
            bool bOnlyProcessTracesWithNoCallers = cbOnlyProcessTracesWithNoCallers.Checked;

            string targetFolder                = tbFolderToSaveAssessment.Text;
            string fileNamePrefix              = Path.GetFileNameWithoutExtension(lbCirFileLoaded.Text);
            bool   bCreateFileWithAllTraces    = cbCreateFileWithAllTraces.Checked;
            bool   bCreateFileWithUniqueTraces = cbCreateFileWithUniqueTraces.Checked;
            bool   bDropDuplicateSmartTraces   = cbDropDuplicateSmartTraces.Checked;
            bool   bIgnoreRootCallInvocation   = cbIgnoreRootCallInvocation.Checked;

            JoinTracesUtils.createAssessessmentFileWithJoinnedTraces(
                textFilter, dRawData, _cdCirData, _dO2TraceBlock,
                bOnlyProcessTracesWithNoCallers, targetFolder, fileNamePrefix, bCreateFileWithAllTraces,
                bCreateFileWithUniqueTraces, bDropDuplicateSmartTraces, bIgnoreRootCallInvocation, previewCreatedTraces,
                sAssessmentFile =>
            {
                this.invokeOnThread(
                    () =>
                {
                    lbCreatedAssessmentFile.Text    = sAssessmentFile;
                    lbCreatedAssessmentFile.Visible = true;

                    btCreateTraces.Enabled = true;
                });
                tTimer.stop();
                if (sAssessmentFile != "")
                {
                    findingsViewerfor_JoinnedTraces.loadO2Assessment(sAssessmentFile);
                }
                return(sAssessmentFile);
            });
        }