Exemple #1
0
        private static bool IsTransitionGroupFilterApplied(TransitionFilterCriteria criteria)
        {
            foreach (bool b in criteria.TransitionGroups.Values)
            {
                if (!b)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #2
0
        private void InternalFilterTransitions(TransitionFilterCriteria criteria)
        {
            bool dtflt = (!criteria.IncludeDeterministic);
            bool ptflt = (!criteria.IncludeProbabilistic);
            bool tgflt = IsTransitionGroupFilterApplied(criteria);

            this.m_IsFilterApplied = (dtflt || ptflt || tgflt);

            foreach (TransitionDiagramLine Line in this.Lines)
            {
                if ((Line) is DeterministicTransitionLine)
                {
                    Line.IsVisible = criteria.IncludeDeterministic;
                }
                else
                {
                    Line.IsVisible = criteria.IncludeProbabilistic;

                    //If no filtering has been done then make the line visible.  But if any filters have been
                    //applied then only make the line visible if one of its transition groups is not filtered out.

                    if (criteria.IncludeProbabilistic && tgflt)
                    {
                        ProbabilisticTransitionLine ptline = (ProbabilisticTransitionLine)Line;

                        if (ptline.TransitionGroups.Count > 0)
                        {
                            ptline.IsVisible = false;

                            foreach (int tg in ptline.TransitionGroups)
                            {
                                if (criteria.TransitionGroups[tg])
                                {
                                    ptline.IsVisible = true;
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            this.Invalidate();
        }
Exemple #3
0
 public void FilterTransitions(TransitionFilterCriteria criteria)
 {
     this.InternalFilterTransitions(criteria);
 }