Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
30 changes: 5 additions & 25 deletions src/NodeAutoCompleteViewExtension/NodeAutoCompleteViewExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ public class NodeAutoCompleteViewExtension : ViewExtensionBase, IViewExtension,
private const String extensionName = "Node Auto Complete";
private ViewLoadedParams viewLoadedParamsReference;
private NodeAutoCompletePanelViewModel nodeAutoCompleteViewModel;
private NodeAutoCompleteBarView nodeAutoCompleteBarView;

internal MenuItem nodeAutocompleteMenuItem;

Expand Down Expand Up @@ -168,6 +167,7 @@ internal void ShowClusterNodeAutocompleteResults(MLNodeClusterAutoCompletionResp
}

private static NodeAutoCompleteBarViewModel nodeAutoCompleteBarViewModel;
private static Guid lastWorkspaceId;

private void OnNodeAutoCompleteBarRequested(Window parentWindow, ViewModelBase viewModelBase)
{
Expand All @@ -177,35 +177,15 @@ private void OnNodeAutoCompleteBarRequested(Window parentWindow, ViewModelBase v
return;
}

if (nodeAutoCompleteBarViewModel is null)
DynamoViewModel dynamoViewModel = portViewModel?.NodeViewModel?.WorkspaceViewModel?.DynamoViewModel;
if (nodeAutoCompleteBarViewModel is null || lastWorkspaceId != dynamoViewModel.CurrentSpace.Guid)
{
DynamoViewModel dynamoViewModel = portViewModel?.NodeViewModel?.WorkspaceViewModel?.DynamoViewModel;
nodeAutoCompleteBarViewModel = new NodeAutoCompleteBarViewModel(dynamoViewModel);
}

if (nodeAutoCompleteBarViewModel.PortViewModel != null)
{
nodeAutoCompleteBarViewModel.PortViewModel.Highlight = Visibility.Collapsed;
}

nodeAutoCompleteBarViewModel.PortViewModel = portViewModel;
portViewModel.Highlight = Visibility.Visible;

if (nodeAutoCompleteBarViewModel.IsOpen)
{
if (nodeAutoCompleteBarView == null)
{
nodeAutoCompleteBarView = new NodeAutoCompleteBarView(parentWindow, nodeAutoCompleteBarViewModel);
nodeAutoCompleteBarView.Show();
}
nodeAutoCompleteBarView.ReloadDataContext(nodeAutoCompleteBarViewModel);
portViewModel.SetupNodeAutoCompleteClusterWindowPlacement(nodeAutoCompleteBarView);
return;
}
lastWorkspaceId = dynamoViewModel.CurrentSpace.Guid;

nodeAutoCompleteBarView = new NodeAutoCompleteBarView(parentWindow, nodeAutoCompleteBarViewModel);
nodeAutoCompleteBarView.Show();
portViewModel.SetupNodeAutoCompleteClusterWindowPlacement(nodeAutoCompleteBarView);
NodeAutoCompleteBarView.PrepareAndShowNodeAutoCompleteBar(parentWindow, nodeAutoCompleteBarViewModel, portViewModel);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,20 @@ public bool IsOpen
}
set
{
if (isOpen == value) return;
if (isOpen == value)
{
return;
}

isOpen = value;
if (isOpen) SubscribeWindowEvents();
else UnsubscribeWindowEvents();
if (isOpen)
{
SubscribeWindowEvents();
}
else
{
UnsubscribeWindowEvents();
}
}
}

Expand Down Expand Up @@ -791,8 +801,8 @@ internal IEnumerable<SingleResultItem> GetSingleAutocompleteResults()
// Delete all transient nodes in the workspace
internal void DeleteTransientNodes()
{
var node = PortViewModel.NodeViewModel;
var wsViewModel = node.WorkspaceViewModel;
var node = PortViewModel?.NodeViewModel;
var wsViewModel = node?.WorkspaceViewModel;

var transientNodes = wsViewModel.Nodes.Where(x => x.IsTransient).ToList();
var transientConnectors = wsViewModel.Connectors.Where(c => c.IsTransient).ToList();
Expand Down
Loading
Loading