public void FillInspectors (string filter)
{
categories.Clear ();
treeStore.Clear ();
var grouped = severities.Keys.OfType<CodeIssueProvider> ()
.Where (node => string.IsNullOrEmpty (filter) || node.Title.IndexOf (filter, StringComparison.OrdinalIgnoreCase) > 0)
.GroupBy (node => node.Category)
.OrderBy (g => g.Key, StringComparer.Ordinal);
foreach (var g in grouped) {
TreeIter categoryIter = treeStore.AppendValues ("<b>" + g.Key + "</b>", null, "");
categories [g.Key] = categoryIter;
foreach (var node in g.OrderBy (n => n.Title, StringComparer.Ordinal)) {
var title = node.Title;
MarkupSearchResult (filter, ref title);
var nodeIter = treeStore.AppendValues (categoryIter, title, node, node.Description);
if (node.HasSubIssues) {
foreach (var subIssue in node.SubIssues) {
title = subIssue.Title;
MarkupSearchResult (filter, ref title);
treeStore.AppendValues (nodeIter, title, subIssue, subIssue.Description);
}
}
}
}
treeviewInspections.ExpandAll ();
}