Files
DP44/docs/ai/DTS Viewer/DTS.Viewer.Reports/DTS.Viewer.PSDReport.md

142 lines
4.7 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- DTS Viewer/DTS.Viewer.Reports/DTS.Viewer.PSDReport/PSDReportModule.cs
- DTS Viewer/DTS.Viewer.Reports/DTS.Viewer.PSDReport/PSDReportSession.cs
- DTS Viewer/DTS.Viewer.Reports/DTS.Viewer.PSDReport/Bootstrapper.cs
generated_at: "2026-04-17T15:54:21.888764+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "f2871164a32bda62"
---
# PSDReport Module Documentation
## 1. Purpose
The `DTS.Viewer.PSDReport` module is a Prism-based modular component within the DTS Viewer system responsible for providing PSD (Power Spectral Density) report visualization functionality. It implements the `IModule` interface for Prism modularity, manages its own bootstrapping lifecycle for both standalone and integrated modes, and integrates with the plugin architecture to discover and load additional modules dynamically. The module registers its views and view models with the Unity container and participates in the region-based UI composition system.
---
## 2. Public Interface
### PSDReportModule (PSDReportModule.cs)
**Class Declaration:**
```csharp
[Module(ModuleName = "PSDReport")]
public class PSDReportModule : IPSDReportModule
```
**Properties:**
- `SessionStarted` (bool, read-only) - Indicates whether a session has been started via `StartSession()`.
**Constructor:**
```csharp
public PSDReportModule(IUnityContainer unityContainer)
```
Accepts an injected `IUnityContainer` instance.
**Methods:**
```csharp
public void Initialize()
```
Registers `IPSDReportModule` to `PSDReportModule` with `ContainerControlledLifetimeManager` (singleton lifetime).
```csharp
public void StartSession()
```
Resolves `IEventAggregator`, publishes a `LoadViewModulEvent` with a new `LoadViewModulArg`, and sets `SessionStarted` to `true`.
```csharp
public void RegisterTypes(IContainerRegistry containerRegistry)
```
Calls `Initialize()`.
```csharp
public void OnInitialized(IContainerProvider containerProvider)
```
Empty implementation (no initialization logic executed).
---
### PSDReportModuleNameAttribute (PSDReportModule.cs)
**Class Declaration:**
```csharp
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
public class PSDReportModuleNameAttribute : TextAttribute
```
**Properties:**
- `AssemblyName` (string, read-only) - Returns `AssemblyNames.PSDReport.ToString()`.
**Methods:**
```csharp
public override Type GetAttributeType() // Returns typeof(TextAttribute)
public override string GetAssemblyName() // Returns AssemblyName
```
---
### PSDReportModuleImageAttribute (PSDReportModule.cs)
**Class Declaration:**
```csharp
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
public class PSDReportModuleImageAttribute : ImageAttribute
```
**Properties:**
- `AssemblyImage` (BitmapImage, read-only) - Returns image loaded via `AssemblyInfo.GetImage(AssemblyNames.PSDReport.ToString())`.
- `AssemblyName` (string, read-only) - Returns `AssemblyNames.PSDReport.ToString()`.
- `AssemblyGroup` (string, read-only) - Returns `eAssemblyGroups.Viewer.ToString()`.
- `AssemblyRegion` (eAssemblyRegion, read-only) - Returns `eAssemblyRegion.PSDReportRegion`.
**Methods:**
```csharp
public override Type GetAttributeType() // Returns typeof(ImageAttribute)
public override BitmapImage GetAssemblyImage() // Returns AssemblyImage
public override string GetAssemblyName() // Returns AssemblyName
public override string GetAssemblyGroup() // Returns AssemblyGroup
public override eAssemblyRegion GetAssemblyRegion() // Returns AssemblyRegion
```
---
### PSDReportSession (PSDReportSession.cs)
**Class Declaration:**
```csharp
public class PSDReportSession
```
**Properties:**
- `Container` (IUnityContainer, read-only) - Set after `CreateSession()` is called.
- `_serviceLocator` (IServiceLocator, read-only) - Set after `CreateSession()` is called.
- `_eventAggregator` (IEventAggregator, read-only) - Set after `CreateSession()` is called.
- `_regionManager` (IRegionManager, read-only) - Set after `CreateSession()` is called.
- `CustomConfigPath` (string, read/write) - Path to custom configuration file.
**Methods:**
```csharp
public void CreateSession(bool standalone, string customConfigPath = "")
```
Creates the bootstrapper, resolves core services (`IEventAggregator`, `IServiceLocator`, `IRegionManager`), loads plugins via `PluginManager`, and publishes the plugin list via `AssemblyListNotificationViewer` event.
```csharp
public void Terminate()
```
Empty implementation. Intended for shutdown cleanup per IComponent implementation.
---
### Bootstrapper (Bootstrapper.cs)
**Class Declaration:**
```csharp
public class Bootstrapper : UnityBootstrapper
```
**Properties:**
- `Standalone` (bool, read/write) - Indicates whether the application runs in standalone mode.
- `CustomConfigPath` (string, read/write) - Path to custom