60 lines
2.7 KiB
Markdown
60 lines
2.7 KiB
Markdown
---
|
|
source_files:
|
|
- DTS Viewer/DTS.Viewer.Modules/DTS.Viewer.ChartOptions/View/ChartOptionsView.xaml.cs
|
|
generated_at: "2026-04-16T11:18:57.795839+00:00"
|
|
model: "zai-org/GLM-5-FP8"
|
|
schema_version: 1
|
|
sha256: "2fdf05f68ae69d8d"
|
|
---
|
|
|
|
# Documentation: ChartOptionsView
|
|
|
|
## 1. Purpose
|
|
|
|
`ChartOptionsView` is a WPF view component implementing `IChartOptionsView` that provides user interface elements for configuring chart options. It serves as the visual layer for chart-related settings, specifically exposing available filter class options (CFC - likely "Channel Filter Classes" or "Calculated Filter Classes") to the UI for user selection.
|
|
|
|
---
|
|
|
|
## 2. Public Interface
|
|
|
|
### `ChartOptionsView()` (Constructor)
|
|
**Signature:** `public ChartOptionsView()`
|
|
|
|
Initializes the view component by calling `InitializeComponent()`, which loads the associated XAML layout.
|
|
|
|
### `AvailableCFC` (Property)
|
|
**Signature:** `public List<IFilterClass> AvailableCFC { get; }`
|
|
|
|
**Returns:** A `List<IFilterClass>` containing available filter class options.
|
|
|
|
**Behavior:** Creates a new instance of `AnalogSettingDefaults` on each access and returns its `FilterOptions` property. This property is read-only (getter only).
|
|
|
|
---
|
|
|
|
## 3. Invariants
|
|
|
|
- The `AvailableCFC` property will never return `null` (assuming `AnalogSettingDefaults.FilterOptions` never returns null, which is not verifiable from this source alone).
|
|
- The view always implements `IChartOptionsView` interface contract.
|
|
- `InitializeComponent()` must be called exactly once during construction (handled by WPF framework conventions).
|
|
|
|
---
|
|
|
|
## 4. Dependencies
|
|
|
|
### This module depends on:
|
|
- `DTS.Common.Interface` - Provides `IChartOptionsView` interface
|
|
- `DTS.Common.Interface.Sensors.SoftwareFilters` - Provides `IFilterClass` interface
|
|
- `DTS.SensorDB` - Provides `AnalogSettingDefaults` class
|
|
|
|
### What depends on this module:
|
|
- Not determinable from this source file alone. Consumers would be whatever module creates or references `ChartOptionsView` instances.
|
|
|
|
---
|
|
|
|
## 5. Gotchas
|
|
|
|
1. **Object allocation on every property access:** The `AvailableCFC` property instantiates a new `AnalogSettingDefaults` object every time it is read. If this property is data-bound in XAML and accessed frequently, it could create unnecessary object allocations and GC pressure. Consider whether this should be cached or lazy-loaded.
|
|
|
|
2. **FB 13120 reference:** The comment references "FB 13120" which appears to be an issue/feature tracking identifier. The context or resolution of this tracking item is not available from the source.
|
|
|
|
3. **Unknown interface contract:** The requirements of `IChartOptionsView` are not visible in this source, so it is unclear if `AvailableCFC` fulfills an interface member or is an additional public member. |