| 
6 | 6 |              xmlns:local="clr-namespace:Rubberduck.UI.UnitTesting"  | 
7 | 7 |              xmlns:unitTesting="clr-namespace:Rubberduck.UnitTesting"  | 
8 | 8 |              xmlns:controls="clr-namespace:Rubberduck.UI.Controls"  | 
 | 9 | +             xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase"  | 
9 | 10 |              Language="{UICulture}"  | 
10 | 11 |              mc:Ignorable="d"   | 
11 | 12 |              d:DesignHeight="255" d:DesignWidth="455"  | 
12 | 13 |              d:DataContext="{d:DesignInstance local:TestExplorerViewModel}">  | 
13 | 14 | 
 
  | 
14 | 15 |     <UserControl.Resources>  | 
15 |  | -        <unitTesting:TestOutcomeImageSourceConverter x:Key="OutcomeIconConverter" />  | 
 | 16 | +        <local:TestOutcomeImageSourceConverter x:Key="OutcomeIconConverter" />  | 
 | 17 | +        <local:TestResultToOutcomeTextConverter x:Key="OutcomeTextConverter" />  | 
16 | 18 |         <BooleanToVisibilityConverter x:Key="BoolToVisibility"/>  | 
 | 19 | +          | 
 | 20 | +        <CollectionViewSource x:Key="ResultsByModule" Source="{Binding Model.Tests}">  | 
 | 21 | +            <CollectionViewSource.SortDescriptions>  | 
 | 22 | +                <componentModel:SortDescription PropertyName="QualifiedMemberName.QualifiedModuleName.Name" />  | 
 | 23 | +            </CollectionViewSource.SortDescriptions>  | 
 | 24 | +            <CollectionViewSource.GroupDescriptions>  | 
 | 25 | +                <PropertyGroupDescription PropertyName="QualifiedMemberName.QualifiedModuleName.Name" />  | 
 | 26 | +            </CollectionViewSource.GroupDescriptions>  | 
 | 27 | +        </CollectionViewSource>  | 
 | 28 | + | 
 | 29 | +        <CollectionViewSource x:Key="ResultsByOutcome" Source="{Binding Model.Tests}">  | 
 | 30 | +            <CollectionViewSource.SortDescriptions>  | 
 | 31 | +                <componentModel:SortDescription PropertyName="Result.Outcome" />  | 
 | 32 | +            </CollectionViewSource.SortDescriptions>  | 
 | 33 | +            <CollectionViewSource.GroupDescriptions>  | 
 | 34 | +                <PropertyGroupDescription PropertyName="Result" Converter="{StaticResource OutcomeTextConverter}" />  | 
 | 35 | +            </CollectionViewSource.GroupDescriptions>  | 
 | 36 | +        </CollectionViewSource>  | 
 | 37 | +          | 
17 | 38 |     </UserControl.Resources>  | 
18 | 39 | 
 
  | 
19 | 40 |     <Grid>  | 
 | 
87 | 108 |             </Menu>  | 
88 | 109 |             <Separator />  | 
89 | 110 | 
 
  | 
 | 111 | +            <Menu>  | 
 | 112 | +                <MenuItem Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=GroupingGrid_GroupingStyle}">  | 
 | 113 | +                    <MenuItem.Icon>  | 
 | 114 | +                        <Image Height="16" Source="../../Resources/Microsoft/PNG/GroupBy_284_32.png" />  | 
 | 115 | +                    </MenuItem.Icon>  | 
 | 116 | + | 
 | 117 | +                    <MenuItem x:Name="GroupByOutcome" Style="{DynamicResource MenuItemStyle}" VerticalAlignment="Center"   | 
 | 118 | +                              Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=GroupingStyle_ByOutcome}" IsChecked="True"   | 
 | 119 | +                              IsCheckable="True" controls:MenuItemGroup.GroupName="GroupingStyle" />  | 
 | 120 | +                    <MenuItem x:Name="GroupByModule" Style="{DynamicResource MenuItemStyle}" VerticalAlignment="Center"   | 
 | 121 | +                              Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=GroupingStyle_ByLocation}"   | 
 | 122 | +                              IsCheckable="True" controls:MenuItemGroup.GroupName="GroupingStyle" />  | 
 | 123 | +                </MenuItem>  | 
 | 124 | +            </Menu>  | 
 | 125 | + | 
90 | 126 |             <Button Command="{Binding CopyResultsCommand}">  | 
91 | 127 |                 <Image Height="16" Source="../../Resources/document-copy.png" />  | 
92 | 128 |             </Button>  | 
 | 
112 | 148 | 
 
  | 
