Skip to content

Commit 102f46a

Browse files
committed
Removed generated ButtonAction sample pane option
1 parent d063715 commit 102f46a

7 files changed

Lines changed: 37 additions & 287 deletions

File tree

CommunityToolkit.App.Shared/Renderers/GeneratedSampleOptionTemplateSelector.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ internal class GeneratedSampleOptionTemplateSelector : DataTemplateSelector
1313
{
1414
public DataTemplate? BoolOptionTemplate { get; set; }
1515

16-
public DataTemplate? ButtonActionTemplate { get; set; }
17-
1816
public DataTemplate? MultiChoiceOptionTemplate { get; set; }
1917

2018
public DataTemplate? SliderOptionTemplate { get; set; }
@@ -28,7 +26,6 @@ protected override DataTemplate SelectTemplateCore(object item, DependencyObject
2826
return item switch
2927
{
3028
ToolkitSampleBoolOptionMetadataViewModel => BoolOptionTemplate ?? base.SelectTemplateCore(item, container),
31-
ToolkitSampleButtonActionMetadataViewModel => ButtonActionTemplate ?? base.SelectTemplateCore(item, container),
3229
ToolkitSampleMultiChoiceOptionMetadataViewModel => MultiChoiceOptionTemplate ?? base.SelectTemplateCore(item, container),
3330
ToolkitSampleNumericOptionMetadataViewModel { ShowAsNumberBox: true } => NumberBoxOptionTemplate ?? base.SelectTemplateCore(item, container),
3431
ToolkitSampleNumericOptionMetadataViewModel { ShowAsNumberBox: false } => SliderOptionTemplate ?? base.SelectTemplateCore(item, container),

CommunityToolkit.App.Shared/Renderers/GeneratedSampleOptionsRenderer.xaml

Lines changed: 36 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,64 +12,58 @@
1212
d:DesignWidth="400"
1313
mc:Ignorable="d">
1414

15-
<UserControl.Resources>
16-
<local:GeneratedSampleOptionTemplateSelector x:Key="GeneratedSampleOptionTemplateSelector">
17-
<local:GeneratedSampleOptionTemplateSelector.BoolOptionTemplate>
18-
<DataTemplate x:DataType="metadata:ToolkitSampleBoolOptionMetadataViewModel">
19-
<ToggleSwitch Header="{x:Bind Title, Mode=OneWay}"
15+
<UserControl.Resources>
16+
<local:GeneratedSampleOptionTemplateSelector x:Key="GeneratedSampleOptionTemplateSelector">
17+
<local:GeneratedSampleOptionTemplateSelector.BoolOptionTemplate>
18+
<DataTemplate x:DataType="metadata:ToolkitSampleBoolOptionMetadataViewModel">
19+
<ToggleSwitch Header="{x:Bind Title, Mode=OneWay}"
2020
IsOn="{x:Bind BoolValue, Mode=TwoWay}" />
21-
</DataTemplate>
22-
</local:GeneratedSampleOptionTemplateSelector.BoolOptionTemplate>
23-
<local:GeneratedSampleOptionTemplateSelector.ButtonActionTemplate>
24-
<DataTemplate x:DataType="metadata:ToolkitSampleButtonActionMetadataViewModel">
25-
<Button Command="{x:Bind CommandValue, Mode=TwoWay}"
26-
Content="{x:Bind Label, Mode=OneWay}" />
27-
</DataTemplate>
28-
</local:GeneratedSampleOptionTemplateSelector.ButtonActionTemplate>
29-
<local:GeneratedSampleOptionTemplateSelector.MultiChoiceOptionTemplate>
30-
<DataTemplate x:DataType="metadata:ToolkitSampleMultiChoiceOptionMetadataViewModel">
31-
<ComboBox Header="{x:Bind Title, Mode=OneWay}"
21+
</DataTemplate>
22+
</local:GeneratedSampleOptionTemplateSelector.BoolOptionTemplate>
23+
<local:GeneratedSampleOptionTemplateSelector.MultiChoiceOptionTemplate>
24+
<DataTemplate x:DataType="metadata:ToolkitSampleMultiChoiceOptionMetadataViewModel">
25+
<ComboBox Header="{x:Bind Title, Mode=OneWay}"
3226
ItemsSource="{x:Bind Options}"
3327
SelectedIndex="0"
3428
SelectedItem="{x:Bind Value, Mode=TwoWay}" />
35-
</DataTemplate>
36-
</local:GeneratedSampleOptionTemplateSelector.MultiChoiceOptionTemplate>
37-
<local:GeneratedSampleOptionTemplateSelector.SliderOptionTemplate>
38-
<DataTemplate x:DataType="metadata:ToolkitSampleNumericOptionMetadataViewModel">
39-
<Slider Header="{x:Bind Title, Mode=OneWay}"
29+
</DataTemplate>
30+
</local:GeneratedSampleOptionTemplateSelector.MultiChoiceOptionTemplate>
31+
<local:GeneratedSampleOptionTemplateSelector.SliderOptionTemplate>
32+
<DataTemplate x:DataType="metadata:ToolkitSampleNumericOptionMetadataViewModel">
33+
<Slider Header="{x:Bind Title, Mode=OneWay}"
4034
Maximum="{x:Bind Max, Mode=OneWay}"
4135
Minimum="{x:Bind Min, Mode=OneWay}"
4236
StepFrequency="{x:Bind Step, Mode=OneWay}"
4337
Value="{x:Bind Initial, Mode=TwoWay}" />
44-
</DataTemplate>
45-
</local:GeneratedSampleOptionTemplateSelector.SliderOptionTemplate>
46-
<local:GeneratedSampleOptionTemplateSelector.NumberBoxOptionTemplate>
47-
<DataTemplate x:DataType="metadata:ToolkitSampleNumericOptionMetadataViewModel">
48-
<muxc:NumberBox Header="{x:Bind Title, Mode=OneWay}"
38+
</DataTemplate>
39+
</local:GeneratedSampleOptionTemplateSelector.SliderOptionTemplate>
40+
<local:GeneratedSampleOptionTemplateSelector.NumberBoxOptionTemplate>
41+
<DataTemplate x:DataType="metadata:ToolkitSampleNumericOptionMetadataViewModel">
42+
<muxc:NumberBox Header="{x:Bind Title, Mode=OneWay}"
4943
Maximum="{x:Bind Max, Mode=OneWay}"
5044
Minimum="{x:Bind Min, Mode=OneWay}"
5145
SmallChange="{x:Bind Step, Mode=OneWay}"
5246
SpinButtonPlacementMode="Compact"
5347
Value="{x:Bind Initial, Mode=TwoWay}" />
54-
</DataTemplate>
55-
</local:GeneratedSampleOptionTemplateSelector.NumberBoxOptionTemplate>
56-
<local:GeneratedSampleOptionTemplateSelector.TextOptionTemplate>
57-
<DataTemplate x:DataType="metadata:ToolkitSampleTextOptionMetadataViewModel">
58-
<TextBox HorizontalAlignment="Stretch"
48+
</DataTemplate>
49+
</local:GeneratedSampleOptionTemplateSelector.NumberBoxOptionTemplate>
50+
<local:GeneratedSampleOptionTemplateSelector.TextOptionTemplate>
51+
<DataTemplate x:DataType="metadata:ToolkitSampleTextOptionMetadataViewModel">
52+
<TextBox HorizontalAlignment="Stretch"
5953
Header="{x:Bind Title, Mode=OneWay}"
6054
Text="{x:Bind PlaceholderText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
61-
</DataTemplate>
62-
</local:GeneratedSampleOptionTemplateSelector.TextOptionTemplate>
63-
</local:GeneratedSampleOptionTemplateSelector>
64-
</UserControl.Resources>
55+
</DataTemplate>
56+
</local:GeneratedSampleOptionTemplateSelector.TextOptionTemplate>
57+
</local:GeneratedSampleOptionTemplateSelector>
58+
</UserControl.Resources>
6559

66-
<ItemsControl ItemTemplateSelector="{StaticResource GeneratedSampleOptionTemplateSelector}"
60+
<ItemsControl ItemTemplateSelector="{StaticResource GeneratedSampleOptionTemplateSelector}"
6761
ItemsSource="{x:Bind SampleOptions, Mode=OneWay}">
68-
<ItemsControl.ItemsPanel>
69-
<ItemsPanelTemplate>
70-
<StackPanel Orientation="Vertical"
62+
<ItemsControl.ItemsPanel>
63+
<ItemsPanelTemplate>
64+
<StackPanel Orientation="Vertical"
7165
Spacing="12" />
72-
</ItemsPanelTemplate>
73-
</ItemsControl.ItemsPanel>
74-
</ItemsControl>
66+
</ItemsPanelTemplate>
67+
</ItemsControl.ItemsPanel>
68+
</ItemsControl>
7569
</UserControl>

CommunityToolkit.Tooling.SampleGen.Tests/ToolkitSampleGeneratedPaneTests.cs

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -382,58 +382,4 @@ public class UserControl {{ }}
382382

383383
result.AssertDiagnosticsAre(DiagnosticDescriptors.SamplePaneMultiChoiceOptionWithNoChoices, DiagnosticDescriptors.SampleNotReferencedInMarkdown);
384384
}
385-
386-
[TestMethod]
387-
public void GeneratedPaneOption_ButtonAction()
388-
{
389-
var sampleProjectAssembly = $@"
390-
using System.ComponentModel;
391-
using CommunityToolkit.Tooling.SampleGen;
392-
using CommunityToolkit.Tooling.SampleGen.Attributes;
393-
394-
namespace MyApp
395-
{{
396-
[ToolkitSample(id: nameof(Sample), ""Test Sample"", description: """")]
397-
public partial class Sample : Windows.UI.Xaml.Controls.UserControl
398-
{{
399-
[ToolkitSampleButtonAction(label: ""Raise notification"")]
400-
private void RaiseNotification()
401-
{{
402-
}}
403-
}}
404-
}}
405-
406-
namespace Windows.UI.Xaml.Controls
407-
{{
408-
public class UserControl {{ }}
409-
}}"
410-
.ToSyntaxTree()
411-
.CreateCompilation("MyApp.Samples")
412-
.ToMetadataReference();
413-
414-
// Create application head that references generated sample project
415-
var headCompilation = string.Empty
416-
.ToSyntaxTree()
417-
.CreateCompilation("CommunityToolkit.App.Head")
418-
.AddReferences(sampleProjectAssembly);
419-
420-
// Run source generator
421-
var result = headCompilation.RunSourceGenerator<ToolkitSampleMetadataGenerator>();
422-
423-
result.AssertDiagnosticsAre();
424-
result.AssertNoCompilationErrors();
425-
426-
Assert.AreEqual(result.Compilation.GetFileContentsByName("ToolkitSampleRegistry.g.cs"), """
427-
#nullable enable
428-
namespace CommunityToolkit.Tooling.SampleGen;
429-
430-
public static class ToolkitSampleRegistry
431-
{
432-
public static System.Collections.Generic.Dictionary<string, CommunityToolkit.Tooling.SampleGen.Metadata.ToolkitSampleMetadata> Listing
433-
{ get; } = new() {
434-
["Sample"] = new CommunityToolkit.Tooling.SampleGen.Metadata.ToolkitSampleMetadata("Sample", "Test Sample", "", typeof(MyApp.Sample), () => new MyApp.Sample(), null, null, new CommunityToolkit.Tooling.SampleGen.Metadata.IGeneratedToolkitSampleOptionViewModel[] { new CommunityToolkit.Tooling.SampleGen.Metadata.ToolkitSampleButtonActionMetadataViewModel(name: "RaiseNotification", label: "Raise notification", title: "") })
435-
};
436-
}
437-
""", "Unexpected code generated");
438-
}
439385
}

CommunityToolkit.Tooling.SampleGen/Attributes/ToolkitSampleButtonActionAttribute.cs

Lines changed: 0 additions & 33 deletions
This file was deleted.

CommunityToolkit.Tooling.SampleGen/Metadata/ToolkitSampleButtonActionMetadataViewModel.cs

Lines changed: 0 additions & 101 deletions
This file was deleted.

CommunityToolkit.Tooling.SampleGen/ToolkitSampleMetadataGenerator.Sample.cs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,6 @@ void Execute(IncrementalValuesProvider<ISymbol> types, bool skipDiagnostics = fa
7474
{
7575
item = (x.Item1, textOptionAttribute);
7676
}
77-
else if (x.Item2.TryReconstructAs<ToolkitSampleButtonActionAttribute>() is ToolkitSampleButtonActionAttribute buttonActionAttribute)
78-
{
79-
// Auto-assign the attached method name as the generated property name.
80-
buttonActionAttribute.Name = x.Item1.Name;
81-
82-
item = (x.Item1.ContainingSymbol, buttonActionAttribute);
83-
}
8477

8578
// Add extra property data, like Title, back to Attribute
8679
if (item.Attribute is not null && x.Item2.TryGetNamedArgument(nameof(ToolkitSampleOptionBaseAttribute.Title), out string? title) && !string.IsNullOrWhiteSpace(title))
@@ -255,9 +248,7 @@ private static void ReportDiagnosticsGeneratedOptionsPane(SourceProductionContex
255248
ctx.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.SamplePaneOptionWithDuplicateName, item.SelectMany(x => x.Item1.Locations).FirstOrDefault(), item.Key));
256249

257250
// Check for generated options that conflict with an existing property name
258-
var generatedOptionsWithConflictingPropertyNames = generatedOptionPropertyData
259-
.Where(x => x.Item2 is not ToolkitSampleButtonActionAttribute)
260-
.Where(x => x.Item1 is INamedTypeSymbol sym && GetAllMembers(sym).Any(y => x.Item2.Name == y.Name));
251+
var generatedOptionsWithConflictingPropertyNames = generatedOptionPropertyData.Where(x => x.Item1 is INamedTypeSymbol sym && GetAllMembers(sym).Any(y => x.Item2.Name == y.Name));
261252

262253
foreach (var item in generatedOptionsWithConflictingPropertyNames)
263254
ctx.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.SamplePaneOptionWithConflictingName, item.Item1.Locations.FirstOrDefault(), item.Item2.Name));
@@ -312,10 +303,6 @@ private static IEnumerable<string> BuildNewGeneratedSampleOptionMetadataSource(T
312303
{
313304
yield return $@"new {typeof(ToolkitSampleBoolOptionMetadataViewModel).FullName}(name: ""{boolAttribute.Name}"", defaultState: {boolAttribute.DefaultState?.ToString().ToLower()}, title: ""{boolAttribute.Title}"")";
314305
}
315-
else if (item is ToolkitSampleButtonActionAttribute buttonAttribute)
316-
{
317-
yield return $@"new {typeof(ToolkitSampleButtonActionMetadataViewModel).FullName}(name: ""{buttonAttribute.Name}"", label: ""{buttonAttribute.Label}"", title: ""{buttonAttribute.Title}"")";
318-
}
319306
else if (item is ToolkitSampleNumericOptionAttribute numericAttribute)
320307
{
321308
yield return $@"new {typeof(ToolkitSampleNumericOptionMetadataViewModel).FullName}(name: ""{numericAttribute.Name}"", initial: {numericAttribute.Initial}, min: {numericAttribute.Min}, max: {numericAttribute.Max}, step: {numericAttribute.Step}, showAsNumberBox: {numericAttribute.ShowAsNumberBox.ToString().ToLower()}, title: ""{numericAttribute.Title}"")";

0 commit comments

Comments
 (0)