Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pm - files and folders counter - UI improvements #15359

Merged
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 23 additions & 5 deletions src/DynamoCore/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion src/DynamoCore/Properties/Resources.en-US.resx
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,12 @@ Parameter name: {0}</value>
<value>The current user, '{0}', is not a maintainer of the package '{1}'.</value>
<comment>{0} = user name (i.e. 'DynamoTeam'), {1} = package name (i.e. 'Clockwork for Dynamo 1.x')</comment>
</data>
<data name="PackageManagerPackagePreviewCounter" xml:space="preserve">
<value>{0} files and {1} folders will be created.</value>
</data>
<data name="PackageManagerPackageSelectCounter" xml:space="preserve">
<value>{0} files and {1} folders loaded.</value>
</data>
<data name="DuplicatedOlderPackage" xml:space="preserve">
<value>An older version of the package called {0} version {2} was found at {1} with version {3}. The older version has been ignored.</value>
</data>
Expand Down Expand Up @@ -914,4 +920,4 @@ This package likely contains an assembly that is blocked. You will need to load
<data name="InputNodeRenameHint" xml:space="preserve">
<value>default input name, rename me!</value>
</data>
</root>
</root>
8 changes: 7 additions & 1 deletion src/DynamoCore/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -742,6 +742,12 @@ Parameter name: {0}</value>
<value>The current user, '{0}', is not a maintainer of the package '{1}'.</value>
<comment>{0} = user name (i.e. 'DynamoTeam'), {1} = package name (i.e. 'Clockwork for Dynamo 1.x')</comment>
</data>
<data name="PackageManagerPackagePreviewCounter" xml:space="preserve">
<value>{0} files and {1} folders will be created.</value>
</data>
<data name="PackageManagerPackageSelectCounter" xml:space="preserve">
<value>{0} files and {1} folders loaded.</value>
</data>
<data name="DuplicatedOlderPackage" xml:space="preserve">
<value>An older version of the package called {0} version {2} was found at {1} with version {3}. The older version has been ignored.</value>
</data>
Expand Down Expand Up @@ -917,4 +923,4 @@ This package likely contains an assembly that is blocked. You will need to load
<data name="InputNodeRenameHint" xml:space="preserve">
<value>default input name, rename me!</value>
</data>
</root>
</root>
2 changes: 2 additions & 0 deletions src/DynamoCore/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2894,6 +2894,8 @@ static Dynamo.Properties.Resources.OutputPortAlternativeName.get -> string
static Dynamo.Properties.Resources.PackageEmpty.get -> string
static Dynamo.Properties.Resources.PackageLoadFailureForBlockedAssembly.get -> string
static Dynamo.Properties.Resources.PackageManagerPackageAlreadyExists.get -> string
static Dynamo.Properties.Resources.PackageManagerPackagePreviewCounter.get -> string
static Dynamo.Properties.Resources.PackageManagerPackageSelectCounter.get -> string
static Dynamo.Properties.Resources.PackageManagerUserIsNotAMaintainer.get -> string
static Dynamo.Properties.Resources.PackageStateError.get -> string
static Dynamo.Properties.Resources.PackageStateErrorTooltip.get -> string
Expand Down
6 changes: 6 additions & 0 deletions src/DynamoCoreWpf/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1249,7 +1249,10 @@ Dynamo.PackageManager.UI.PackageNameLengthValidationRule
Dynamo.PackageManager.UI.PackageNameLengthValidationRule.PackageNameLengthValidationRule() -> void
Dynamo.PackageManager.UI.PublishPackagePreviewPage
Dynamo.PackageManager.UI.PublishPackagePreviewPage.Dispose() -> void
Dynamo.PackageManager.UI.PublishPackagePreviewPage.FilesAndFoldersCounterPreview.get -> string
Dynamo.PackageManager.UI.PublishPackagePreviewPage.FilesAndFoldersCounterPreview.set -> void
Dynamo.PackageManager.UI.PublishPackagePreviewPage.InitializeComponent() -> void
Dynamo.PackageManager.UI.PublishPackagePreviewPage.PropertyChanged -> System.ComponentModel.PropertyChangedEventHandler
Dynamo.PackageManager.UI.PublishPackagePreviewPage.PublishPackagePreviewPage() -> void
Dynamo.PackageManager.UI.PublishPackagePublishPage
Dynamo.PackageManager.UI.PublishPackagePublishPage.Dispose() -> void
Expand All @@ -1260,6 +1263,8 @@ Dynamo.PackageManager.UI.PublishPackageSelectPage
Dynamo.PackageManager.UI.PublishPackageSelectPage.AllItemsSelected.get -> bool
Dynamo.PackageManager.UI.PublishPackageSelectPage.AllItemsSelected.set -> void
Dynamo.PackageManager.UI.PublishPackageSelectPage.Dispose() -> void
Dynamo.PackageManager.UI.PublishPackageSelectPage.FilesAndFoldersCounterPreview.get -> string
Dynamo.PackageManager.UI.PublishPackageSelectPage.FilesAndFoldersCounterPreview.set -> void
Dynamo.PackageManager.UI.PublishPackageSelectPage.InitializeComponent() -> void
Dynamo.PackageManager.UI.PublishPackageSelectPage.ItemSelection.get -> System.Collections.ObjectModel.ObservableCollection<Dynamo.PackageManager.UI.PackageItemRootViewModel>
Dynamo.PackageManager.UI.PublishPackageSelectPage.ItemSelection.set -> void
Expand Down Expand Up @@ -5623,6 +5628,7 @@ virtual Dynamo.Controls.IntegerDisplay.Convert(object value, System.Type targetT
virtual Dynamo.Controls.IntegerDisplay.ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
virtual Dynamo.PackageManager.PackageManagerSearchViewModel.OnRequestShowFileDialog(object sender, Dynamo.ViewModels.PackagePathEventArgs e) -> void
virtual Dynamo.PackageManager.PublishPackageViewModel.OnRequestShowFileDialog(object sender, Dynamo.ViewModels.PackagePathEventArgs e) -> void
virtual Dynamo.PackageManager.UI.PublishPackagePreviewPage.RaisePropertyChanged(string propertyName) -> void
virtual Dynamo.PackageManager.UI.PublishPackageSelectPage.RaisePropertyChanged(string propertyName) -> void
virtual Dynamo.PackageManager.ViewModels.PackageManagerSearchElementViewModel.OnRequestShowFileDialog(object sender, Dynamo.ViewModels.PackagePathEventArgs e) -> void
virtual Dynamo.UI.Controls.CodeCompletionEditor.OnCommitChange() -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ internal void LoadEvents()

var uploadType = PublishPackageViewModel.UploadType;
var publishedFiles = PackageItemRootViewModel.GetFiles(PublishPackageViewModel.PackageContents.ToList());
var count = publishedFiles.Count(x => x.DependencyType != DependencyType.Folder);
var count = publishedFiles.Count(x => x.DependencyType != DependencyType.Folder
|| x.DependencyType != DependencyType.CustomNodePreview);
var message = uploadType.Equals(PackageUploadHandle.UploadType.Local) ?
Dynamo.Wpf.Properties.Resources.PackageManagerFinishedPackageFilesPublishedMessage :
Dynamo.Wpf.Properties.Resources.PackageManagerFinishedPackageFilesUploadedMessage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
xmlns:packagemanager="clr-namespace:Dynamo.PackageManager"
d:DesignHeight="450" d:DesignWidth="800"
UseLayoutRounding="True"
x:Name="PreviewPackagePage"
Title="PublishPackagePreviewPage">
<Page.Resources>
<ResourceDictionary>
Expand Down Expand Up @@ -316,13 +317,24 @@
<RowDefinition Height="28px" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>


<!-- Info text -->
<TextBlock
Margin="5 5 20 5"
HorizontalAlignment="Left"
FontFamily="{StaticResource ArtifaktElementRegular}"
FontSize="10"
Foreground="#F5F5F5"
DataContext="{Binding ElementName=PreviewPackagePage}"
Text="{Binding FilesAndFoldersCounterPreview, UpdateSourceTrigger=PropertyChanged}"/>

<local:CustomBrowserControl x:Name="customBrowserControl"
Grid.Column="0"
Grid.Row="1"
Loaded="customBrowserControl_Loaded"
Root="{Binding PreviewPackageContents, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
DisableRemove="True"/>
Grid.Column="0"
Grid.Row="1"
Loaded="customBrowserControl_Loaded"
Root="{Binding PreviewPackageContents, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
DisableRemove="True"/>

<!--Files-->
<DataGrid x:Name="rootContentsDataGrid"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,38 @@
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;


namespace Dynamo.PackageManager.UI
{
/// <summary>
/// Interaction logic for PublishPackagePreviewPage.xaml
/// </summary>
public partial class PublishPackagePreviewPage : Page
public partial class PublishPackagePreviewPage : Page, INotifyPropertyChanged
{
private PublishPackageViewModel PublishPackageViewModel;

public event PropertyChangedEventHandler PropertyChanged;

private string _filesAndFoldersCounterPreview;
public string FilesAndFoldersCounterPreview
{
get { return _filesAndFoldersCounterPreview; }
set
{
if (_filesAndFoldersCounterPreview != value)
{
_filesAndFoldersCounterPreview = value;
RaisePropertyChanged(nameof(FilesAndFoldersCounterPreview));
}
}
}

protected virtual void RaisePropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

/// <summary>
/// Constructor
/// </summary>
Expand All @@ -21,9 +44,55 @@ public PublishPackagePreviewPage()
this.Tag = "Preview Package Contents";
}

private void PublishPackageViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (PublishPackageViewModel == null) return;
if (e.PropertyName == nameof(PublishPackageViewModel.PreviewPackageContents))
{
int contentFileCount = 0;
int contentFolderCount = 0;

foreach (var item in PublishPackageViewModel.PreviewPackageContents)
{
CountFileItems(item, ref contentFileCount, ref contentFolderCount);
}

//set the counter text
var counterText = string.Format(Properties.Resources.PackageManagerPackagePreviewCounter, contentFileCount, contentFolderCount);
FilesAndFoldersCounterPreview = counterText;
};
}

private void CountFileItems(PackageItemRootViewModel item, ref int contentFileCount, ref int contentFolderCount)
{
// Base count if the item itself is a file, custom node, or assembly
if (item.DependencyType == DependencyType.File ||
item.DependencyType == DependencyType.CustomNodePreview ||
item.DependencyType == DependencyType.Assembly)
{
contentFileCount++;
}

// If the item is a folder, recursively count its children
if (item.DependencyType == DependencyType.Folder)
{
contentFolderCount++;
foreach (var child in item.ChildItems)
{
CountFileItems(child, ref contentFileCount, ref contentFolderCount);
}
}
}

private void PublishPackagePublishPage_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (PublishPackageViewModel != null)
{
PublishPackageViewModel.PropertyChanged -= PublishPackageViewModel_PropertyChanged;
}

PublishPackageViewModel = this.DataContext as PublishPackageViewModel;
PublishPackageViewModel.PropertyChanged += PublishPackageViewModel_PropertyChanged;
}

