This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
---
source_files:
- DataPRO/Modules/Menu/HamburgerMenu/HamburgerMenuModule.cs
generated_at: "2026-04-17T16:47:06.193165+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1307b5881a344ee2"
---
# HamburgerMenuModule Documentation
## 1. Purpose
This module provides a Prism-based "Hamburger Menu" navigation component for the DataPRO application. It exists to register the hamburger menu's view and view-model with the Unity dependency injection container as singletons, and to expose assembly metadata (name, image, group, region) via custom attributes. The module is categorized under the "Prepare" assembly group and targets the `HamburgerMenuRegion` for UI composition.
---
## 2. Public Interface
### `HamburgerMenuModule` (Class)
Implements `Prism.Modularity.IModule`. The primary module entry point for hamburger menu registration.
| Member | Signature | Description |
|--------|-----------|-------------|
| Constructor | `HamburgerMenuModule(IUnityContainer unityContainer)` | Accepts a Unity container via dependency injection and stores it in `_unityContainer`. |
| `Initialize` | `void Initialize()` | Registers `IHamburgerMenuView``HamburgerMenuView` and `IHamburgerMenuViewModel``HamburgerMenuViewModel` as singleton types using `ContainerControlledLifetimeManager`. |
| `OnInitialized` | `void OnInitialized(IContainerProvider containerProvider)` | Empty implementation; no post-initialization logic. |
| `RegisterTypes` | `void RegisterTypes(IContainerRegistry containerRegistry)` | Delegates to `Initialize()` to perform type registration. |
### `HamburgerMenuModuleNameAttribute` (Class)
Extends `TextAttribute`. Applied at assembly level to expose the module's name.
| Member | Signature | Description |
|--------|-----------|-------------|
| Constructor | `HamburgerMenuModuleNameAttribute()` | Default constructor; delegates to `this(null)`. |
| Constructor | `HamburgerMenuModuleNameAttribute(string s)` | Initializes `AssemblyName` to `AssemblyNames.HamburgerMenu.ToString()`. Parameter `s` is unused. |
| `AssemblyName` | `override string AssemblyName { get; }` | Returns `"HamburgerMenu"` (via enum conversion). |
| `GetAttribute

View File

@@ -0,0 +1,37 @@
---
source_files:
- DataPRO/Modules/Menu/HamburgerMenu/Model/MenuCommand.cs
generated_at: "2026-04-17T16:15:25.512508+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c31776c3db4a4afd"
---
# Model
### Purpose
This module provides the `MenuCommand` class, a simple `ICommand` implementation designed to handle hamburger menu item execution. It serves as a bridge between WPF's command binding system and the application's menu handling logic by invoking a delegate when a menu item is pressed, passing along the menu item's identifier.
### Public Interface
**`MenuCommand` class** - Implements `System.Windows.Input.ICommand`
- **`MenuCommand(string id, MenuItemPressedDelegate menuItemPressed)`** - Constructor. Takes a unique identifier for the menu item and a delegate to invoke upon execution.
- **`bool CanExecute(object parameter)`** - Always returns `true`. The command is always executable.
- **`void Execute(object parameter)`** - Invokes the `MenuItemPressed` delegate with the stored `Id`.
- **`event EventHandler CanExecuteChanged`** - Standard `ICommand` event. Never raised in this implementation.
### Invariants
- `CanExecute` will always return `true` regardless of the parameter value.
- `Id` and `MenuItemPressed` are set at construction and cannot be changed (readonly).
- `MenuItemPressed` delegate must be provided at construction time (no null check visible in source).
### Dependencies
- **Depends on**: `DTS.Common.Interface.Menu.HamburgerMenu` (for `MenuItemPressedDelegate`)
- **Depends on**: `System.Windows.Input` (for `ICommand` interface)
### Gotchas
- The `CanExecuteChanged` event is declared but never invoked, meaning subscribers will never be notified of state changes. This is acceptable given `CanExecute` always returns `true`.
- No null validation on constructor parameters. Passing a null `menuItemPressed` delegate will cause a runtime exception when `Execute` is called.
---

View File

@@ -0,0 +1,34 @@
---
source_files:
- DataPRO/Modules/Menu/HamburgerMenu/Properties/Settings.Designer.cs
- DataPRO/Modules/Menu/HamburgerMenu/Properties/AssemblyInfo.cs
generated_at: "2026-04-17T16:28:16.258591+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "16ba16d55b385c46"
---
# Properties
### Purpose
This module contains auto-generated build artifacts for the `GroupTemplateList` assembly, including application settings infrastructure and assembly metadata. It provides the standard .NET Settings singleton pattern for persisting user or application configuration scoped to the GroupList module, and defines assembly identity attributes used by the CLR for binding and versioning.
### Public Interface
- **`Settings` class** (internal sealed partial) - Inherits from `global::System.Configuration.ApplicationSettingsBase`. Provides strongly-typed access to application settings.
- `public static Settings Default { get; }` - Returns a synchronized singleton instance of the Settings class, lazily initialized via `ApplicationSettingsBase.Synchronized(new Settings())`.
### Invariants
- The `Settings` class is auto-generated by `SettingsSingleFileGenerator` (version 17.10.0.0) and should not be manually edited; changes will be lost on regeneration.
- The `defaultInstance` field is always assigned via `Synchronized()`, ensuring thread-safe access to settings.
- Assembly version is fixed at `1.0.0.0` for both `AssemblyVersion` and `AssemblyFileVersion`.
- COM visibility is disabled at the assembly level (`ComVisible(false)`).
### Dependencies
- **Depends on**: `System.Configuration.ApplicationSettingsBase` (from System.Configuration assembly), `System.Runtime.CompilerServices`, `System.CodeDom.Compiler`.
- **Depended on by**: Unclear from source alone; presumably consumed by the parent `GroupList` module for settings access.
### Gotchas
- The assembly title is `"GroupTemplateList"` but the namespace is `GroupList.Properties` — this naming inconsistency may cause confusion when searching for the assembly or namespace.
- The `Settings` class is `internal`, so it cannot be accessed from outside this assembly without friend assembly declarations (`InternalsVisibleTo`).
---

View File

@@ -0,0 +1,13 @@
---
source_files:
- DataPRO/Modules/Menu/HamburgerMenu/Resources/TranslateExtension.cs
- DataPRO/Modules/Menu/HamburgerMenu/Resources/StringResources.Designer.cs
generated_at: "2026-04-17T16:12:28.696827+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5df10bcfe9f5a55d"
---
# Resources
###

View File

@@ -0,0 +1,35 @@
---
source_files:
- DataPRO/Modules/Menu/HamburgerMenu/View/HamburgerMenuView.xaml.cs
generated_at: "2026-04-17T16:15:25.514898+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "6227b274bd720bdb"
---
# View
### Purpose
This module contains the code-behind for the `HamburgerMenuView` WPF UserControl. It provides the UI interaction logic for a hamburger-style menu, specifically handling the click event on the hamburger button to display a context menu retrieved from the view model.
### Public Interface
**`HamburgerMenuView` class** - Partial class, implements `IHamburgerMenuView`
- **`HamburgerMenuView()`** - Default constructor. Calls `InitializeComponent()` to load the XAML.
- **`void Hamburger_Click(object sender, System.Windows.RoutedEventArgs e)`** - Private event handler. Retrieves the `IHamburgerMenuViewModel` from `DataContext`, gets the context menu via `GetContextMenu()`, sets the `PlacementTarget` to the sender button, and opens the context menu.
### Invariants
- `DataContext` must be castable to `IHamburgerMenuViewModel` when `Hamburger_Click` is invoked, otherwise an `InvalidCastException` will occur.
- The sender in `Hamburger_Click` must be castable to `Button`, otherwise `PlacementTarget` will be set to null.
### Dependencies
- **Depends on**: `DTS.Common.Interface.Menu.HamburgerMenu` (for `IHamburgerMenuView` and `IHamburgerMenuViewModel`)
- **Depends on**: `System.Windows.Controls` (for `Button` and UserControl base class)
- **XAML file**: `HamburgerMenuView.xaml` (referenced via `InitializeComponent()`)
### Gotchas
- The file contains a large block of commented-out code (approximately 60 lines) related to `GridViewColumnHeader`, `ListView` mouse handling, and `SLICE6TreeViewPopup`. This appears to be dead code from another view that was copied or refactored. It should be removed for clarity.
- The namespace is declared as `HamburgerMenu` despite the file path suggesting `HamburgerMenu.View`, with a `// ReSharper disable CheckNamespace` directive suppressing the mismatch.
---

