--- 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`.