70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.Common/RibbonControl/Interface/IRibbonView.cs
|
||
|
|
- Common/DTS.Common/RibbonControl/Interface/IRibbonTabInfoProvider.cs
|
||
|
|
- Common/DTS.Common/RibbonControl/Interface/IRibbonViewModel.cs
|
||
|
|
generated_at: "2026-04-17T16:35:56.547091+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "1f9b8fbe5cb13bc2"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Ribbon Control Interface Documentation
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines the core interfaces for the ribbon control system within the DTS application framework. It establishes the contract for ribbon views, view models, and tab identification mechanisms. These interfaces serve as an abstraction layer that decouples the ribbon UI components from their concrete implementations, enabling consistent interaction patterns across the system's ribbon-based navigation and command surfaces.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### `IRibbonView`
|
||
|
|
**Location:** `DTS.Common.RibbonControl` namespace
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
public interface IRibbonView : IBaseView { }
|
||
|
|
```
|
||
|
|
**Behavior:** A marker interface that extends `IBaseView`. It defines no additional members beyond its base interface, serving as a type identifier for ribbon-specific view implementations.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `IRibbonTabInfoProvider`
|
||
|
|
**Location:** `DTS.Common.RibbonControl` namespace
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
public interface IRibbonTabInfoProvider
|
||
|
|
{
|
||
|
|
string RibbonTabUid { get; }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**Behavior:** Provides a mechanism for retrieving ribbon tab identification information. The `RibbonTabUid` property returns a unique string identifier used to locate specific ribbon tabs within the system.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `IRibbonViewModel`
|
||
|
|
**Location:** `DTS.Common.RibbonControl` namespace
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
public interface IRibbonViewModel : IBaseViewModel
|
||
|
|
{
|
||
|
|
IRibbonView View { get; }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
**Behavior:** Defines the contract for ribbon view models, exposing a read-only `View` property that returns the associated `IRibbonView` instance. Inherits from `IBaseViewModel`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- **`IRibbonView`** must always be assignable to `IBaseView` (inheritance constraint).
|
||
|
|
- **`IRibbonViewModel`** must always be assignable to `IBaseViewModel` (inheritance constraint).
|
||
|
|
- **`IRibbonTabInfoProvider.RibbonTabUid`** is expected to return a non-null string that uniquely identifies a ribbon tab (implied by the "unique identifier" documentation, though null validation is not enforced at the interface level).
|
||
|
|
- **`IRibbonViewModel.View`** is expected to return a valid `IRibbonView` instance (nullability is not specified in the interface).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### This module depends on:
|
||
|
|
- **`DTS.Common.Base`** — Provides `IBaseView` (used by `IRibbonView
|