View File

@@ -0,0 +1,54 @@
---
source_files:
- DataPRO/Modules/Menu/HamburgerMenu/ViewModel/HamburgerMenuViewModel.cs
generated_at: "2026-04-17T16:00:35.473048+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "5984a297f98a5ac4"
---
# HamburgerMenuViewModel Documentation
## 1. Purpose
`HamburgerMenuViewModel` is a Prism/Unity-based ViewModel that manages a hamburger menu's context menu construction, UI state (enabled/busy states), and event-driven communication within the application. It serves as the presentation logic layer for `IHamburgerMenuView`, handling menu item configuration, notification popups, and test lifecycle state changes via event aggregation. The class is designed as a shared singleton via MEF's `[PartCreationPolicy(CreationPolicy.Shared)]`.
---
## 2. Public Interface
### Constructor
```csharp
public HamburgerMenuViewModel(
IHamburgerMenuView view,
IRegionManager regionManager,
IEventAggregator eventAggregator,
IUnityContainer unityContainer)
```
Initializes the ViewModel, sets the View's DataContext, creates interaction requests, and subscribes to three events: `RaiseNotification`, `BusyIndicatorChangeNotification`, and `TestEvent`.
### Properties
| Property | Type | Access |
|----------|------|--------|
| `View` | `IHamburgerMenuView` | get/set |
| `NotificationRequest` | `InteractionRequest<Notification>` | get |
| `ConfirmationRequest` | `InteractionRequest<Confirmation>` | get |
| `IsEnabled` | `bool` | get; private set |
| `IsBusy` | `bool` | get; set |
| `IsDirty` | `bool` | get; private set |
| `IsMenuIncluded` | `bool` | get; set |
| `IsNavigationIncluded` | `bool` | get; set |
| `MenuItemPressed` | `MenuItemPressedDelegate` | get; set |
### Methods
```csharp
public ContextMenu GetContextMenu()
```
Returns the cached `ContextMenu`, building it lazily on first access. Thread-safe via lock on `MyLock`.
```csharp
public void SetMenuItems(string[] items)
```
Replaces the current menu items array and rebuilds the context menu. Empty or whitespace items