Skip to content

Commit 951cefe

Browse files
johnpiersonCopilot
andauthored
DYN-8947 - Add transient state to connectors (#16247)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 869404e commit 951cefe

7 files changed

Lines changed: 62 additions & 8 deletions

File tree

src/DynamoCore/Graph/Connectors/ConnectorModel.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,21 @@ public bool IsHidden
4747
RaisePropertyChanged(nameof(IsHidden));
4848
}
4949
}
50+
51+
private bool isTransient = false;
52+
/// <summary>
53+
/// IsTransient flag controlling the transient state of the connector
54+
/// </summary>
55+
internal bool IsTransient
56+
{
57+
get { return isTransient; }
58+
set
59+
{
60+
isTransient = value;
61+
RaisePropertyChanged(nameof(IsTransient));
62+
}
63+
}
64+
5065
/// <summary>
5166
/// Returns start port model.
5267
/// </summary>

src/DynamoCoreWpf/PublicAPI.Unshipped.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ Dynamo.Controls.ConnectionStateToBrushConverter.NoneBrush.get -> System.Windows.
139139
Dynamo.Controls.ConnectionStateToBrushConverter.NoneBrush.set -> void
140140
Dynamo.Controls.ConnectionStateToBrushConverter.SelectionBrush.get -> System.Windows.Media.SolidColorBrush
141141
Dynamo.Controls.ConnectionStateToBrushConverter.SelectionBrush.set -> void
142+
Dynamo.Controls.ConnectionStateToBrushConverter.TransientBrush.get -> System.Windows.Media.SolidColorBrush
143+
Dynamo.Controls.ConnectionStateToBrushConverter.TransientBrush.set -> void
142144
Dynamo.Controls.ConnectionStateToColorConverter
143145
Dynamo.Controls.ConnectionStateToColorConverter.ConnectionStateToColorConverter() -> void
144146
Dynamo.Controls.ConnectionStateToColorConverter.Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
@@ -151,6 +153,8 @@ Dynamo.Controls.ConnectionStateToColorConverter.None.get -> System.Windows.Media
151153
Dynamo.Controls.ConnectionStateToColorConverter.None.set -> void
152154
Dynamo.Controls.ConnectionStateToColorConverter.Selection.get -> System.Windows.Media.Color
153155
Dynamo.Controls.ConnectionStateToColorConverter.Selection.set -> void
156+
Dynamo.Controls.ConnectionStateToColorConverter.Transient.get -> System.Windows.Media.Color
157+
Dynamo.Controls.ConnectionStateToColorConverter.Transient.set -> void
154158
Dynamo.Controls.ConnectionStateToVisibilityCollapsedConverter
155159
Dynamo.Controls.ConnectionStateToVisibilityCollapsedConverter.ConnectionStateToVisibilityCollapsedConverter() -> void
156160
Dynamo.Controls.ConnectionStateToVisibilityCollapsedConverter.Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
@@ -2943,6 +2947,7 @@ Dynamo.ViewModels.PreviewState
29432947
Dynamo.ViewModels.PreviewState.ExecutionPreview = 1 -> Dynamo.ViewModels.PreviewState
29442948
Dynamo.ViewModels.PreviewState.Hover = 2 -> Dynamo.ViewModels.PreviewState
29452949
Dynamo.ViewModels.PreviewState.None = 3 -> Dynamo.ViewModels.PreviewState
2950+
Dynamo.ViewModels.PreviewState.Transient = 4 -> Dynamo.ViewModels.PreviewState
29462951
Dynamo.ViewModels.PreviewState.Selection = 0 -> Dynamo.ViewModels.PreviewState
29472952
Dynamo.ViewModels.PythonTemplatePathEventArgs
29482953
Dynamo.ViewModels.PythonTemplatePathEventArgs.Cancel.get -> bool

src/DynamoCoreWpf/UI/Converters.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,7 @@ public class ConnectionStateToBrushConverter : IValueConverter
800800
public SolidColorBrush ExecutionPreviewBrush { get; set; }
801801
public SolidColorBrush NoneBrush { get; set; }
802802
public SolidColorBrush SelectionBrush { get; set; }
803+
public SolidColorBrush TransientBrush { get; set; }
803804

804805
public SolidColorBrush HoverBrush { get; set; }
805806

