Files

48 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/Interface/TSRAIRGo/INavigationButtonInfo.cs
generated_at: "2026-04-16T12:08:44.958885+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9b7d291a6a236da0"
---
# Documentation: INavigationButtonInfo
## 1. Purpose
This module defines the `INavigationButtonInfo` interface, which specifies a contract for navigation button configuration objects within the TSRAIRGo subsystem. It provides a standardized abstraction for button metadata—including identity, display text, tooltip, enabled state, and border visibility—allowing consumers to interact with navigation buttons polymorphically without depending on concrete implementations.
## 2. Public Interface
### Interface: `INavigationButtonInfo`
**Namespace:** `DTS.Common.Interface.TSRAIRGo`
| Property | Type | Access | Description |
|----------|------|--------|-------------|
| `Id` | `NavigationButtonId` | Read-only | Returns the unique identifier for the navigation button. |
| `Text` | `string` | Read/Write | Gets or sets the display text for the button. |
| `Tooltip` | `string` | Read/Write | Gets or sets the tooltip text shown on hover. |
| `Enabled` | `bool` | Read/Write | Gets or sets whether the button is interactive. |
| `ShowBorder` | `bool` | Read/Write | Gets or sets whether the button border is visible. |
## 3. Invariants
- `Id` is immutable after construction (read-only accessor only).
- No null validation or constraint enforcement is visible in the interface definition; implementations may impose additional constraints.
- The relationship between `Id` and other properties (e.g., whether `Id` determines default `Text`) is not specified in this interface.
## 4. Dependencies
### This module depends on:
- `DTS.Common.Enums.TSRAIRGo.NavigationButtonId` — An enumeration type used to identify navigation buttons. The actual enum values are defined externally.
### What depends on this module:
- **Unknown from source alone.** No consumers or implementations are visible in this file.
## 5. Gotchas
- **No null constraints visible:** The interface does not indicate whether `Text` or `Tooltip` may be null or empty. Implementations may handle these cases differently.
- **Mutable state:** All properties except `Id` are read/write, implying implementations are expected to support runtime modification of button state.
- **Enum dependency:** The `NavigationButtonId` enum is imported but not defined here; its values and structure must be located in `DTS.Common.Enums.TSRAIRGo`.