55 lines
4.4 KiB
Markdown
55 lines
4.4 KiB
Markdown
|
|
---
|
|||
|
|
source_files:
|
|||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsView.cs
|
|||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsViewModel.cs
|
|||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsMenuView.cs
|
|||
|
|
- Common/DTS.CommonCore/Interface/LabDetails/ILabDetailsMenuViewModel.cs
|
|||
|
|
generated_at: "2026-04-16T02:18:08.768984+00:00"
|
|||
|
|
model: "Qwen/Qwen3-Coder-Next-FP8"
|
|||
|
|
schema_version: 1
|
|||
|
|
sha256: "9b8d7157407e874e"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# LabDetails
|
|||
|
|
|
|||
|
|
## Documentation: Lab Details Module Interfaces
|
|||
|
|
|
|||
|
|
### 1. Purpose
|
|||
|
|
This module defines the core interface contracts for the *Lab Details* feature within the DTS application. It establishes the separation of concerns between view and view model layers for both the main lab details display and its associated ribbon-based menu UI, following the MVVM (Model-View-ViewModel) pattern. The interfaces `ILabDetailsView`, `ILabDetailsViewModel`, `ILabDetailsMenuView`, and `ILabDetailsMenuViewModel` collectively provide the structural foundation for implementing UI components that present and manage laboratory-specific data and actions, with the menu view specifically integrating with the application’s ribbon control system.
|
|||
|
|
|
|||
|
|
### 2. Public Interface
|
|||
|
|
|
|||
|
|
- **`ILabDetailsView`**
|
|||
|
|
*Signature:* `public interface ILabDetailsView : IBaseView`
|
|||
|
|
*Description:* Represents the view layer for the primary lab details UI. Inherits from `IBaseView`, implying it adheres to the base view contract (e.g., binding context, lifecycle hooks), but no additional members are defined in this source.
|
|||
|
|
|
|||
|
|
- **`ILabDetailsViewModel`**
|
|||
|
|
*Signature:* `public interface ILabDetailsViewModel : IBaseViewModel`
|
|||
|
|
*Description:* Represents the view model for the primary lab details UI. Inherits from `IBaseViewModel`, implying it provides core view model capabilities (e.g., data binding, command exposure), but no additional members are defined in this source.
|
|||
|
|
|
|||
|
|
- **`ILabDetailsMenuView`**
|
|||
|
|
*Signature:* `public interface ILabDetailsMenuView : IRibbonView`
|
|||
|
|
*Description:* Represents the view layer for the ribbon menu associated with lab details. Inherits from `IRibbonView`, indicating it integrates with the ribbon control infrastructure (e.g., exposes ribbon tabs, groups, or buttons).
|
|||
|
|
|
|||
|
|
- **`ILabDetailsMenuViewModel`**
|
|||
|
|
*Signature:* `public interface ILabDetailsMenuViewModel : IRibbonViewModel`
|
|||
|
|
*Description:* Represents the view model for the ribbon menu associated with lab details. Inherits from `IRibbonViewModel`, implying it manages ribbon-specific state and commands (e.g., ribbon tab activation, button enablement), but no additional members are defined in this source.
|
|||
|
|
|
|||
|
|
### 3. Invariants
|
|||
|
|
- All four interfaces are *marker interfaces*—they carry no explicit members beyond their base interface inheritance.
|
|||
|
|
- `ILabDetailsView` and `ILabDetailsViewModel` must be used in conjunction as a view/view model pair, conforming to the `IBaseView`/`IBaseViewModel` contract.
|
|||
|
|
- `ILabDetailsMenuView` and `ILabDetailsMenuViewModel` must be used in conjunction as a view/view model pair, conforming to the `IRibbonView`/`IRibbonViewModel` contract.
|
|||
|
|
- No additional validation rules, ordering guarantees, or state invariants are specified in the provided sources.
|
|||
|
|
|
|||
|
|
### 4. Dependencies
|
|||
|
|
- **Dependencies *of* this module:**
|
|||
|
|
- `DTS.Common.Base` (for `IBaseView`, `IBaseViewModel`)
|
|||
|
|
- `DTS.Common.RibbonControl` (for `IRibbonView`, `IRibbonViewModel`)
|
|||
|
|
- **Dependencies *on* this module:**
|
|||
|
|
- Not determinable from source alone. These interfaces are likely consumed by concrete implementations in other modules (e.g., UI project(s) or lab-specific feature modules), but no such references appear in the provided files.
|
|||
|
|
|
|||
|
|
### 5. Gotchas
|
|||
|
|
- **No behavior defined:** All interfaces are empty (marker interfaces). Actual functionality (e.g., data properties, commands, event handlers) must be defined in their concrete implementations or in the base interfaces (`IBaseView`, `IBaseViewModel`, `IRibbonView`, `IRibbonViewModel`).
|
|||
|
|
- **Namespace ambiguity:** All interfaces reside in `DTS.Common.Interface`, but the `RibbonControl`-dependent interfaces (`ILabDetailsMenuView`, `ILabDetailsMenuViewModel`) rely on types from `DTS.Common.RibbonControl`. Ensure the ribbon control module is available at compile/runtime.
|
|||
|
|
- **Potential for confusion:** The naming (`LabDetailsView` vs. `LabDetailsMenuView`) suggests a hierarchical relationship, but the interfaces themselves do not enforce or indicate any composition or ownership between them.
|
|||
|
|
- **None identified from source alone.**
|