internal void LoadEvents()
Expand All @@ -41,6 +110,7 @@ internal void LoadEvents()

public void Dispose()
{
this.PublishPackageViewModel.PropertyChanged -= PublishPackageViewModel_PropertyChanged;
this.PublishPackageViewModel = null;
this.DataContextChanged -= PublishPackagePublishPage_DataContextChanged;
this.customBrowserControl?.Dispose();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
UseLayoutRounding="True"
x:Name="PublishPackagePage"
x:Name="SelectPackagePage"
Title="PublishPackageSelectPage">
<Page.Resources>
<ResourceDictionary>
Expand Down Expand Up @@ -179,7 +179,7 @@
VerticalAlignment="Center">
<CheckBox IsThreeState="False"
VerticalAlignment="Center"
DataContext="{Binding ElementName=PublishPackagePage}"
DataContext="{Binding ElementName=SelectPackagePage}"
IsChecked="{Binding
Path=AllItemsSelected,
UpdateSourceTrigger=PropertyChanged,
Expand Down Expand Up @@ -211,7 +211,7 @@

<StackPanel DockPanel.Dock="Right"
Orientation="Horizontal"
Visibility="{Binding ElementName=PublishPackagePage,
Visibility="{Binding ElementName=SelectPackagePage,
Path=ItemSelection.Count,
UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource ZeroToVisibilityCollapsedConverter}}">
Expand Down Expand Up @@ -253,7 +253,7 @@
FontSize="14">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} selected">
<Binding ElementName="PublishPackagePage"
<Binding ElementName="SelectPackagePage"
Path="ItemSelection.Count" />
</MultiBinding>
</TextBlock.Text>
Expand Down Expand Up @@ -367,10 +367,10 @@
<Setter Property="EnableRowVirtualization" Value="False" />
</Style>
<!--#endregion-->

