Skip to content

Commit

Permalink
feat: default to install tab when any package is found
Browse files Browse the repository at this point in the history
  • Loading branch information
iadonkey committed Sep 15, 2023
1 parent 64ad990 commit 9656ba6
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 26 deletions.
7 changes: 4 additions & 3 deletions TwinpackVsixShared/Dialogs/CatalogWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
<local:NullToVisibilityConverter x:Key="NullToVisibilityConverter"/>
<local:BooleanToInverseBooleanConverter x:Key="BooleanToInverseBooleanConverter"/>
<local:IntToVisibilityConverter x:Key="IntToVisibilityConverter"/>
<local:BooleanToBorderThicknessConverter x:Key="BooleanToBorderThicknessConverter"/>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
Expand Down Expand Up @@ -55,13 +56,13 @@
<ColumnDefinition Width="auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Background="Transparent" Grid.Column="0" Click="ShowCatalog_Click" Padding="15 5 15 5" Margin="50 0 0 0" BorderThickness="0" FontSize="14" FontWeight="SemiBold">Browse</Button>
<Button Background="Transparent" Grid.Column="1" Click="ShowInstalledPackages_Click" Padding="15 5 15 5" Margin="30 0 0 0" BorderThickness="0" FontSize="14" FontWeight="SemiBold">
<Button BorderThickness="{Binding IsBrowsingAvailablePackages, Converter={StaticResource BooleanToBorderThicknessConverter}}" Background="Transparent" Grid.Column="0" Click="ShowCatalog_Click" Padding="15 5 15 5" Margin="50 0 0 0" FontSize="14" FontWeight="SemiBold">Browse</Button>
<Button BorderThickness="{Binding IsBrowsingInstalledPackages, Converter={StaticResource BooleanToBorderThicknessConverter}}" Background="Transparent" Grid.Column="1" Click="ShowInstalledPackages_Click" Padding="15 5 15 5" Margin="30 0 0 0" FontSize="14" FontWeight="SemiBold">
<TextBlock>
<Run>Installed (</Run><Run Text="{Binding InstalledPackagesCount}"></Run><Run>)</Run>
</TextBlock>
</Button>
<Button Background="Transparent" Grid.Column="2" Click="ShowUpdateablePackages_Click" Padding="15 5 15 5" Margin="30 0 0 0" BorderThickness="0" FontSize="14" FontWeight="SemiBold">
<Button BorderThickness="{Binding IsBrowsingUpdatablePackages, Converter={StaticResource BooleanToBorderThicknessConverter}}" Background="Transparent" Grid.Column="2" Click="ShowUpdateablePackages_Click" Padding="15 5 15 5" Margin="30 0 0 0" FontSize="14" FontWeight="SemiBold">
<TextBlock>
<Run>Updates (</Run><Run Text="{Binding UpdateablePackagesCount}"></Run><Run>)</Run>
</TextBlock>
Expand Down
86 changes: 63 additions & 23 deletions TwinpackVsixShared/Dialogs/CatalogWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public bool IsFetchingAvailablePackages
_isFetchingAvailablePackages = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsFetchingAvailablePackages)));

if (_isBrowsingAvailablePackages || _isBrowsingUpdatablePackages)
if (IsBrowsingAvailablePackages || IsBrowsingUpdatablePackages)
{
if (_isFetchingAvailablePackages)
IsCatalogLoading = true;
Expand Down Expand Up @@ -122,7 +122,7 @@ public bool IsFetchingInstalledPackages
_isFetchingInstalledPackages = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsFetchingInstalledPackages)));

if (_isBrowsingInstalledPackages)
if (IsBrowsingInstalledPackages)
{
if (_isFetchingInstalledPackages)
IsCatalogLoading = true;
Expand Down Expand Up @@ -361,13 +361,41 @@ public string InstalledPackageVersion
}
}

public bool IsBrowsingInstalledPackages
{
get { return _isBrowsingInstalledPackages; }
set
{
_isBrowsingInstalledPackages = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsBrowsingInstalledPackages)));
}
}

public bool IsBrowsingAvailablePackages
{
get { return _isBrowsingAvailablePackages; }
set
{
_isBrowsingAvailablePackages = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsBrowsingAvailablePackages)));
}
}

public bool IsBrowsingUpdatablePackages
{
get { return _isBrowsingUpdatablePackages; }
set
{
_isBrowsingUpdatablePackages = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsBrowsingUpdatablePackages)));
}
}

