Skip to content

Commit 0740abf

Browse files
dnenovzeusongit
authored andcommitted
DYN-7343: Pm search compatibility filters update (DynamoDS#15603)
1 parent 654e5e7 commit 0740abf

File tree

7 files changed

+65
-8
lines changed

7 files changed

+65
-8
lines changed

src/DynamoCoreWpf/PublicAPI.Unshipped.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,10 @@ Dynamo.Controls.TreeViewVLineMarginConverter
696696
Dynamo.Controls.TreeViewVLineMarginConverter.Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
697697
Dynamo.Controls.TreeViewVLineMarginConverter.ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
698698
Dynamo.Controls.TreeViewVLineMarginConverter.TreeViewVLineMarginConverter() -> void
699+
Dynamo.Controls.VersionStringAsteriskToXConverter
700+
Dynamo.Controls.VersionStringAsteriskToXConverter.Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
701+
Dynamo.Controls.VersionStringAsteriskToXConverter.ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
702+
Dynamo.Controls.VersionStringAsteriskToXConverter.VersionStringAsteriskToXConverter() -> void
699703
Dynamo.Controls.ViewButtonClipRectConverter
700704
Dynamo.Controls.ViewButtonClipRectConverter.Convert(object[] values, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
701705
Dynamo.Controls.ViewButtonClipRectConverter.ConvertBack(object value, System.Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) -> object[]

src/DynamoCoreWpf/UI/Converters.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4029,4 +4029,29 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu
40294029
}
40304030
}
40314031

4032+
/// <summary>
4033+
/// Returns "2019.10.x" from "2019.10.*" input
4034+
/// </summary>
4035+
public class VersionStringAsteriskToXConverter : IValueConverter
4036+
{
4037+
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
4038+
{
4039+
if (value is string version && !string.IsNullOrEmpty(version))
4040+
{
4041+
return version.Replace("*", "x");
4042+
}
4043+
4044+
return value;
4045+
}
4046+
4047+
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
4048+
{
4049+
if (value is string version && !string.IsNullOrEmpty(version))
4050+
{
4051+
return version.Replace("x", "*");
4052+
}
4053+
4054+
return value;
4055+
}
4056+
}
40324057
}

src/DynamoCoreWpf/UI/Themes/Modern/DynamoColorsAndBrushes.xaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,15 +203,19 @@
203203
<Color x:Key="PMBorderColor">#5F5F5F</Color>
204204
<Color x:Key="PMHeaderBackgroundColor">#3f3f3f</Color>
205205
<Color x:Key="PMDataGridBackgroundColor">#474747</Color>
206+
<Color x:Key="PMDataAltBackgroundColor">#535353</Color>
206207
<Color x:Key="PMVersionCompatibleColor">#87B340</Color>
207208
<Color x:Key="PMVersionUncompatibleColor">#EB5555</Color>
208209
<Color x:Key="PMVersionUnknownColor">#73C5FF</Color>
210+
<Color x:Key="PMInnerVerticleLineColor">#646464</Color>
209211

210212
<SolidColorBrush x:Key="PMForegroundColorBrush" Color="{StaticResource PMForegroundColor}" />
211213
<SolidColorBrush x:Key="PMBorderColorBrush" Color="{StaticResource PMBorderColor}" />
212214
<SolidColorBrush x:Key="PMHeaderBackgroundColorBrush" Color="{StaticResource PMHeaderBackgroundColor}" />
213215
<SolidColorBrush x:Key="PMDataGridBackgroundColorBrush" Color="{StaticResource PMDataGridBackgroundColor}" />
216+
<SolidColorBrush x:Key="PMDataAltBackgroundColorBrush" Color="{StaticResource PMDataAltBackgroundColor}" />
214217
<SolidColorBrush x:Key="PMVersionCompatibleColorBrush" Color="{StaticResource PMVersionCompatibleColor}" />
215218
<SolidColorBrush x:Key="PMVersionUncompatibleColorBrush" Color="{StaticResource PMVersionUncompatibleColor}" />
216219
<SolidColorBrush x:Key="PMVersionUnknownColorBrush" Color="{StaticResource PMVersionUnknownColor}" />
220+
<SolidColorBrush x:Key="PMInnerVerticleLineColorBrush" Color="{StaticResource PMInnerVerticleLineColor}" />
217221
</ResourceDictionary>

src/DynamoCoreWpf/UI/Themes/Modern/DynamoModern.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6480,7 +6480,7 @@
64806480
<Setter Property="BorderBrush" Value="{StaticResource DarkMidGreyBrush}" />
64816481
<Setter Property="ColumnWidth" Value="Auto" />
64826482
<Setter Property="GridLinesVisibility" Value="Vertical" />
6483-
<Setter Property="VerticalGridLinesBrush" Value="{StaticResource DarkMidGreyBrush}" />
6483+
<Setter Property="VerticalGridLinesBrush" Value="{StaticResource PMInnerVerticleLineColorBrush}" />
64846484
<Setter Property="UseLayoutRounding" Value="True" />
64856485
<Setter Property="SnapsToDevicePixels" Value="True" />
64866486
</Style>

src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchViewModel.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,24 @@ internal void filter_PropertyChanged(object sender, PropertyChangedEventArgs e)
825825
negateFilter.OnChecked = false;
826826
break;
827827

