init
This commit is contained in:
85
docs/ai/Common/DTS.CommonCore/RibbonControl/Interface.md
Normal file
85
docs/ai/Common/DTS.CommonCore/RibbonControl/Interface.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/RibbonControl/Interface/IRibbonView.cs
|
||||
- Common/DTS.CommonCore/RibbonControl/Interface/IRibbonTabInfoProvider.cs
|
||||
- Common/DTS.CommonCore/RibbonControl/Interface/IRibbonViewModel.cs
|
||||
generated_at: "2026-04-17T16:35:32.552431+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "8634f04ac6025c26"
|
||||
---
|
||||
|
||||
# RibbonControl Interface Module Documentation
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module defines the core interfaces for a ribbon control UI component within an MVVM (Model-View-ViewModel) architecture. It provides abstractions for ribbon views (`IRibbonView`), view models that hold those views (`IRibbonViewModel`), and a mechanism for identifying specific ribbon tabs via unique identifiers (`IRibbonTabInfoProvider`). These interfaces establish the contract between UI components and their backing logic, enabling loose coupling and testability.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `IRibbonView`
|
||||
**Namespace:** `DTS.Common.RibbonControl`
|
||||
**File:** `Interface/IRibbonView.cs`
|
||||
|
||||
```csharp
|
||||
public interface IRibbonView : IBaseView { }
|
||||
```
|
||||
|
||||
A marker interface extending `IBaseView`. No members are defined. Used to identify view implementations specific to ribbon controls.
|
||||
|
||||
---
|
||||
|
||||
### `IRibbonTabInfoProvider`
|
||||
**Namespace:** `DTS.Common.RibbonControl`
|
||||
**File:** `Interface/IRibbonTabInfoProvider.cs`
|
||||
|
||||
```csharp
|
||||
public interface IRibbonTabInfoProvider
|
||||
{
|
||||
string RibbonTabUid { get; }
|
||||
}
|
||||
```
|
||||
|
||||
Provides a mechanism for retrieving a unique identifier for a ribbon tab. Implementations expose a read-only `RibbonTabUid` property that returns a `string` identifier used to locate specific ribbon tabs.
|
||||
|
||||
---
|
||||
|
||||
### `IRibbonViewModel`
|
||||
**Namespace:** `DTS.Common.RibbonControl`
|
||||
**File:** `Interface/IRibbonViewModel.cs`
|
||||
|
||||
```csharp
|
||||
public interface IRibbonViewModel : IBaseViewModel
|
||||
{
|
||||
IRibbonView View { get; }
|
||||
}
|
||||
```
|
||||
|
||||
Defines the contract for a ribbon-specific view model. Extends `IBaseViewModel` and exposes a read-only `View` property that returns an `IRibbonView` instance, maintaining a reference from the view model to its associated view.
|
||||
|
||||
---
|
||||
|
||||
## 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 unique identifier string; the uniqueness guarantee is implied by the documentation but not enforced at compile time.
|
||||
- `IRibbonViewModel.View` is expected to return a non-null `IRibbonView` instance in valid usage, though this is not enforced by the interface.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- **`DTS.Common.Base`** — Provides `IBaseView` and `IBaseViewModel` base interfaces that `IRibbonView` and `IRibbonViewModel` extend respectively.
|
||||
|
||||
### What depends on this module:
|
||||
- **Cannot be determined from source alone.** No imports or consumer code is present in the provided files.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
- **`IRibbonView` is an empty marker interface.** It adds no members beyond `IBaseView`. This may be intentional for type discrimination, or it may indicate incomplete implementation
|
||||
Reference in New Issue
Block a user