@@ -808,6 +809,8 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
808809
var state = (PreviewState)value;
809810
switch (state)
810811
{
812+
case PreviewState.Transient:
813+
return TransientBrush;
811814
case PreviewState.ExecutionPreview:
812815
return ExecutionPreviewBrush;
813816
case PreviewState.None:
@@ -833,12 +836,15 @@ public class ConnectionStateToColorConverter : IValueConverter
833836
public Color None { get; set; }
834837
public Color Selection { get; set; }
835838
public Color Hover { get; set; }
839+
public Color Transient { get; set; }
836840

837841
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
838842
{
839843
var state = (PreviewState)value;
840844
switch (state)
841845
{
846+
case PreviewState.Transient:
847+
return Transient;
842848
case PreviewState.ExecutionPreview:
843849
return ExecutionPreview;
844850
case PreviewState.None:

src/DynamoCoreWpf/UI/Themes/Modern/Connectors.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
22
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
33
xmlns:viewModels="clr-namespace:Dynamo.ViewModels;assembly=DynamoCoreWpf"
44
xmlns:ui="clr-namespace:Dynamo.UI;assembly=DynamoCoreWpf"
@@ -168,4 +168,4 @@
168168
</DataTemplate.Triggers>
169169
</DataTemplate>
170170

171-
</ResourceDictionary>
171+
</ResourceDictionary>

src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@
3535
ExecutionPreview="#F2930C"
3636
Hover="#808080"
3737
None="#444"
38-
Selection="#6AC0E7" />
38+
Selection="#6AC0E7"
39+
Transient="#D5BCF7"/>
3940

4041
<controls:ConnectionStateToBrushConverter x:Key="ConnectionStateToBrushConverter"
4142
ExecutionPreviewBrush="#F2930C"
4243
HoverBrush="#808080"
4344
NoneBrush="#444"
44-
SelectionBrush="#6AC0E7" />
45+
SelectionBrush="#6AC0E7"
46+
TransientBrush="#D5BCF7"/>
4547

4648
<controls:ConnectionStateToVisibilityCollapsedConverter x:Key="ConnectionStateToVisibilityCollapsedConverter" />
4749
<controls:AttachmentToPathConverter x:Key="AttachmentToPathConverter" />

src/DynamoCoreWpf/ViewModels/Core/ConnectorViewModel.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
namespace Dynamo.ViewModels
2222
{
23-
public enum PreviewState { Selection, ExecutionPreview, Hover, None }
23+
public enum PreviewState { Selection, ExecutionPreview, Hover, None, Transient }
2424

2525
public partial class ConnectorViewModel : ViewModelBase
2626
{
@@ -38,6 +38,7 @@ public partial class ConnectorViewModel : ViewModelBase
3838
private bool isConnecting = false;
3939
private bool isCollapsed = false;
4040
private bool isHidden = false;
41+
private bool isTransient = false;
4142
private bool isTemporarilyVisible = false;
4243
private string connectorDataToolTip;
4344
private bool canShowConnectorTooltip = true;
@@ -199,6 +200,22 @@ public bool IsHidden
199200
}
200201
}
201202

203+
internal bool IsTransient
204+
{
205+
get => isTransient;
206+
set
207+
{
208+
if (isTransient == value)
209+
{
210+
return;
211+
}
212+
213+
isTransient = value;
214+
RaisePropertyChanged(nameof(IsTransient));
215+
RaisePropertyChanged(nameof(PreviewState));
216+
}
217+
}
218+
202219
/// <summary>
203220
/// Property which overrides 'isDisplayed==false' condition. When this prop is set to true, wires are set to
204221
/// 40% opacity.
@@ -505,6 +522,11 @@ public PreviewState PreviewState
505522
return PreviewState.None;
506523
}
507524

525+
if (IsTransient)
526+
{
527+
return PreviewState.Transient;
528+
}
529+
508530
if (Nodevm.ShowExecutionPreview || NodeEnd.ShowExecutionPreview)
509531
{
510532
return PreviewState.ExecutionPreview;

src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,10 @@ internal void ConsolidateTransientNodes()
282282
}
283283

284284
//set the last connector to be connected
285-
var transientConnectors = node.WorkspaceViewModel.Connectors.Where(c => c.IsConnecting).ToList();
285+
var transientConnectors = node.WorkspaceViewModel.Connectors.Where(c => c.IsTransient).ToList();
286286
foreach (var connector in transientConnectors)
287287
{
288-
connector.IsConnecting = false;
288+
connector.IsTransient = false;
289289
}
290290

291291
NodeAutoCompleteUtilities.PostAutoLayoutNodes(node.WorkspaceViewModel.Model, node.NodeModel, transientNodes.Select(x => x.NodeModel), true, true, false, null);
@@ -869,7 +869,7 @@ internal void AddCluster(ClusterResultItem clusterResultItem)
869869
{
870870
entryConnector.IsHidden = true;
871871
var entryConnectorViewModel = workspaceViewModel.Connectors.First(c => c.ConnectorModel.Equals(entryConnector));
872-
entryConnectorViewModel.IsConnecting = true;
872+
entryConnectorViewModel.IsTransient = true;
873873
createdClusterItems.Add(entryConnector);
874874
}
875875
}
@@ -893,6 +893,10 @@ internal void AddCluster(ClusterResultItem clusterResultItem)
893893
{
894894
newConnector.IsHidden = true; // Hide the connector initially
895895
createdClusterItems.Add(newConnector);
896+
897+
// toggle to be transient for preview purposes
898+
var newConnectorViewModel = workspaceViewModel.Connectors.First(c => c.ConnectorModel.Equals(newConnector));
899+
newConnectorViewModel.IsTransient = true;
896900
}
897901
}
898902
}

0 commit comments

Comments
 (0)