Example #1
0
        public void SetAvailableFilters(AvailableFilters filters)
        {
            mnuFilter.DropDownItems.Clear();
            m_filterSettings = new FilterOptions();

            foreach (string key in filters.AllFilters)
            {
                System.Windows.Forms.ToolStripMenuItem newMenu = new System.Windows.Forms.ToolStripMenuItem();
                newMenu.Text   = filters.Get(key);
                newMenu.Tag    = key;
                newMenu.Click += FilterClicked;
                mnuFilter.DropDownItems.Add(newMenu);
            }
        }
Example #2
0
        private void DatabaseSourceInitialize()
        {
            InitializeTrackModel();

            current_filters_schema = CreateSchema <string[]> ("current_filters");

            DatabaseSource filter_src = Parent as DatabaseSource ?? this;

            foreach (IFilterListModel filter in filter_src.CreateFiltersFor(this))
            {
                AvailableFilters.Add(filter);
                DefaultFilters.Add(filter);
            }

            reload_limiter = new RateLimiter(RateLimitedReload);
        }
Example #3
0
        public Thread executeFilter(AvailableFilters filterToApply, bool addFindingsWithNoMatches, O2Thread.FuncVoidT1 <List <IO2Finding> > onCompletion)
        {
            var o2TargetO2Findings = findingsViewerSourceFindings.currentO2Findings;
            var o2RulesToUse       = rulePackViewer.currentO2RulePack.o2Rules;

            return(O2Thread.mtaThread(
                       () =>
            {
                List <IO2Finding> mappedFidings = null;
                List <IO2Rule> o2Rules = o2RulesToUse.Cast <IO2Rule>().ToList();
                switch (filterToApply)
                {
                case AvailableFilters.BasicSinksMapping:
                    DI.log.info("Executing filter: BasicSinksMapping");
                    mappedFidings = Filter_BasicSinksMapping.applyFilter(o2TargetO2Findings, o2Rules);
                    break;

                case AvailableFilters.CreateAllPartialTraces:
                    DI.log.info("Executing filter: CreateAllPartialTraces");
                    mappedFidings = Filter_CreateAllPartialTraces.applyFilter(o2TargetO2Findings, o2Rules);
                    break;

                case AvailableFilters.MapSinksToAllTraces:
                    DI.log.info("Executing filter: MapSinksToAllTraces");
                    mappedFidings = Filter_MapSinksToAllTraces.applyFilter(o2TargetO2Findings, o2Rules, addFindingsWithNoMatches);
                    break;

                case AvailableFilters.MapSourcesToAllTraces:
                    DI.log.info("Executing filter: MapSourcesToAllTraces");
                    mappedFidings = Filter_MapSourcesToAllTraces.applyFilter(o2TargetO2Findings, o2Rules);
                    break;

                case AvailableFilters.MapFirstSourcesThenSinksToAllTraces:
                    DI.log.info("Executing filter: MapFirstSourcesThenSinksToAllTraces which has two steps");
                    DI.log.info("Step 1): MapFirstSourcesThenSinksToAllTraces->MapSourcesToAllTraces");
                    var sourceMappings = Filter_MapSourcesToAllTraces.applyFilter(o2TargetO2Findings, o2Rules);
                    DI.log.info("Step 2): MapFirstSourcesThenSinksToAllTraces->MapSinksToAllTraces");
                    mappedFidings = Filter_MapSinksToAllTraces.applyFilter(sourceMappings, o2Rules, addFindingsWithNoMatches);
                    break;
                }
                if (onCompletion != null)
                {
                    onCompletion(mappedFidings);
                }
            }));
        }
        public Thread executeFilter(AvailableFilters filterToApply, bool addFindingsWithNoMatches, O2Thread.FuncVoidT1<List<IO2Finding>> onCompletion)
        {
	        var o2TargetO2Findings = findingsViewerSourceFindings.currentO2Findings;
	        var o2RulesToUse = rulePackViewer.currentO2RulePack.o2Rules;
            return O2Thread.mtaThread(
                () =>
                    {
                        List<IO2Finding> mappedFidings = null ;
                        List<IO2Rule> o2Rules = o2RulesToUse.Cast<IO2Rule>().ToList();
                        switch (filterToApply)
                        {
                            case AvailableFilters.BasicSinksMapping:
                                DI.log.info("Executing filter: BasicSinksMapping");
                                mappedFidings = Filter_BasicSinksMapping.applyFilter(o2TargetO2Findings, o2Rules);
                                break;
                            case AvailableFilters.CreateAllPartialTraces:
                                DI.log.info("Executing filter: CreateAllPartialTraces");
                                mappedFidings = Filter_CreateAllPartialTraces.applyFilter(o2TargetO2Findings, o2Rules);
                                break;
                            case AvailableFilters.MapSinksToAllTraces:
                                DI.log.info("Executing filter: MapSinksToAllTraces");
                                mappedFidings = Filter_MapSinksToAllTraces.applyFilter(o2TargetO2Findings, o2Rules, addFindingsWithNoMatches);
                                break;
                            case AvailableFilters.MapSourcesToAllTraces:
                                DI.log.info("Executing filter: MapSourcesToAllTraces");
                                mappedFidings = Filter_MapSourcesToAllTraces.applyFilter(o2TargetO2Findings, o2Rules);
                                break;       
                            case AvailableFilters.MapFirstSourcesThenSinksToAllTraces:
                                DI.log.info("Executing filter: MapFirstSourcesThenSinksToAllTraces which has two steps");
                                DI.log.info("Step 1): MapFirstSourcesThenSinksToAllTraces->MapSourcesToAllTraces");
                                var sourceMappings = Filter_MapSourcesToAllTraces.applyFilter(o2TargetO2Findings, o2Rules);
                                DI.log.info("Step 2): MapFirstSourcesThenSinksToAllTraces->MapSinksToAllTraces");
                                mappedFidings = Filter_MapSinksToAllTraces.applyFilter(sourceMappings, o2Rules, addFindingsWithNoMatches);
                                break;                                          
                        }
                        if (onCompletion != null)
                            onCompletion(mappedFidings);
                    });
        }
Example #5
0
        public void SetAvailableFilters(AvailableFilters filters)
        {
            mnuFilter.DropDownItems.Clear();
            m_filterSettings = new FilterOptions();

            foreach (string key in filters.AllFilters)
            {
                System.Windows.Forms.ToolStripMenuItem newMenu = new System.Windows.Forms.ToolStripMenuItem();
                newMenu.Text = filters.Get(key);
                newMenu.Tag = key;
                newMenu.Click += FilterClicked;
                mnuFilter.DropDownItems.Add(newMenu);
            }
        }