Files
DP44/docs/ai/Common/DTS.CommonCore/Interface/TSRAIRGo.md
2026-04-17 14:55:32 -04:00

2.9 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/TSRAIRGo/INavigationButtonInfo.cs
2026-04-17T16:38:34.293837+00:00 zai-org/GLM-5-FP8 1 dc9e7eb526d7d3d9

Documentation: INavigationButtonInfo

1. Purpose

INavigationButtonInfo defines a data contract for navigation button metadata within the TSRAIRGo subsystem. It abstracts the properties required to render and control a navigation button—specifically its identity, display text, tooltip, enabled state, and border visibility. This interface allows consumers to interact with navigation button configuration without depending on concrete implementations.

2. Public Interface

Member Signature Description
Id NavigationButtonId Id { get; } Read-only property that returns the unique identifier for the navigation button. Uses the NavigationButtonId enum type.
Text string Text { get; set; } Read/write property for the button's display text.
Tooltip string Tooltip { get; set; } Read/write property for the button's tooltip text.
Enabled bool Enabled { get; set; } Read/write property indicating whether the button is interactive.
ShowBorder bool ShowBorder { get; set; } Read/write property controlling whether the button renders with a visible border.

3. Invariants

  • Id immutability: The Id property is read-only; it cannot be changed after an implementing object is constructed. Implementing classes must ensure this value is set during construction and remains constant.
  • Nullability: The interface does not enforce non-null constraints on Text or Tooltip. Implementations may or may not accept null values—behavior is implementation-defined.
  • Enum-backed identity: The Id property is constrained to values defined in the NavigationButtonId enum; arbitrary integer or string identifiers are not permitted.

4. Dependencies

This module depends on:

  • DTS.Common.Enums.TSRAIRGo.NavigationButtonId — An enum type used to identify navigation buttons.

What depends on this module:

  • Unknown from source alone. Implementing classes and consumers of this interface are not present in the provided file.

5. Gotchas

  • Asymmetric property access: Id is the only read-only property; all others (Text, Tooltip, Enabled, ShowBorder) are mutable. This design implies that button identity is fixed while visual/behavioral properties can change at runtime.
  • No default values defined: The interface specifies no defaults. Implementations must define initial values for Text, Tooltip, Enabled, and ShowBorder.
  • No validation contract: The interface does not specify validation rules (e.g., maximum text length, non-empty requirements). Implementations may apply different validation logic, leading to inconsistent behavior across implementations.