Files
2026-04-17 14:55:32 -04:00

4.0 KiB
Raw Permalink Blame History

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.Common/Resources/ResourceNames.cs
Common/DTS.Common/Resources/MainTabControlResource.xaml.cs
2026-04-16T02:52:26.561259+00:00 Qwen/Qwen3-Coder-Next-FP8 1 7ab53012cf3e9cb3

Resources

Documentation: DTS.Common.Resources Module


1. Purpose

This module provides shared UI resource definitions and event-driven tooltip handling for the main tab control in the application. It enables consistent naming of storyboard resources used for tab entry/exit transitions and centralizes the logic for publishing help-text events when tooltips are invoked on the main tab control—facilitating context-sensitive help functionality via Prisms event aggregation pattern.


2. Public Interface

ResourceNames (internal static class)

  • EntryStoryboardName (public const string)
    Constant string "InTransition"; represents the name of the storyboard used for tab entry animations.
  • ExitStoryboardName (public const string)
    Constant string "OutTransition"; represents the name of the storyboard used for tab exit animations.

MainTabControlResource (public partial class)

  • ToolTipEventHandler(object sender, ToolTipEventArgs e) (public void)
    Handles the ToolTipOpening event (or similar) for the main tab control. Sets e.Handled = true to prevent default tooltip behavior, resolves IEventAggregator from ContainerLocator.Container, and publishes a HelpTextEvent with a HelpTextEventArg containing the original sender and ToolTipEventArgs.

3. Invariants

  • EntryStoryboardName and ExitStoryboardName are compile-time constants and must match storyboard resource keys defined in XAML (not visible here, but implied by usage).
  • ToolTipEventHandler must only be attached to events where sender is a WPF control and e is a ToolTipEventArgs—otherwise, casting or event semantics may fail.
  • ContainerLocator.Container is assumed to be initialized and contain a registered IEventAggregator instance before ToolTipEventHandler is invoked; failure to do so will cause a runtime exception (e.g., NullReferenceException or resolution failure).

4. Dependencies

Dependencies of this module:

  • Prism.Ioc / Prism.Events: Used via IEventAggregator, ContainerLocator, and HelpTextEvent/HelpTextEventArg types.
  • DTS.Common.Events: Contains HelpTextEvent and HelpTextEventArg types (not shown, but referenced).
  • WPF runtime types: System.Windows.Controls.ToolTipEventArgs, System.Windows.Controls.ToolTip.

Dependencies on this module:

  • XAML resources (not included) likely reference ResourceNames.EntryStoryboardName and ResourceNames.ExitStoryboardName as storyboard keys.
  • UI components (e.g., MainTabControl in XAML) must wire ToolTipEventHandler to the appropriate tooltip event (e.g., ToolTipOpening) for help-text integration.

5. Gotchas

  • ContainerLocator.Container is a static dependency—this introduces tight coupling and complicates unit testing; no DI container scoping is visible here.
  • e.Handled = true suppresses default tooltip rendering; if custom tooltip content is expected elsewhere (e.g., via ToolTipService), this may cause tooltips to appear blank unless handled by downstream subscribers.
  • HelpTextEventArg constructor is assumed to accept sender and e parameters, but its exact structure (e.g., property names, null-safety) is unknown from source.
  • MainTabControlResource is declared partial, implying additional partial definitions exist (likely in MainTabControlResource.xaml), but their contents are not visible—behavior may depend on XAML-defined event wiring.
  • No null checks are performed on ContainerLocator.Container.Resolve<IEventAggregator>() or e—runtime exceptions may occur if the container is uninitialized or e is null.

None identified beyond these.