public CatalogWindow(PackageContext context)
{
_auth = new Authentication(_twinpackServer);
_context = context;

_isBrowsingAvailablePackages = true;

IsUpdateAllEnabled = true;
IsRestoreAllEnabled = true;
InstalledPackagesCount = 0;
Expand Down Expand Up @@ -399,11 +427,23 @@ private async void Dialog_Loaded(object sender, RoutedEventArgs e)
_plc = TwinpackUtils.ActivePlc(_context.Dte);

await _auth.LoginAsync(onlyTry: true);

_isBrowsingAvailablePackages = true;
await LoadPlcConfigAsync();
await LoadAvailablePackagesAsync();
await LoadInstalledPackagesAsync();

if(!IsConfigured)
{
IsBrowsingInstalledPackages = false;
IsBrowsingAvailablePackages = true;
await LoadAvailablePackagesAsync();
await LoadInstalledPackagesAsync();
}
else
{
IsBrowsingInstalledPackages = true;
IsBrowsingAvailablePackages = false;
await LoadInstalledPackagesAsync();
await LoadAvailablePackagesAsync();
}

UpdateCatalog();
}
catch (Exception ex)
Expand Down Expand Up @@ -705,25 +745,25 @@ public async void UpdateAllPackageButton_Click(object sender, RoutedEventArgs e)

public void ShowUpdateablePackages_Click(object sender, RoutedEventArgs e)
{
_isBrowsingAvailablePackages = false;
_isBrowsingUpdatablePackages = true;
_isBrowsingInstalledPackages = false;
IsBrowsingAvailablePackages = false;
IsBrowsingUpdatablePackages = true;
IsBrowsingInstalledPackages = false;
UpdateCatalog();
}

public void ShowInstalledPackages_Click(object sender, RoutedEventArgs e)
{
_isBrowsingAvailablePackages = false;
_isBrowsingUpdatablePackages = false;
_isBrowsingInstalledPackages = true;
IsBrowsingAvailablePackages = false;
IsBrowsingUpdatablePackages = false;
IsBrowsingInstalledPackages = true;
UpdateCatalog();
}

public async void ShowCatalog_Click(object sender, RoutedEventArgs e)
{
_isBrowsingAvailablePackages = true;
_isBrowsingUpdatablePackages = false;
_isBrowsingInstalledPackages = false;
IsBrowsingAvailablePackages = true;
IsBrowsingUpdatablePackages = false;
IsBrowsingInstalledPackages = false;

try
{
Expand All @@ -744,23 +784,23 @@ public async void ShowCatalog_Click(object sender, RoutedEventArgs e)
public void UpdateCatalog()
{
var text = SearchTextBox.Text;
if (_isBrowsingAvailablePackages)
if (IsBrowsingAvailablePackages)
{
Catalog = _availablePackages.Where(x =>
x.DisplayName.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0 ||
x.DistributorName.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0 ||
x.Name.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0).ToList();
IsCatalogLoading = IsFetchingAvailablePackages || _isLoadingPlcConfig;
}
else if (_isBrowsingInstalledPackages)
else if (IsBrowsingInstalledPackages)
{
Catalog = _installedPackages.Where(x =>
x.DisplayName.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0 ||
x.DistributorName.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0 ||
x.Name.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0).ToList();
IsCatalogLoading = IsFetchingInstalledPackages || _isLoadingPlcConfig;
}
else if (_isBrowsingUpdatablePackages)
else if (IsBrowsingUpdatablePackages)
{
Catalog = _installedPackages.Where(x => x.IsUpdateable &&
(x.DisplayName.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) >= 0 ||
Expand All @@ -769,8 +809,8 @@ public void UpdateCatalog()
IsCatalogLoading = IsFetchingInstalledPackages || _isLoadingPlcConfig;
}

IsUpdateAllVisible = _isBrowsingUpdatablePackages && Catalog.Any();
IsRestoreAllVisible = _isBrowsingInstalledPackages && Catalog.Any();
IsUpdateAllVisible = IsBrowsingUpdatablePackages && Catalog.Any();
IsRestoreAllVisible = IsBrowsingInstalledPackages && Catalog.Any();
}

public async Task UninstallPackageAsync()
Expand Down Expand Up @@ -1376,7 +1416,7 @@ public async void SearchTextBox_TextChanged(object sender, TextChangedEventArgs
{
var text = ((TextBox)sender).Text;

if (_isBrowsingAvailablePackages)
if (IsBrowsingAvailablePackages)
{
_searchText = text;
await Task.Delay(250);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows;
using System.Globalization;

namespace Twinpack.Dialogs
{
public class BooleanToBorderThicknessConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool boolValue = (bool)value;
return boolValue ? new Thickness(0, 0, 0, 2) : new Thickness(0, 0, 0, 0);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
1 change: 1 addition & 0 deletions TwinpackVsixShared/TwinpackVsixShared.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<DependentUpon>CatalogWindow.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Dialogs\Converters\BooleanToInverseBooleanConverter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Dialogs\Converters\BooleanToBorderThicknessConverter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Dialogs\Converters\BooleanToVisibilityConverter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Dialogs\Converters\IntToVisibilityConverter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Dialogs\Converters\NullToVisibilityConverter.cs" />
Expand Down

0 comments on commit 9656ba6

Please sign in to comment.