</ResourceDictionary>
</Page.Resources>

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
Expand All @@ -387,7 +387,18 @@
Grid.ColumnSpan="2"
Margin="5 5 20 5"
VerticalAlignment="Top"
HorizontalAlignment="Right">
HorizontalAlignment="Stretch">

<!-- Info text -->
<TextBlock
DockPanel.Dock="Left"
HorizontalAlignment="Left"
FontFamily="{StaticResource ArtifaktElementRegular}"
FontSize="10"
Foreground="#F5F5F5"
DataContext="{Binding ElementName=SelectPackagePage}"
Text="{Binding FilesAndFoldersCounterPreview, UpdateSourceTrigger=PropertyChanged}"/>

<!-- Add Directory -->
<Button Command="{Binding Path=SelectDirectoryAndAddFilesRecursivelyCommand}"
Content="{x:Static p:Resources.PublishPackageViewAddDirectoryButton}"
Expand Down Expand Up @@ -428,6 +439,7 @@
<Button Command="{Binding Path=ShowAddFileDialogAndAddCommand}"
Content="{x:Static p:Resources.PublishPackageViewAddFileButton}"
DockPanel.Dock="Right"
HorizontalAlignment="Right"
TabIndex="15"
Margin="0 2 10 0"
Background="{StaticResource PrimaryCharcoal300Brush}"
Expand Down
Loading
Loading