828+
// Mutually exclusive case for Compatible and Incompatible
829+
case var name when name.Equals(Resources.PackageCompatible):
830+
if (!filter.OnChecked)
831+
break;
832+
var incompatibleFilter = CompatibilityFilter.First(x => x.FilterName.Equals(Resources.PackageIncompatible));
833+
if (!incompatibleFilter.OnChecked)
834+
break;
835+
incompatibleFilter.OnChecked = false;
836+
break;
837+
838+
case var name when name.Equals(Resources.PackageIncompatible):
839+
if (!filter.OnChecked)
840+
break;
841+
var compatibleFilter = CompatibilityFilter.First(x => x.FilterName.Equals(Resources.PackageCompatible));
842+
if (!compatibleFilter.OnChecked)
843+
break;
844+
compatibleFilter.OnChecked = false;
845+
break;
828846
}
829847
}
830848

src/PackageDetailsViewExtension/PackageDetailsView.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
<controls:InverseEmptyListToVisibilityConverter x:Key="InverseEmptyListToVisibilityConverter" />
3030
<controls:CopyrightInfoTooltipConverter x:Key="CopyrightInfoTooltipConverter" />
3131
<controls:PackageDetailsLinkCollapseOnEmpty x:Key="PackageDetailsLinkCollapseOnEmpty" />
32+
<controls:VersionStringAsteriskToXConverter x:Key="VersionStringAsteriskToXConverter" />
3233
<SolidColorBrush x:Key="ForegroundGrayBrush" Color="#D8D8D8" />
3334
<SolidColorBrush x:Key="HoverBorderGrayBrush" Color="#6d6d6d" />
3435
<SolidColorBrush x:Key="PressedBorderGrayBrush" Color="#7e7e7e" />
@@ -693,7 +694,7 @@
693694
<TextBlock Margin="0,5" Text="{x:Static p:Resources.PackageDetailsCompatibilityWithSetup}" />
694695
<DataGrid x:Name="VersionCompatibilityDataGrid"
695696
Margin="0,0,20,20"
696-
AlternatingRowBackground="{StaticResource PMDataGridBackgroundColorBrush}"
697+
AlternatingRowBackground="{StaticResource PMDataAltBackgroundColorBrush}"
697698
AlternationCount="2"
698699
AutoGenerateColumns="False"
699700
Background="{StaticResource ExtensionBackgroundColor}"
@@ -709,6 +710,7 @@
709710
IsReadOnly="True"
710711
IsSynchronizedWithCurrentItem="True"
711712
ItemsSource="{Binding VersionInformation}"
713+
RowBackground="{StaticResource PMDataGridBackgroundColorBrush}"
712714
RowDetailsVisibilityMode="Collapsed"
713715
ScrollViewer.CanContentScroll="True"
714716
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
@@ -721,7 +723,7 @@
721723
Binding="{Binding CompatibilityName}"
722724
Header="" />
723725
<DataGridTextColumn Width="3*"
724-
Binding="{Binding Versions}"
726+
Binding="{Binding Versions, Converter={StaticResource VersionStringAsteriskToXConverter}}"
725727
Header="{x:Static p:Resources.PublishPackageViewPackageVersion}" />
726728
</DataGrid.Columns>
727729
</DataGrid>

test/DynamoCoreWpfTests/PackageManager/PackageManagerSearchElementViewModelTests.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,8 @@ public void PackageSearchDialogSearchTestCompatibilityFilters()
593593
new FilterEntry(unknownCompatibilityFilterName, "Filter by compatibility", "Unknown Compatibility Packages", packageManagerSearchViewModel) { OnChecked = false },
594594
};
595595

596+
packageManagerSearchViewModel.CompatibilityFilter.ForEach(f => f.PropertyChanged += packageManagerSearchViewModel.filter_PropertyChanged);
597+
596598
// Adding compatible packages
597599
foreach (var package in compatiblePackagesName)
598600
{
@@ -654,17 +656,19 @@ public void PackageSearchDialogSearchTestCompatibilityFilters()
654656
Assert.IsNotNull(packageManagerSearchViewModel.SearchResults, "No results found");
655657
Assert.That(packageManagerSearchViewModel.SearchResults.Count == compatiblePackagesName.Count, "Filtered results do not match the compatible packages");
656658

657-
// Reset (Filters are not mutually exclusive)
658-
packageManagerSearchViewModel.CompatibilityFilter[0].OnChecked = false;
659-
660659
// Check the Incompatible filter
661660
packageManagerSearchViewModel.CompatibilityFilter[1].OnChecked = true;
662661
packageManagerSearchViewModel.CompatibilityFilter[1].FilterCommand.Execute(string.Empty);
663662
Assert.IsNotNull(packageManagerSearchViewModel.SearchResults, "No results found");
664663
Assert.That(packageManagerSearchViewModel.SearchResults.Count == incompatiblePackagesName.Count, "Filtered results do not match the incompatible packages");
665664

666-
// Reset (Filters are not mutually exclusive)
667-
packageManagerSearchViewModel.CompatibilityFilter[1].OnChecked = false;
665+
// Asserts that Compatible and Incompatible filters are mutually exclusive
666+
Assert.IsFalse(packageManagerSearchViewModel.CompatibilityFilter[0].OnChecked, "Compatible and Incompatible filters should be mutually exclusive");
667+
packageManagerSearchViewModel.CompatibilityFilter[0].OnChecked = true;
668+
Assert.IsFalse(packageManagerSearchViewModel.CompatibilityFilter[1].OnChecked, "Compatible and Incompatible filters should be mutually exclusive");
669+
670+
// Reset (These filters are not mutually exclusive)
671+
packageManagerSearchViewModel.CompatibilityFilter[0].OnChecked = false;
668672

669673
// Check the Unknown Compatibility filter
670674
packageManagerSearchViewModel.CompatibilityFilter[2].OnChecked = true;

0 commit comments

Comments
 (0)