113 | 149 |         <Border Grid.Row="2" Padding="2">  | 
114 | 150 |             <ScrollViewer VerticalScrollBarVisibility="Visible">  | 
115 |  | -                <controls:GroupingGrid ItemsSource="{Binding Model.TestMethods}"  | 
116 |  | -                                       SelectedItem="{Binding SelectedTest}"  | 
117 |  | -                                       ShowGroupingItemCount="True">  | 
118 |  | -                    <DataGrid.Columns>  | 
119 |  | -                        <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=Outcome}">  | 
120 |  | -                            <DataGridTemplateColumn.CellTemplate>  | 
121 |  | -                                <DataTemplate DataType="unitTesting:TestMethod">  | 
122 |  | -                                    <Image Source="{Binding Result.Outcome, Converter={StaticResource OutcomeIconConverter}}" Height="16" />  | 
123 |  | -                                </DataTemplate>  | 
124 |  | -                            </DataGridTemplateColumn.CellTemplate>  | 
125 |  | -                        </DataGridTemplateColumn>  | 
126 |  | -                        <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_QualifiedModuleName}" Binding="{Binding QualifiedMemberName.QualifiedModuleName}" />  | 
127 |  | -                        <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_MethodName}" Binding="{Binding QualifiedMemberName.MemberName}" />  | 
128 |  | -                        <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_Message}" Binding="{Binding Result.Output}" Width="*" />  | 
129 |  | -                        <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_Duration}" Binding="{Binding Result.Duration, StringFormat={}{0}ms}" />  | 
130 |  | -                    </DataGrid.Columns>  | 
131 |  | -                </controls:GroupingGrid>  | 
 | 151 | +                <Grid>  | 
 | 152 | +                    <controls:GroupingGrid ItemsSource="{Binding Source={StaticResource ResultsByOutcome}}"  | 
 | 153 | +                                           SelectedItem="{Binding SelectedTest}"  | 
 | 154 | +                                           ShowGroupingItemCount="True"  | 
 | 155 | +                                           Visibility="{Binding IsChecked, ElementName=GroupByOutcome, Converter={StaticResource BoolToVisibility}}">  | 
 | 156 | +                        <DataGrid.Columns>  | 
 | 157 | +                            <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=Outcome}">  | 
 | 158 | +                                <DataGridTemplateColumn.CellTemplate>  | 
 | 159 | +                                    <DataTemplate DataType="unitTesting:TestMethod">  | 
 | 160 | +                                        <Image Source="{Binding Result.Outcome, Converter={StaticResource OutcomeIconConverter}}" Height="16" />  | 
 | 161 | +                                    </DataTemplate>  | 
 | 162 | +                                </DataGridTemplateColumn.CellTemplate>  | 
 | 163 | +                            </DataGridTemplateColumn>  | 
 | 164 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_QualifiedModuleName}" Binding="{Binding QualifiedMemberName.QualifiedModuleName}" />  | 
 | 165 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_MethodName}" Binding="{Binding QualifiedMemberName.MemberName}" />  | 
 | 166 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_Message}" Binding="{Binding Result.Output}" Width="*" />  | 
 | 167 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_Duration}" Binding="{Binding Result.Duration, StringFormat={}{0}ms}" />  | 
 | 168 | +                        </DataGrid.Columns>  | 
 | 169 | +                    </controls:GroupingGrid>  | 
 | 170 | +                      | 
 | 171 | +                    <controls:GroupingGrid ItemsSource="{Binding Source={StaticResource ResultsByModule}}"  | 
 | 172 | +                                           SelectedItem="{Binding SelectedTest}"  | 
 | 173 | +                                           ShowGroupingItemCount="True"  | 
 | 174 | +                                           Visibility="{Binding IsChecked, ElementName=GroupByModule, Converter={StaticResource BoolToVisibility}}">  | 
 | 175 | +                        <DataGrid.Columns>  | 
 | 176 | +                            <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=Outcome}">  | 
 | 177 | +                                <DataGridTemplateColumn.CellTemplate>  | 
 | 178 | +                                    <DataTemplate DataType="unitTesting:TestMethod">  | 
 | 179 | +                                        <Image Source="{Binding Result.Outcome, Converter={StaticResource OutcomeIconConverter}}" Height="16" />  | 
 | 180 | +                                    </DataTemplate>  | 
 | 181 | +                                </DataGridTemplateColumn.CellTemplate>  | 
 | 182 | +                            </DataGridTemplateColumn>  | 
 | 183 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_QualifiedModuleName}" Binding="{Binding QualifiedMemberName.QualifiedModuleName}" />  | 
 | 184 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_MethodName}" Binding="{Binding QualifiedMemberName.MemberName}" />  | 
 | 185 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_Message}" Binding="{Binding Result.Output}" Width="*" />  | 
 | 186 | +                            <DataGridTextColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=TestExplorer_Duration}" Binding="{Binding Result.Duration, StringFormat={}{0}ms}" />  | 
 | 187 | +                        </DataGrid.Columns>  | 
 | 188 | +                    </controls:GroupingGrid>  | 
 | 189 | +                </Grid>  | 
132 | 190 |             </ScrollViewer>  | 
133 | 191 |         </Border>  | 
134 | 192 |         <controls:BusyIndicator Grid.Row="2" Width="36" Height="36" Visibility="{Binding Model.IsBusy, Converter={StaticResource BoolToVisibility}}" />  | 
 | 
0 commit comments