From 568a3dfafb9e8f57a095562034ca9ebcffba576c Mon Sep 17 00:00:00 2001 From: Zachary Burnham Date: Tue, 27 Oct 2026 13:06:20 -0400 Subject: [PATCH] LT-22802: Show Exception "Features" in the Avalonia detail view Grammar > Exception "Features" (ProdRestrictEdit) was not on the list of tools that open in the Avalonia detail view, so with New UI on it fell back to the WinForms DataTree. The tool filter list that #1146 taught the composer to apply never reached a live tool. Add the tool to LexiconFeatureCatalog. Its rows (Name, Abbreviation, Description and Subitems) already compose, and basicPlusFilter.xml withholds Status, Discussion, Confidence, Researchers and Restrictions, so the view matches the WinForms one. Co-Authored-By: Claude Opus 5.5 --- Src/Common/FwAvalonia/FwAvaloniaStrings.cs | 3 +++ Src/Common/FwAvalonia/FwAvaloniaStrings.resx | 6 ++++++ .../FwAvalonia/FwAvaloniaTests/UIFrameworkResolverTests.cs | 1 + Src/Common/FwAvalonia/LexiconFeatureCatalog.cs | 3 +++ .../Avalonia/Hosting/RecordEditViewSwitchTests.cs | 1 + 5 files changed, 14 insertions(+) diff --git a/Src/Common/FwAvalonia/FwAvaloniaStrings.cs b/Src/Common/FwAvalonia/FwAvaloniaStrings.cs index 5b44a6fa95..5673ecc4f0 100644 --- a/Src/Common/FwAvalonia/FwAvaloniaStrings.cs +++ b/Src/Common/FwAvalonia/FwAvaloniaStrings.cs @@ -299,6 +299,9 @@ public static string StructuredTextParagraphName(string fieldLabel, int paragrap public static string FeaturePosEditName => Text("FwAvalonia.Feature.PosEditName"); public static string FeaturePosEditDescription => Text("FwAvalonia.Feature.PosEditDescription"); + public static string FeatureProdRestrictEditName => Text("FwAvalonia.Feature.ProdRestrictEditName"); + public static string FeatureProdRestrictEditDescription => Text("FwAvalonia.Feature.ProdRestrictEditDescription"); + /// The empty-choice label a list chooser leads with when the field allows no value. /// English must match the legacy launchers' ksNullLabel so both frameworks show the same word. public static string ChooserEmptyItemLabel => Text("FwAvalonia.Chooser.EmptyItemLabel"); diff --git a/Src/Common/FwAvalonia/FwAvaloniaStrings.resx b/Src/Common/FwAvalonia/FwAvaloniaStrings.resx index 424db73dd1..138fd0e5ca 100644 --- a/Src/Common/FwAvalonia/FwAvaloniaStrings.resx +++ b/Src/Common/FwAvalonia/FwAvaloniaStrings.resx @@ -235,6 +235,12 @@ The Part of Speech editor. + + Grammar / Exception "Features" + + + The Exception "Features" editor. + <Empty> diff --git a/Src/Common/FwAvalonia/FwAvaloniaTests/UIFrameworkResolverTests.cs b/Src/Common/FwAvalonia/FwAvaloniaTests/UIFrameworkResolverTests.cs index fdd80ed9d7..951201ae6a 100644 --- a/Src/Common/FwAvalonia/FwAvaloniaTests/UIFrameworkResolverTests.cs +++ b/Src/Common/FwAvalonia/FwAvaloniaTests/UIFrameworkResolverTests.cs @@ -124,6 +124,7 @@ public void InertFollowUpToolsFallBackToLegacy_UIFramework() [TestCase("lexiconEdit")] [TestCase("notebookEdit")] [TestCase("posEdit")] + [TestCase("ProdRestrictEdit")] public void BaseDetailEditorTools_StayActive(string tool) { Assert.That(UIFrameworkResolver.SupportsAvaloniaForTool(tool), Is.True, diff --git a/Src/Common/FwAvalonia/LexiconFeatureCatalog.cs b/Src/Common/FwAvalonia/LexiconFeatureCatalog.cs index 551f471433..e408d14be9 100644 --- a/Src/Common/FwAvalonia/LexiconFeatureCatalog.cs +++ b/Src/Common/FwAvalonia/LexiconFeatureCatalog.cs @@ -51,6 +51,9 @@ public static class LexiconFeatureCatalog FwAvaloniaStrings.FeatureGroupOtherRecordTypes), new LexiconFeatureDescriptor("posEdit", FwAvaloniaStrings.FeaturePosEditName, FwAvaloniaStrings.FeaturePosEditDescription, + FwAvaloniaStrings.FeatureGroupOtherRecordTypes), + new LexiconFeatureDescriptor("ProdRestrictEdit", + FwAvaloniaStrings.FeatureProdRestrictEditName, FwAvaloniaStrings.FeatureProdRestrictEditDescription, FwAvaloniaStrings.FeatureGroupOtherRecordTypes) }; diff --git a/Src/xWorks/xWorksTests/Avalonia/Hosting/RecordEditViewSwitchTests.cs b/Src/xWorks/xWorksTests/Avalonia/Hosting/RecordEditViewSwitchTests.cs index 82c1a5a828..7598004d3d 100644 --- a/Src/xWorks/xWorksTests/Avalonia/Hosting/RecordEditViewSwitchTests.cs +++ b/Src/xWorks/xWorksTests/Avalonia/Hosting/RecordEditViewSwitchTests.cs @@ -172,6 +172,7 @@ public void NonMigratedRecordEditTools_FallBackToLegacy_WhenUIModeIsNew(string t // adds the corresponding TestCase row here. [TestCase("notebookEdit")] [TestCase("posEdit")] + [TestCase("ProdRestrictEdit")] public void RegisteredRecordEditTools_ResolveToAvalonia_WhenUIModeIsNew(string toolValue) { m_propertyTable.SetProperty("UIMode", "New", true);