Skip to content

Conversation

zeusongit
Copy link
Contributor

@zeusongit zeusongit commented Jul 2, 2025

Purpose

This PR:

  • Adds deferred node load for graphs above 150 node count.
  • Simplifies node styles
  • Adds node cached images as resx resources.
  • Node progress counter

Defload_zoomin
Defload_zoomout
DynamoSandbox_9ZGsSO1zIa

Declarations

Check these if you believe they are true

  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document.
  • This PR modifies some build requirements and the readme is updated
  • This PR contains no files larger than 50 MB
  • This PR introduces new feature code involve network connecting and is tested with no-network mode.

Release Notes

Enable deferred node load

Reviewers

(FILL ME IN) Reviewer 1 (If possible, assign the Reviewer for the PR)

(FILL ME IN, optional) Any additional notes to reviewers or testers.

FYIs

(FILL ME IN, Optional) Names of anyone else you wish to be notified of

zeusongit added 4 commits July 1, 2025 23:05
Introduced a new middleware to handle user authentication for protected routes. This ensures that only authenticated users can access certain endpoints, improving application security.
@Copilot Copilot AI review requested due to automatic review settings July 2, 2025 05:04
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-8303

@zeusongit zeusongit requested a review from a team July 2, 2025 05:04
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enables deferred node loading for large graphs, refactors node styling with converter bindings, adds embedded cached node images, and introduces a node load progress counter.

  • Load nodes lazily when graph size exceeds threshold.
  • Simplify fade‐style bindings to converters.
  • Embed and display cached node images; show loading progress.

Reviewed Changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/DynamoCoreWpf/Views/Core/NodeView.xaml.cs Implements deferred node load, image caching, pixel arrays, style updates
src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs Tracks node load progress, exposes LoadedNodesCount and NodesLoading
src/DynamoCoreWpf/Controls/NotificationsControl.xaml Adds UI indicator for node loading progress
src/DynamoCoreWpf/DynamoCoreWpf.csproj Embeds NodeCacheImages.resx
src/DynamoCoreWpf/PublicAPI.Unshipped.txt Exposes new API entries for node image caching
Comments suppressed due to low confidence (1)

src/DynamoCoreWpf/PublicAPI.Unshipped.txt:4465

  • [nitpick] Exposing a UI helper method like GetNodeImage in the public API may leak internal implementation details. Consider keeping it internal or moving caching logic to a dedicated service.
static Dynamo.Controls.NodeView.GetNodeImage(string nodeName) -> System.Windows.Media.Imaging.BitmapImage

};

Canvas.SetZIndex(renameIndicator, 5);
SetValue(Panel.ZIndexProperty, 5);
Copy link

Copilot AI Jul 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This call sets ZIndex on the NodeView itself rather than on renameIndicator. Use renameIndicator.SetValue(Panel.ZIndexProperty, 5); or Canvas.SetZIndex(renameIndicator, 5); instead.

Suggested change
SetValue(Panel.ZIndexProperty, 5);
renameIndicator.SetValue(Panel.ZIndexProperty, 5);

Copilot uses AI. Check for mistakes.

zeusongit and others added 11 commits July 2, 2025 11:39
Replaces the static node loading indicator with an animated progress spinner and detailed loading status in NotificationsControl.xaml. Makes LoadedNodesCount and NodesLoading properties public in WorkspaceViewModel for better data binding. Caches node images after conversion in NodeView.xaml.cs to improve performance.
DYN-8303: Static Field Optimizations
@zeusongit
Copy link
Contributor Author

closing since the commit history got nuked by a bad merge created a new PR from a fresh branch #16361

@zeusongit zeusongit closed this Jul 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants