Skip to content
Closed
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
25dae72
FirstPass
saintentropy May 5, 2025
5a87ccd
Progress update
saintentropy May 11, 2025
106b8ed
Add Inport triggers and tooltip
saintentropy May 11, 2025
fa31803
Progress Update
saintentropy May 12, 2025
6724c68
Progress on NodeView
saintentropy May 12, 2025
13b986d
Simplify InPorts including lazy load of level spinner
saintentropy May 13, 2025
7ce45f0
Cleanup + Support Code blocks
saintentropy May 13, 2025
e940553
Simplify Ports and verify with Groups
saintentropy May 13, 2025
1d71b38
Add NodeAutoCompleteHover to InPort
saintentropy May 14, 2025
6c6cdd8
Finish node ui
saintentropy May 15, 2025
f87bcf2
fix typo
saintentropy May 15, 2025
24a854d
Merge branch 'master' into CodeOnlyNodeView
saintentropy May 15, 2025
3d96a27
NodeView clean up, comments, and deregister event handlers
saintentropy May 15, 2025
3f79235
Inport cleanup, comments, and deregister events
saintentropy May 16, 2025
e74e8d8
remove BeginInit / EndInit
saintentropy May 16, 2025
b387f0d
Clean up Outport, add comments, deregister events
saintentropy May 16, 2025
3037ffc
Fix test and realing names with old names
saintentropy May 16, 2025
98a6a11
Update api docs
saintentropy May 16, 2025
3136e36
Fix tests
saintentropy May 16, 2025
c84d3e4
Fix API doc
saintentropy May 16, 2025
3bb8e4b
fIx api doc
saintentropy May 16, 2025
0ccf319
First pass at lazy load
saintentropy May 20, 2025
10ca6ea
Change to background
saintentropy May 23, 2025
c6fecdc
Merge branch 'master' of https://github.com/DynamoDS/Dynamo into Cach…
zeusongit May 27, 2025
5fc3ed3
add missing trigger
zeusongit May 27, 2025
7833644
Merge branch 'master' of https://github.com/DynamoDS/Dynamo into DYN-…
zeusongit Jun 18, 2025
4ae3ee7
Update NodeView.xaml.cs
zeusongit Jun 18, 2025
9d09c73
reinstate opacity converter
zeusongit Jun 19, 2025
dded96f
Apply defer based on node count
zeusongit Jun 19, 2025
ef6af98
record node load time in debug
zeusongit Jun 19, 2025
6a6da15
Add user authentication middleware
zeusongit Jul 2, 2025
d96130f
Merge branch 'master' of https://github.com/DynamoDS/Dynamo into DYN-…
zeusongit Jul 2, 2025
d6a4ac9
deferred load
zeusongit Jul 2, 2025
955df68
Update NodeView.xaml.cs
zeusongit Jul 2, 2025
5c80204
Improve node loading UI and expose loading properties
zeusongit Jul 2, 2025
d1fc40f
comments
zeusongit Jul 2, 2025
a02d7ef
remove customized nodes
zeusongit Jul 7, 2025
400b8a4
Move the ResourceSet to static field
saintentropy Jul 9, 2025
973a34d
Removed commented out sections
saintentropy Jul 9, 2025
1691e06
typo
saintentropy Jul 9, 2025
9dc24fb
typo
saintentropy Jul 9, 2025
70eb82d
Merge branch 'master' of https://github.com/DynamoDS/Dynamo into DYN-…
zeusongit Jul 9, 2025
f01db26
Merge pull request #2 from saintentropy/DYN-8303-2
zeusongit Jul 9, 2025
77f15a7
Update NodeView.xaml.cs
zeusongit Jul 9, 2025
3d79013
fix merge
zeusongit Jul 9, 2025
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
20 changes: 17 additions & 3 deletions src/DynamoCoreWpf/Controls/NotificationsControl.xaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<UserControl x:Class="Dynamo.Wpf.Controls.NotificationsControl"
<UserControl x:Class="Dynamo.Wpf.Controls.NotificationsControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Expand Down Expand Up @@ -35,6 +35,7 @@
<core:NotificationLevelToColorConverter x:Key="NotificationLevelToColorConverter"></core:NotificationLevelToColorConverter>
<core:ZeroToVisibilityCollapsedConverter x:Key="ZeroToVisibilityCollapsedConverter" />
<converters:EmptyStringToHiddenConverter x:Key="EmptyStringToHiddenConverter" />
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
<converters:LinterIssueCountToVisibilityConverter x:Key="LinterIssueCountToVisibilityConverter" />
<ResourceDictionary.MergedDictionaries>
<ui:SharedResourceDictionary Source="{x:Static ui:SharedDictionaryManager.DynamoConvertersDictionaryUri}" />
Expand All @@ -45,6 +46,7 @@

