in src/AccessibilityInsights.SharedUx/ViewModels/HierarchyNodeViewModel.cs [302:358]
private void UpdateIconInfoAndAutomationName(bool isLiveMode)
{
this.IconVisibility = Visibility.Collapsed;
string automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameDefaultFormat;
if (!isLiveMode)
{
if (this.Element.TestStatus == ScanStatus.Fail)
{
this.IconBack = FabricIcon.AlertSolid;
this.IconSizeBack = NormalIconSizeBack;
this.IconVisibility = Visibility.Visible;
automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameFailedResultsFormat;
}
else if(this.Element.TestStatus == ScanStatus.ScanNotSupported)
{
this.IconBack = FabricIcon.MapDirections;
this.IconSizeBack = NormalIconSizeBack;
this.IconVisibility = Visibility.Visible;
automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameNotSupportResultsFormat;
}
else if (this.Element.TestStatus == ScanStatus.Uncertain && this.ShowUncertain)
{
this.IconBack = FabricIcon.IncidentTriangle;
this.IconSizeBack = NormalIconSizeBack;
this.IconVisibility = Visibility.Visible;
automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameUncertainResultsFormat;
}
else
{
// no result or all pass, we need to use aggregated data.
this.IconBack = FabricIcon.DOM;
this.IconSizeBack = TreeIconSizeBack;
if (this.AggregateStatusCounts[(int)ScanStatus.Fail] > 0)
{
this.IconFront = FabricIcon.AlertSolid;
automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameFailedResultsInDescendentsFormat;
}
else if (this.AggregateStatusCounts[(int)ScanStatus.Uncertain] > 0 && this.ShowUncertain)
{
this.IconFront = FabricIcon.IncidentTriangle;
automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameUncertainResultsInDescendentsFormat;
}
else
{
this.IconBack = default(FabricIcon);
automationNameFormat = Resources.HierarchyNodeViewModel_AutomationNameNoFailedOrUncertainResultsInDescendentsFormat;
}
this.IconVisibility = this.IsExpanded == false && this.IconBack != default(FabricIcon) ? Visibility.Visible : Visibility.Collapsed;
}
}
this.AutomationName = string.Format(CultureInfo.InvariantCulture, automationNameFormat,
this.Element.Glimpse);
}