|
6 | 6 | xmlns:local="clr-namespace:Rubberduck.UI.UnitTesting"
|
7 | 7 | xmlns:vm="clr-namespace:Rubberduck.UI.UnitTesting.ViewModels"
|
8 | 8 | xmlns:controls="clr-namespace:Rubberduck.UI.Controls"
|
9 |
| - xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase" |
10 | 9 | xmlns:themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
|
11 |
| - xmlns:converters="clr-namespace:Rubberduck.UI.Converters" |
| 10 | + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" |
12 | 11 | Language="{UICulture}"
|
13 | 12 | mc:Ignorable="d"
|
14 | 13 | d:DesignHeight="255" d:DesignWidth="455"
|
|
21 | 20 | <BitmapImage x:Key="RunImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/control.png" />
|
22 | 21 | <BitmapImage x:Key="RunAllTestsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask--arrow.png" />
|
23 | 22 | <BitmapImage x:Key="RunNotRunTestsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/question-white.png" />
|
| 23 | + <BitmapImage x:Key="RunSingleTestImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask.png" /> |
24 | 24 | <BitmapImage x:Key="RunSelectedTestImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask--arrow.png" />
|
25 |
| - <BitmapImage x:Key="RunSelectedCategoryImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask--arrow.png" /> |
| 25 | + <BitmapImage x:Key="RunSelectedGroupImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask-tag.png" /> |
26 | 26 | <BitmapImage x:Key="RunInconclusiveTestsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask--exclamation.png" />
|
27 | 27 | <BitmapImage x:Key="RunPassedTestsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/tick-circle.png" />
|
28 | 28 | <BitmapImage x:Key="RunFailedTestsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/cross-circle.png" />
|
29 | 29 | <BitmapImage x:Key="RepeatLastRunImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/arrow-repeat.png" />
|
30 | 30 |
|
| 31 | + <BitmapImage x:Key="ResetResultsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask-undo.png" /> |
| 32 | + |
31 | 33 | <BitmapImage x:Key="AddIcon" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask--plus.png" />
|
32 | 34 | <BitmapImage x:Key="AddTestMethodIcon" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask.png" />
|
33 | 35 | <BitmapImage x:Key="AddErrorTestMethodIcon" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/flask--exclamation.png" />
|
|
37 | 39 | <BitmapImage x:Key="GroupByCategoryImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/tag-label-gray.png" />
|
38 | 40 |
|
39 | 41 | <BitmapImage x:Key="CopyResultsImage" UriSource="pack://application:,,,/Rubberduck.Resources;component/Icons/Fugue/document-copy.png" />
|
40 |
| - |
| 42 | + |
41 | 43 | <local:TestOutcomeImageSourceConverter x:Key="OutcomeIconConverter" />
|
42 | 44 | <BooleanToVisibilityConverter x:Key="BoolToVisibility"/>
|
43 | 45 |
|
|
255 | 257 | <Separator />
|
256 | 258 |
|
257 | 259 | <Menu Background="Transparent">
|
258 |
| - <MenuItem VerticalAlignment="Center" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunButtonText}"> |
| 260 | + <MenuItem VerticalAlignment="Center" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuButtonText}"> |
259 | 261 | <MenuItem.Icon>
|
260 | 262 | <Image Source="{StaticResource RunImage}" />
|
261 | 263 | </MenuItem.Icon>
|
262 |
| - <MenuItem Command="{Binding RunAllTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunAllTests}"> |
| 264 | + <MenuItem Command="{Binding RunAllTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuAllTests}"> |
263 | 265 | <MenuItem.Icon>
|
264 | 266 | <Image Source="{StaticResource RunAllTestsImage}" />
|
265 | 267 | </MenuItem.Icon>
|
266 | 268 | </MenuItem>
|
267 | 269 | <Separator />
|
268 |
| - <MenuItem Command="{Binding RunNotExecutedTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunNotRunTests}" > |
| 270 | + <MenuItem Command="{Binding RunNotExecutedTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuNotRunTests}" > |
269 | 271 | <MenuItem.Icon>
|
270 | 272 | <Image Source="{StaticResource RunNotRunTestsImage}" />
|
271 | 273 | </MenuItem.Icon>
|
272 | 274 | </MenuItem>
|
273 | 275 | <MenuItem Command="{Binding RunSelectedTestsCommand}"
|
274 | 276 | CommandParameter="{Binding ElementName=TestGrid, Path=SelectedItems}"
|
275 |
| - Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer ,Key=TestExplorer_RunSelectedTests}" > |
| 277 | + Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer ,Key=TestExplorer_RunMenuSelectedTests}" > |
276 | 278 | <MenuItem.Icon>
|
277 | 279 | <Image Source="{StaticResource RunSelectedTestImage}" />
|
278 | 280 | </MenuItem.Icon>
|
279 | 281 | </MenuItem>
|
280 |
| - <MenuItem Command="{Binding RunInconclusiveTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunInconclusiveTests}" > |
| 282 | + <MenuItem Command="{Binding RunInconclusiveTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuInconclusiveTests}" > |
281 | 283 | <MenuItem.Icon>
|
282 | 284 | <Image Source="{StaticResource RunInconclusiveTestsImage}" />
|
283 | 285 | </MenuItem.Icon>
|
284 | 286 | </MenuItem>
|
285 |
| - <MenuItem Command="{Binding RunPassedTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunPassedTests}" > |
| 287 | + <MenuItem Command="{Binding RunPassedTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuPassedTests}" > |
286 | 288 | <MenuItem.Icon>
|
287 | 289 | <Image Source="{StaticResource RunPassedTestsImage}" />
|
288 | 290 | </MenuItem.Icon>
|
289 | 291 | </MenuItem>
|
290 |
| - <MenuItem Command="{Binding RunFailedTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunFailedTests}"> |
| 292 | + <MenuItem Command="{Binding RunFailedTestsCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuFailedTests}"> |
291 | 293 | <MenuItem.Icon>
|
292 | 294 | <Image Source="{StaticResource RunFailedTestsImage}" />
|
293 | 295 | </MenuItem.Icon>
|
294 | 296 | </MenuItem>
|
295 | 297 | <Separator />
|
296 |
| - <MenuItem Command="{Binding RepeatLastRunCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunLastRunTests}"> |
| 298 | + <MenuItem Command="{Binding RepeatLastRunCommand}" Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_RunMenuLastRunTests}"> |
297 | 299 | <MenuItem.Icon>
|
298 | 300 | <Image Source="{StaticResource RepeatLastRunImage}" />
|
299 | 301 | </MenuItem.Icon>
|
|
303 | 305 |
|
304 | 306 | <Separator />
|
305 | 307 |
|
| 308 | + <Button Command="{Binding ResetResultsCommand}"> |
| 309 | + <Image Source="{StaticResource ResetResultsImage}" /> |
| 310 | + <Button.ToolTip> |
| 311 | + <TextBlock Text="{Resx ResxName=Rubberduck.Resources.CodeExplorer.CodeExplorerUI, Key=TestExplorer_ResetButtonTooltip}" /> |
| 312 | + </Button.ToolTip> |
| 313 | + </Button> |
| 314 | + |
| 315 | + <Separator /> |
| 316 | + |
306 | 317 | <Menu Background="Transparent">
|
307 | 318 | <MenuItem VerticalAlignment="Center" Header="{Resx ResxName=Rubberduck.Resources.RubberduckUI, Key=Add}">
|
308 | 319 | <MenuItem.Icon>
|
|
378 | 389 | <Grid>
|
379 | 390 | <controls:GroupingGrid x:Name="TestGrid"
|
380 | 391 | ItemsSource="{Binding Tests}"
|
381 |
| - SelectedItem="{Binding SelectedTest}" |
382 | 392 | SelectionMode="Extended"
|
383 | 393 | ShowGroupingItemCount="True">
|
384 | 394 | <DataGrid.Columns>
|
|
389 | 399 | </DataTemplate>
|
390 | 400 | </DataGridTemplateColumn.CellTemplate>
|
391 | 401 | </DataGridTemplateColumn>
|
392 |
| - <DataGridTextColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_QualifiedModuleName}" Binding="{Binding QualifiedName.QualifiedModuleName}" /> |
393 |
| - <DataGridTextColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_MethodName}" Binding="{Binding Method.Declaration.IdentifierName}" /> |
394 |
| - <DataGridTextColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_CategoryName}" Binding="{Binding Method.Category.Name}" /> |
395 |
| - <DataGridTextColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_Message}" Binding="{Binding Result.Output}" Width="*" /> |
396 |
| - <DataGridTextColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_Duration}" Binding="{Binding Result.Duration, StringFormat={}{0}ms}" /> |
| 402 | + <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_QualifiedModuleName}"> |
| 403 | + <DataGridTemplateColumn.CellTemplate> |
| 404 | + <DataTemplate DataType="vm:TestMethodViewModel"> |
| 405 | + <TextBlock></TextBlock> |
| 406 | + </DataTemplate> |
| 407 | + </DataGridTemplateColumn.CellTemplate> |
| 408 | + </DataGridTemplateColumn> |
| 409 | + <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_MethodName}"> |
| 410 | + <DataGridTemplateColumn.CellTemplate> |
| 411 | + <DataTemplate DataType="vm:TestMethodViewModel"> |
| 412 | + <TextBlock Text="{Binding Method.Declaration.IdentifierName}" /> |
| 413 | + </DataTemplate> |
| 414 | + </DataGridTemplateColumn.CellTemplate> |
| 415 | + </DataGridTemplateColumn> |
| 416 | + <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_CategoryName}"> |
| 417 | + <DataGridTemplateColumn.CellTemplate> |
| 418 | + <DataTemplate DataType="vm:TestMethodViewModel"> |
| 419 | + <TextBlock Text="{Binding Method.Category.Name}" /> |
| 420 | + </DataTemplate> |
| 421 | + </DataGridTemplateColumn.CellTemplate> |
| 422 | + </DataGridTemplateColumn> |
| 423 | + <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_Message}"> |
| 424 | + <DataGridTemplateColumn.CellTemplate> |
| 425 | + <DataTemplate DataType="vm:TestMethodViewModel"> |
| 426 | + <TextBlock Text="{Binding Result.Output}" /> |
| 427 | + </DataTemplate> |
| 428 | + </DataGridTemplateColumn.CellTemplate> |
| 429 | + </DataGridTemplateColumn> |
| 430 | + <DataGridTemplateColumn Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_Duration}"> |
| 431 | + <DataGridTemplateColumn.CellTemplate> |
| 432 | + <DataTemplate DataType="vm:TestMethodViewModel"> |
| 433 | + <TextBlock Text="{Binding Result.Duration, StringFormat={}{0}ms}" /> |
| 434 | + </DataTemplate> |
| 435 | + </DataGridTemplateColumn.CellTemplate> |
| 436 | + </DataGridTemplateColumn> |
397 | 437 | </DataGrid.Columns>
|
| 438 | + <DataGrid.ContextMenu> |
| 439 | + <ContextMenu> |
| 440 | + <MenuItem Command="{Binding RunSingleTestCommand}" |
| 441 | + Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_ContextMenuRunSingle}"> |
| 442 | + <MenuItem.Icon> |
| 443 | + <Image Source="{StaticResource RunSingleTestImage}" /> |
| 444 | + </MenuItem.Icon> |
| 445 | + </MenuItem> |
| 446 | + <MenuItem CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItems}" |
| 447 | + Command="{Binding RunSelectedTestsCommand}" |
| 448 | + Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_ContextMenuRunSelected}"> |
| 449 | + <MenuItem.Icon> |
| 450 | + <Image Source="{StaticResource RunSelectedTestImage}" /> |
| 451 | + </MenuItem.Icon> |
| 452 | + </MenuItem> |
| 453 | + <MenuItem Command="{Binding RunSelectedGroupCommand}" |
| 454 | + Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_ContextMenuRunGroup}"> |
| 455 | + <MenuItem.Icon> |
| 456 | + <Image Source="{StaticResource RunSelectedGroupImage}" /> |
| 457 | + </MenuItem.Icon> |
| 458 | + </MenuItem> |
| 459 | + <MenuItem Command="{Binding RunAllTestsCommand}" |
| 460 | + Header="{Resx ResxName=Rubberduck.Resources.UnitTesting.TestExplorer, Key=TestExplorer_ContextMenuRunAll}"> |
| 461 | + <MenuItem.Icon> |
| 462 | + <Image Source="{StaticResource RunAllTestsImage}" /> |
| 463 | + </MenuItem.Icon> |
| 464 | + </MenuItem> |
| 465 | + </ContextMenu> |
| 466 | + </DataGrid.ContextMenu> |
| 467 | + <i:Interaction.Behaviors> |
| 468 | + <local:TestExplorerRowMouseOverBehavior MouseOverTest="{Binding MouseOverTest, Mode=TwoWay}" MouseOverGroup="{Binding MouseOverGroup, Mode=TwoWay}" /> |
| 469 | + </i:Interaction.Behaviors> |
398 | 470 | </controls:GroupingGrid>
|
399 | 471 | </Grid>
|
400 | 472 | </Border>
|
|
0 commit comments