<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
Expand Down Expand Up @@ -128,8 +130,20 @@
</ItemsControl.ItemsPanel>
</ItemsControl>

<StackPanel
Grid.Column="2"
Orientation="Horizontal" Margin="30,0"
Visibility="{Binding HomeSpaceViewModel.NodesLoading, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BoolToVisibilityConverter}}">
<Image Width="20"
Source="/DynamoCoreWpf;component/UI/Images/alert.png" />
<Label x:Name="LoadedNodesText"
Content="{Binding HomeSpaceViewModel.LoadedNodesCount}"
FontSize="12" Padding="2 3 2 2"
Foreground="{StaticResource PrimaryCharcoal200Brush}"/>
</StackPanel>

<StackPanel Orientation="Horizontal"
Grid.Column="2"
Grid.Column="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Margin="30,0"
Expand All @@ -156,4 +170,4 @@
</StackPanel>

</Grid>
</UserControl>
</UserControl>
3 changes: 2 additions & 1 deletion src/DynamoCoreWpf/DynamoCoreWpf.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<UILib>true</UILib>
</PropertyGroup>
Expand Down Expand Up @@ -414,6 +414,7 @@
<EmbeddedResource Include="Properties\Resources.ru-RU.resx" />
<EmbeddedResource Include="Properties\Resources.zh-CN.resx" />
<EmbeddedResource Include="Properties\Resources.zh-TW.resx" />
<EmbeddedResource Include="NodeCacheImages.resx" />
</ItemGroup>

<ItemGroup>
Expand Down
2,968 changes: 2,968 additions & 0 deletions src/DynamoCoreWpf/NodeCacheImages.resx

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions src/DynamoCoreWpf/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4462,6 +4462,7 @@ readonly Dynamo.Wpf.ViewModels.Watch3D.DefaultWatch3DViewModel.preferences -> Dy
readonly Dynamo.Wpf.ViewModels.Watch3D.DefaultWatch3DViewModel.scheduler -> Dynamo.Scheduler.IScheduler
readonly Dynamo.Wpf.ViewModels.Watch3D.DefaultWatch3DViewModel.watchModel -> Dynamo.Graph.Nodes.NodeModel
static Dynamo.Controls.DynamoView.getUniqueAddOnCategories(System.Collections.Generic.IEnumerable<Dynamo.Search.SearchElements.NodeSearchElement> elements) -> System.Collections.Generic.IEnumerable<string>
static Dynamo.Controls.NodeView.GetNodeImage(string nodeName) -> System.Windows.Media.Imaging.BitmapImage
static Dynamo.Interfaces.WatchHandler.GenerateWatchViewModelForData(this Dynamo.Interfaces.IWatchHandler handler, dynamic value, System.Collections.Generic.IEnumerable<string> preferredDictionaryOrdering, ProtoCore.RuntimeCore runtimeCore, string tag, bool showRawData = true) -> Dynamo.ViewModels.WatchViewModel
static Dynamo.Nodes.AnnotationView.SelectAllTextOnFocus -> System.Windows.DependencyProperty
static Dynamo.PackageManager.PackageManagerSearchViewModel.FormatPackageVersionList(System.Collections.Generic.IEnumerable<System.Tuple<Greg.Responses.PackageHeader, Greg.Responses.PackageVersion>> packages) -> string
Expand Down Expand Up @@ -4517,11 +4518,13 @@ static Dynamo.Utilities.WindowsBaseExtensions.AsDynamoType(this System.Windows.P
static Dynamo.Utilities.WindowsBaseExtensions.AsWindowsType(this Dynamo.Utilities.Point2D point) -> System.Windows.Point
static Dynamo.Utilities.WindowsBaseExtensions.AsWindowsType(this Dynamo.Utilities.Thickness thickness) -> System.Windows.Thickness
static Dynamo.ViewModels.ConnectorPinViewModel.OneThirdWidth.get -> double
static Dynamo.ViewModels.DynamoViewModel.MigrateNodeCacheToResX() -> void
static Dynamo.ViewModels.DynamoViewModel.ReportABug() -> void
static Dynamo.ViewModels.DynamoViewModel.ReportABug(object bodyContent) -> void
static Dynamo.ViewModels.DynamoViewModel.Start(Dynamo.ViewModels.DynamoViewModel.StartConfiguration startConfiguration = default(Dynamo.ViewModels.DynamoViewModel.StartConfiguration)) -> Dynamo.ViewModels.DynamoViewModel
static Dynamo.ViewModels.GeometryScalingOptions.ConvertScaleFactorToUI(int scaleValue) -> int
static Dynamo.ViewModels.GeometryScalingOptions.ConvertUIToScaleFactor(int index) -> int
static Dynamo.ViewModels.NodeViewModel.GetNodeImage(string nodeName) -> System.Windows.Media.Imaging.BitmapImage
static Dynamo.ViewModels.SearchViewModel.RemoveLastPartOfText(string text) -> string
static Dynamo.Wpf.Extensions.ObservableCollectionExtension.TryInsert(this System.Collections.ObjectModel.ObservableCollection<Dynamo.Wpf.ViewModels.ISearchEntryViewModel> items, int index, Dynamo.Wpf.ViewModels.ISearchEntryViewModel entry) -> void
static Dynamo.Wpf.Properties.Resources.AboutWindowCannotGetVersion.get -> string
Expand Down
43 changes: 43 additions & 0 deletions src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,25 @@ internal void OnRequestNodeAutoCompleteViewExtension(MLNodeClusterAutoCompletion
RequestNodeAutoCompleteViewExtension?.Invoke(clusterNodeAutoComplete);
}

private Stopwatch nodeLoadStopwatch = new Stopwatch();
//internal event Action NodeViewLoaded;
internal void OnNodeViewLoaded()
{
if (loadedNodesCount < Nodes.Count)
{
if (!nodeLoadStopwatch.IsRunning)
{
nodeLoadStopwatch.Restart();
}
}
loadedNodesCount++;
if (loadedNodesCount == Nodes.Count)
{
nodeLoadStopwatch.Stop();
DynamoViewModel.Model.Logger.Log($"{loadedNodesCount} nodes loaded in {nodeLoadStopwatch.ElapsedMilliseconds} ms");
}
}

#endregion

#region Properties and Fields
Expand Down Expand Up @@ -583,6 +602,28 @@ internal GeometryScalingViewModel GeoScalingViewModel
}
}

internal bool NodesLoading
{
get
{
return Nodes.Count() > LoadedNodesCount;
}
}

private int loadedNodesCount = 0;
internal int LoadedNodesCount
{
get
{
return loadedNodesCount;
}
set
{
loadedNodesCount = value;
RaisePropertyChanged(nameof(LoadedNodesCount));
RaisePropertyChanged(nameof(NodesLoading));
}
}
/// <summary>
/// Ensures that a preview control is initialized only when it is
/// absolutely needed. It lives here so that it can be shared by
Expand Down Expand Up @@ -969,6 +1010,7 @@ void Model_NodesCleared()
Errors.Clear();

PostNodeChangeActions();
loadedNodesCount=0;
}

private void unsubscribeNodeEvents(NodeViewModel nodeViewModel)
Expand All @@ -995,6 +1037,7 @@ void Model_NodeRemoved(NodeModel node)
PostNodeChangeActions();

SetNodeCountOptimizationEnabled(zoomAnimationThresholdFeatureFlagVal);
loadedNodesCount--;
}

void Model_NodeAdded(NodeModel node)
Expand Down
Loading
Loading