private static bool IsTransitionGroupFilterApplied(TransitionFilterCriteria criteria) { foreach (bool b in criteria.TransitionGroups.Values) { if (!b) { return(true); } } return(false); }
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(); }
public void FilterTransitions(TransitionFilterCriteria criteria) { this.InternalFilterTransitions(criteria); }