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

3.9 KiB
Raw Permalink Blame History

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Resources/ResourceNames.cs
Common/DTS.CommonCore/Resources/MainTabControlResource.xaml.cs
2026-04-16T02:12:32.595603+00:00 Qwen/Qwen3-Coder-Next-FP8 1 37911183d8b2e17a

Resources

Documentation: Resource Definitions and UI Event Handling


1. Purpose

This module provides centralized string constants for storyboard resource names used in UI transitions and a partial class implementing a tooltip event handler for help text propagation in the WPF UI layer. Specifically, ResourceNames defines stable identifiers for entry/exit transition storyboards, while MainTabControlResource facilitates contextual help by publishing HelpTextEvent events via Prisms IEventAggregator when tooltips are invoked.


2. Public Interface

ResourceNames (internal static class)

  • EntryStoryboardName (public const string)
    Value: "InTransition". Represents the name of the storyboard used for entering a view/page.
  • ExitStoryboardName (public const string)
    Value: "OutTransition". Represents the name of the storyboard used for exiting a view/page.

MainTabControlResource (public partial class)

  • ToolTipEventHandler(object sender, ToolTipEventArgs e) (public void)
    Handles ToolTipOpening events. Sets e.Handled = true to suppress default tooltip behavior, retrieves IEventAggregator via ServiceLocator, and publishes a HelpTextEvent with a HelpTextEventArg containing the original sender and ToolTipEventArgs.

3. Invariants

  • EntryStoryboardName and ExitStoryboardName are compile-time constants and must not be modified at runtime.
  • ToolTipEventHandler must be attached to a ToolTipOpening event (or similar) on a WPF control to function as intended.
  • ServiceLocator.Current must be initialized and configured with a valid container that resolves IEventAggregator; otherwise, a runtime exception will occur.
  • HelpTextEventArg constructor requires Sender and E parameters (as shown); no validation is performed beyond parameter passing.

4. Dependencies

This module depends on:

  • WPF: System.Windows.Controls.ToolTipEventArgs and partial class support.
  • Prism Library: IEventAggregator, IEvent, and HelpTextEvent/HelpTextEventArg types (not shown in source but referenced).
  • Microsoft.Practices.ServiceLocation: ServiceLocator for resolving services.
  • DTS.Common.Events: Namespace containing HelpTextEvent and HelpTextEventArg (inferred from using DTS.Common.Events).

This module is depended on by:

  • UI XAML files (e.g., MainTabControlResource.xaml) referencing EntryStoryboardName/ExitStoryboardName as static resources.
  • Event subscribers to HelpTextEvent (e.g., help service modules) that consume HelpTextEventArg to display context-sensitive help.

5. Gotchas

  • internal visibility: ResourceNames is internal, so its constants are only accessible within the same assembly (likely DTS.CommonCore). External consumers must reference via fully qualified name if exposed elsewhere, but no public accessors exist.
  • Hardcoded storyboard names: "InTransition" and "OutTransition" assume matching storyboard resources exist in XAML; mismatched names will cause silent transition failures (no compile-time check).
  • ServiceLocator usage: Relies on the deprecated ServiceLocator pattern (Prism recommends constructor injection). This may complicate testing and violate DI best practices.
  • No error handling: If IEventAggregator is not registered, ServiceLocator.Current.GetInstance<IEventAggregator>() throws an exception. No fallback or logging is present.
  • e.Handled = true: Suppresses default tooltip behavior entirely—any other tooltip logic (e.g., static ToolTip property) will be overridden.

None identified beyond these.