112 lines
6.6 KiB
Markdown
112 lines
6.6 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.TestSummaryList/ViewModel/TestSummaryViewModel.cs
|
||
|
|
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.TestSummaryList/ViewModel/TestSummaryViewListModel.cs
|
||
|
|
generated_at: "2026-04-17T15:56:32.359697+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "170b78c49a4abb43"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: TestSummaryList ViewModels
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module provides two ViewModel implementations (`TestSummaryViewModel` and `TestSummaryViewListModel`) for managing and displaying test summary data within the DTS Viewer application. Both classes implement `ITestSummaryListViewModel` and serve as intermediaries between test summary data models and their associated views, handling user interactions, event aggregation for cross-component communication, data filtering, and sorting. The module exists to support the Prism-based MVVM architecture, coordinating test summary selection, folder/file data loading, and notification publishing to other application components.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### TestSummaryViewModel
|
||
|
|
|
||
|
|
**Constructor:**
|
||
|
|
```csharp
|
||
|
|
public TestSummaryViewModel(ITestSummaryListView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)
|
||
|
|
```
|
||
|
|
Initializes the ViewModel, sets the view's DataContext, creates interaction requests, and subscribes to `RaiseNotification` and `DataFolderChangedEvent` events.
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
|
||
|
|
| Method | Signature | Description |
|
||
|
|
|--------|-----------|-------------|
|
||
|
|
| `Initialize` | `void Initialize()` | Empty override. |
|
||
|
|
| `Initialize` | `void Initialize(object parameter)` | Casts parameter to `IBaseWindowModel` and assigns to `Parent`. |
|
||
|
|
| `Activated` | `void Activated()` | Throws `NotImplementedException`. |
|
||
|
|
| `Cleanup` | `void Cleanup()` | Throws `NotImplementedException`. |
|
||
|
|
| `CleanupAsync` | `Task CleanupAsync()` | Throws `NotImplementedException`. |
|
||
|
|
| `InitializeAsync` | `Task InitializeAsync()` | Throws `NotImplementedException`. |
|
||
|
|
| `InitializeAsync` | `Task InitializeAsync(object parameter)` | Throws `NotImplementedException`. |
|
||
|
|
| `PublishSelectedTestSummaryList` | `void PublishSelectedTestSummaryList()` | Publishes `TestSummaryChangeNotification` and `TestSelectedChangedEvent` events with current selection. |
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
|
||
|
|
| Property | Type | Description |
|
||
|
|
|----------|------|-------------|
|
||
|
|
| `TestSummaryListView` | `ITestSummaryListView` | The associated view instance. |
|
||
|
|
| `NotificationRequest` | `InteractionRequest<Notification>` | Prism interaction request for notifications. |
|
||
|
|
| `ConfirmationRequest` | `InteractionRequest<Confirmation>` | Prism interaction request for confirmations. |
|
||
|
|
| `ContextNavigationRegion` | `object` | Gets/sets content of `TestListRegion` on the view. |
|
||
|
|
| `SelectedTestSummary` | `TestSummary` | Currently selected single test summary. |
|
||
|
|
| `SelectedTestSummaryList` | `List<ITestSummary>` | List of selected test summaries. |
|
||
|
|
| `TestSummaryList` | `ObservableCollection<ITestSummary>` | Collection of all test summaries. |
|
||
|
|
| `HeaderInfo` | `string` | Returns `"TestSummaryRegion"`. |
|
||
|
|
| `IsBusy` | `bool` | Busy indicator state. |
|
||
|
|
| `IsDirty` | `bool` | Dirty state flag. |
|
||
|
|
| `IsNavigationIncluded` | `bool` | Navigation inclusion flag. |
|
||
|
|
|
||
|
|
**Events:**
|
||
|
|
- `PropertyChanged` - Custom `PropertyChangedEventHandler` (hides base implementation with `new`).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### TestSummaryViewListModel
|
||
|
|
|
||
|
|
**Constructor:**
|
||
|
|
```csharp
|
||
|
|
public TestSummaryViewListModel(ITestSummaryListView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)
|
||
|
|
```
|
||
|
|
Initializes the ViewModel, sets the view's DataContext, creates interaction requests, and stores dependencies.
|
||
|
|
|
||
|
|
**Methods:**
|
||
|
|
|
||
|
|
| Method | Signature | Description |
|
||
|
|
|--------|-----------|-------------|
|
||
|
|
| `Initialize` | `void Initialize()` | Empty override. |
|
||
|
|
| `Initialize` | `void Initialize(object parameter)` | Sets `Parent`, initializes `FilterView`, attaches collection changed handlers, and calls `Subscribe()`. |
|
||
|
|
| `OnFilterChanged` | `void OnFilterChanged(FilterParameterArgs args)` | Filters `FilteredTestSummaryList` based on `SetupName`, `Id`, or `Description` containing the parameter string. |
|
||
|
|
| `Activated` | `void Activated()` | Publishes empty `FilterParameterChangedEvent` to reset filter. |
|
||
|
|
| `Cleanup` | `void Cleanup()` | Clears all collections, resets `SelectedTestSummary`, and publishes selection changes. |
|
||
|
|
| `PublishSelectedTestSummaryList` | `void PublishSelectedTestSummaryList()` | Publishes `TestSummaryChangeNotification`, `TestSummaryCountNotification`, and `ResetZoomChangedEvent`. |
|
||
|
|
| `RefreshDataFolder` | `void RefreshDataFolder()` | Publishes `DataFolderChangedEvent` via dispatcher. |
|
||
|
|
| `SelectDataFolder` | `void SelectDataFolder()` | Opens `OpenFileDialog` for .dts files and publishes `DataFileSelectedEvent`. |
|
||
|
|
| `SortTestSummaryList` | `void SortTestSummaryList()` | Sorts `FilteredTestSummaryList` based on `SelectedSortIndex`. |
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
|
||
|
|
| Property | Type | Description |
|
||
|
|
|----------|------|-------------|
|
||
|
|
| `FilterView` | `IFilterView` | Resolved filter view instance. |
|
||
|
|
| `View` | `ITestSummaryListView` | The associated view instance. |
|
||
|
|
| `NotificationRequest` | `InteractionRequest<Notification>` | Prism interaction request for notifications. |
|
||
|
|
| `ConfirmationRequest` | `InteractionRequest<Confirmation>` | Prism interaction request for confirmations. |
|
||
|
|
| `ContextNavigationRegion` | `object` | Gets/sets DataContext of `TestListRegion` on the view. |
|
||
|
|
| `IsFilterEnabled` | `bool` | Indicates if filtering is available (true when list has items). |
|
||
|
|
| `SelectedTestSummary` | `TestSummary` | Currently selected single test summary. |
|
||
|
|
| `SelectedTestSummaryList` | `List<ITestSummary>` | List of selected test summaries. |
|
||
|
|
| `TestSummaryList` | `ObservableCollection<ITestSummary>` | Full collection; setter updates `IsFilterEnabled` and `FilteredTestSummaryList`. |
|
||
|
|
| `FilteredTestSummaryList` | `ObservableCollection<ITestSummary>` | Filtered/sorted view of test summaries. |
|
||
|
|
| `HeaderInfo` | `string` | Returns `"TestSummaryRegion"`. |
|
||
|
|
| `IsBusy` | `bool` | Busy indicator state. |
|
||
|
|
| `IsDirty` | `bool` | Dirty state flag. |
|
||
|
|
| `IsNavigationIncluded` | `bool` | Navigation inclusion flag. |
|
||
|
|
| `SelectedDataFolder` | `string` | Selected folder path; setter publishes `DataFolderChangedEvent`. |
|
||
|
|
| `SelectedDataFile` | `string` | Selected file path; setter publishes `DataFolderChangedEvent`. |
|
||
|
|
| `SortableAttributes` | `List<string>` | Localized list of sortable attribute names. |
|
||
|
|
| `SelectedSortIndex` | `int` | Index of selected sort; setter triggers `SortTestSummaryList()`. |
|
||
|
|
|
||
|
|
**Commands:**
|
||
|
|
|
||
|
|
| Command | Type | Description |
|
||
|
|
|---------|------|-------------|
|
||
|
|
| `Refresh
|