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

AGD-2199 - custom dropdown node #11958

Merged
merged 101 commits into from
Aug 19, 2022
Merged
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
2fdcfcc
First successful build
LongNguyenP Aug 12, 2021
30e278d
Added to Library View Extension
LongNguyenP Aug 17, 2021
c0553ff
Remove dependency on PresentationCore.dll
LongNguyenP Aug 19, 2021
00587d3
Updated some attributes
LongNguyenP Aug 30, 2021
37f164b
Added some resource strings
LongNguyenP Sep 14, 2021
795dfd7
AssemblySharedInfo
LongNguyenP Sep 14, 2021
d15bfd1
Changed name to "Custom Dropdown"
LongNguyenP Sep 14, 2021
975b821
Merge branch 'master' of https://github.com/DynamoDS/Dynamo into AGD-…
LongNguyenP Sep 14, 2021
047b9e2
Added MD file
LongNguyenP Sep 14, 2021
4c843b2
Made changes to address two failed tests
LongNguyenP Sep 28, 2021
c05095f
Fix broken tests (#12082)
saintentropy Sep 28, 2021
8b1d743
Added test related files
LongNguyenP Sep 29, 2021
93377f7
AGD 2199 Test Fix (#12161)
saintentropy Oct 19, 2021
b1ec208
Merge branch 'master' into AGD-2199
saintentropy Oct 19, 2021
0960dd5
Merge branch 'master' of https://github.com/DynamoDS/Dynamo into AGD-…
LongNguyenP Dec 1, 2021
9361301
Modern styling applied to CustomDropdown node
LongNguyenP Dec 4, 2021
a37cb5e
Update MarkdownGeneratorCommandTests.cs
saintentropy Dec 8, 2021
93f4013
Merge branch 'master' into AGD-2199
LongNguyenP Jan 31, 2022
d6e00e2
Resolved PR conflicts with master
LongNguyenP Jan 31, 2022
d576591
Midway commit
LongNguyenP Feb 1, 2022
b6cc773
Cleanup mostly done
LongNguyenP Feb 1, 2022
00c78e1
Addressed all issues related to first PR review round
LongNguyenP Feb 2, 2022
103b0ea
Removed .idea directory and added it to .gitignore
LongNguyenP Feb 18, 2022
312bd9e
Icon
LongNguyenP Mar 1, 2022
0fb12c6
Merge branch 'master' into AGD-2199
LongNguyenP Mar 1, 2022
9e25ff2
Merged from master
LongNguyenP Mar 1, 2022
83f201f
Waypoint
LongNguyenP Mar 2, 2022
58d37ee
Error
LongNguyenP Mar 3, 2022
4e0473a
Commit just before fixing bug related to JSON deseiralization
LongNguyenP Mar 4, 2022
34a82ba
Fixed regression bug
LongNguyenP Mar 4, 2022
5a4ac2c
DYN file test completed
LongNguyenP Mar 5, 2022
6d17a1a
Merge branch 'master' into AGD-2199
LongNguyenP Mar 5, 2022
8999190
Added tests and simplify some methods
LongNguyenP Mar 7, 2022
1423185
Addded the .dyn file required for tests to git tracking
LongNguyenP Mar 8, 2022
b4bc256
Corrected node name
LongNguyenP Mar 17, 2022
68b99df
Addressed a couple of PR comments
LongNguyenP Mar 17, 2022
07c08c7
Deleted unused method
LongNguyenP Mar 22, 2022
0a425ef
Merge branch 'master' into AGD-2199
LongNguyenP Mar 24, 2022
4794e0f
Solved conflict with master
LongNguyenP Mar 24, 2022
bc67923
A couple of changes
LongNguyenP Apr 5, 2022
a1d597c
AssemblySharedInfo
LongNguyenP Apr 5, 2022
51e71ae
Merge branch 'master' into AGD-2199
LongNguyenP Apr 5, 2022
c8cb45a
Undid whitespace removal
LongNguyenP Apr 6, 2022
58c17ba
Undid blank line at the end of file
LongNguyenP Apr 6, 2022
35effd3
Undid whitespace removal
LongNguyenP Apr 6, 2022
beccd48
Undid whitespace removal
LongNguyenP Apr 6, 2022
dad3c80
Undid whitespace removal
LongNguyenP Apr 6, 2022
99bec28
Undid blank line
LongNguyenP Apr 6, 2022
2bf0479
Revert XML indent size to 2 whitespaces
LongNguyenP Apr 6, 2022
49bfb1b
Revert "Undid blank line"
LongNguyenP Apr 6, 2022
9cf40e5
Revert blank line
LongNguyenP Apr 6, 2022
5a60114
Undid auto whitespace removal
LongNguyenP Apr 6, 2022
1f14c3e
Undid auto whitespace removal
LongNguyenP Apr 6, 2022
5ac8d1b
Undid auto whitespace removal
LongNguyenP Apr 6, 2022
8129161
Undid auto whitespace removal
LongNguyenP Apr 6, 2022
9576110
Revert version number
LongNguyenP Apr 6, 2022
e4e1345
Undid auto whitespace removal
LongNguyenP Apr 6, 2022
6c465dc
Deleted two auto-generated resource cs files
LongNguyenP Apr 12, 2022
9c80434
Fix build
saintentropy Apr 12, 2022
9bb71ce
Merge remote-tracking branch 'origin/master' into AGD-2199
twastvedt Aug 2, 2022
e849045
Don't hold separate source of truth, use Dynamo UI components.
twastvedt Aug 5, 2022
c41f397
Fix formatting.
twastvedt Aug 8, 2022
f036043
Remove INotifyPropertyChanged from DynamoDropDownItem.
twastvedt Aug 8, 2022
b445a0a
Fix some binding updates.
twastvedt Aug 8, 2022
bea4f47
Improve tab navigation.
twastvedt Aug 8, 2022
b322185
Fix more binding updates.
twastvedt Aug 8, 2022
490905e
Remove logging.
twastvedt Aug 8, 2022
882e237
Fix remove button styling.
twastvedt Aug 8, 2022
4ec277d
Rename to match current convention.
twastvedt Aug 8, 2022
d916b86
Fix build by removing last line of AssemblySharedInfo.tt?
twastvedt Aug 8, 2022
8b53b5c
Merge branch 'master' into AGD-2199
twastvedt Aug 9, 2022
a1a783f
Clean up tests.
twastvedt Aug 9, 2022
6214991
Clean up unnecessary changes.
twastvedt Aug 9, 2022
b591474
Clean up extra styling.
twastvedt Aug 9, 2022
5327934
Match +/- button color with existing nodes.
twastvedt Aug 10, 2022
f64efbf
Add serialization.
twastvedt Aug 10, 2022
d952576
Undo unnecessary changes.
twastvedt Aug 10, 2022
8839d44
Fix image class names.
twastvedt Aug 12, 2022
920e548
Fix copy/paste deserialization.
twastvedt Aug 12, 2022
443d557
Actually fix icon images.
twastvedt Aug 12, 2022
ef941ea
Fix dropdown test.
twastvedt Aug 12, 2022
22199a4
Remove lacing comment.
twastvedt Aug 15, 2022
1b7fe1a
Merge branch 'master' into AGD-2199
twastvedt Aug 15, 2022
e776bd4
Merge branch 'master' into AGD-2199
twastvedt Aug 15, 2022
88b4f6c
Add custom selection documentation files.
twastvedt Aug 16, 2022
5e1eef9
Update incorrect documentation on DoubleInput.
twastvedt Aug 16, 2022
0b11cd6
Merge branch 'AGD-2199' of https://github.com/DynamoDS/Dynamo into AG…
twastvedt Aug 16, 2022
27ccb15
Treat null AST as primitive for update graph execution cycle (#13221)
aparajit-pratap Aug 17, 2022
752c90f
Fix some tests.
twastvedt Aug 17, 2022
882f0b5
Merge branch 'AGD-2199' of https://github.com/DynamoDS/Dynamo into AG…
twastvedt Aug 17, 2022
223deee
Merge branch 'master' into AGD-2199
twastvedt Aug 17, 2022
f0b7445
Revert template change.
twastvedt Aug 18, 2022
86c439d
Fix comment text.
twastvedt Aug 18, 2022
7f74e9e
Localize output description.
twastvedt Aug 18, 2022
1ba123d
Add documentation.
twastvedt Aug 18, 2022
ae35692
Reduce property visibility.
twastvedt Aug 18, 2022
7a5992b
Fix inline if format.
twastvedt Aug 18, 2022
735d0c4
Docs.
twastvedt Aug 18, 2022
80ad1d1
Reduce whitespace.
twastvedt Aug 18, 2022
24e8014
Docs fix.
twastvedt Aug 18, 2022
45047e7
Naming fixes.
twastvedt Aug 18, 2022
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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ launchSettings.json
###############
*_ReSharper*

# IDE #
###############
.idea

#documentation files
doc/html/
Dynamo.sln.DotSettings
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## In Depth
The Custom Dropdown node allows a user to create a dropdown selection input with custom labels and values. If all values are numbers, the output will be a double, and if all values are integers the output will be an integer. In the example below, "Two" is selected in the Custom Dropdown Menu node, making the output of that node the integer `2`.
Copy link
Member

Choose a reason for hiding this comment

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

what happens if the types are mixed? Can you use strings? What are valid value types etc?

Is this dynamic behavior important - I ask this because as we're working on the MSIL compiler - it's very hard to determine the output types of nodes that have dynamic behavior like this - not super important but I imagine that if we move forward with that work outside of a POC we're going to need some principles around not introducing dynamic behavior without a really good reason.

Copy link
Contributor

Choose a reason for hiding this comment

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

Immediate answers: values default to strings unless the criteria are met. So, anything's valid, it will just be a string unless we can make everything numbers. I'll add that, or whatever we decide here, to the description.

I'm definitely open to alternatives, though I think this behavior is pretty convenient, intuiting a user's expectations in most common scenarios. I'm not sure what the alternative to dynamic behavior here is. Separate String custom selection and Number custom selection nodes sounds awkward for the user. I imagine the original inspiration for this part may have been the experience in Grasshopper. Though there it's less a feature of the custom selection node itself and more of the global type coercion.

Copy link
Member

Choose a reason for hiding this comment

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

let's put this on the back burner.

___
## Example File

![Number](./CoreNodeModels.Input.CustomSelection_img.jpg)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## In Depth
Room numbers are returned as strings.
The Number node allows a user to enter a static number. This node is useful for things like constants that don't change values. Numbers can also be created by using a Code Block node. In the example below, the number is paired with a code block to create a list sequence with a variable step size.
twastvedt marked this conversation as resolved.
Show resolved Hide resolved
___
## Example File

Expand Down
4 changes: 2 additions & 2 deletions src/AssemblySharedInfoGenerator/AssemblySharedInfo.tt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ template debug="false" hostspecific="false" language="C#" #>
using System;
using System.Reflection;
using System.Resources;
Expand Down Expand Up @@ -73,4 +73,4 @@ int BuildNumber = 0;
// The datetime baseline we choose using this algorithm will affect build number and all nuget packages uploaded
// Please only change when major or minor version got incremented
int RevisionNumber = ((int)(DateTime.UtcNow - new DateTime(2022,1,1)).TotalDays)*10+((int)DateTime.UtcNow.Hour)/3;
#>
#>
twastvedt marked this conversation as resolved.
Show resolved Hide resolved
1 change: 0 additions & 1 deletion src/DynamoCoreWpf/Controls/DynamoNodeButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ private DynamoViewModel DynamoViewModel

public DynamoNodeButton()
{
Style = (Style)SharedDictionaryManager.DynamoModernDictionary["SNodeTextButton"];
Copy link
Contributor

Choose a reason for hiding this comment

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

Setting the style in the constructor was preventing me from overriding the style in XAML. I moved this to a default style in DynamoModern which applies to all DynamoNodeButtons but can be overridden in XAML.

}

public DynamoNodeButton(ModelBase model, string eventName)
Expand Down
168 changes: 130 additions & 38 deletions src/DynamoCoreWpf/UI/Themes/Modern/DynamoModern.xaml

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions src/Libraries/CoreNodeModels/CoreNodeModelsImages.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1343,6 +1343,39 @@
PIw7vteQPuhLVMkA479rRIQ9hegBi3gVlTPYvr1bMcEHxT5Ginf+R2dm53gHaDPpF5En0WZeR3VH6qT1
trlz75fwK2w6VIVFBQ7AJvsESZk6BO/iW/E+9u9A57xW7BNsVoaQqfvVwBky/FPkch8Yc7bTvUnhewAA
AABJRU5ErkJggg==
</value>
</data>
<data name="CoreNodeModels.Input.CustomSelection.Large" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAh
NwAAITcBM1ifegAAA8ZJREFUeF7tmttV4zAQhlMCJWwJlJBn1s564+zz0gF0AB1AB9CBlyT77BIoIe/c
XEJ2xoy8g/BFcuRwjv1/58wBZF3/kUaSzQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoCmK
4htZQnbx+vp6PUbjsZHNyU5k2F8Ld4Ts6u3tbUe2n5jlNPbfIsVxUcLXdWxqtiMtvok0w8ONcaNWJ9gK
spyW6q29dEdktzxGNeZq7MTwq6FB/Pz5+XkuWSYB68AOsXTYD6oDNXpCjWjxC+rEpTyeJDUTkpIGCkdU
8Y3V0Kk8mjQsOOmhnZDLo3BII6aB/dRnvg2HHq1P8FD08vJyrxrw9vDfX8npenl2niVzp/NzlkTz9/xR
kiWJ05LuUyYkNCkrjXizluQwUKXVEvP1LouxTuPdJo33m1XUWvZDXmXbdNF6wtim8Z1VpugqExprFRSS
fDgc61XFO0l2opz5WtAOB2zSKC/zLaNHns3rNLo3gjatnvUyPpc8O9cyTdBYr9jkz0/Qs7u25yy80Yp1
k+TDoPCTmErJ/khyJ9tVfCNClGKUPzsd8J4/S86qzpuyD6v4hyR94N0BUa5nfF09XbCwSrxPIrP4bc8Z
HYZIt3NJPgyqtDrv8u+S3InM5h2L7hqCGDt+Uzkn5xk26eKizE9tSpITepxsWmQtPluTDpTOFzVvrVrR
HfOplMOP/DrzcYCGQtGVj5hVCKP8un1X9FjZ2Amu4jN9tWqFKrpUlfba3fs4QIm/p7ieSHIr5d5h2krj
zHcPYLSItnWJqst25XWGY5nqhPMeoPF1gBZ/u/rufecwK+FhueglQp0TXASlPJnJTyunds/yhirSl7Be
xysfB3yY+bTBSnIjtGec8GarZ/vDMrouy6dxrwnD9JnNlLc6rpNuYU5BDFVYHa/63PJcHaCOlM4zv262
b5aLxzLtZ3TQhYiFdxWfBTcasV6SHAY9G8i8b8LODvgfvz9Z02rQTiPLyMxGTPeA492I9dsC3rglOQxW
GOIl6RWXXRzArxJEuFprC0dU77XlvPL4K48Hx9Yn+LsgxloFxdPTU7gYFwg+eh5z1jMivo79YWe/gSq2
vwd4r4SxYYtPRkkDfp6saZDtkdKdzuljgcZrvolXhxM2fm0jWYajwQls5Tdhin9j/ibMt+Lab8LB3v24
wh2q6cgUjf895Wv2Q14N5Ah+AVW3IsZu+VFCjivsDO4Q/Rz1f8bJGL3fMQEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAQDBms3/G6OUDtOjdugAAAABJRU5ErkJggg==
</value>
</data>
<data name="CoreNodeModels.Input.CustomSelection.Small" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
EgAACxIB0t1+/AAAAS1JREFUWEftkc1twzAMhTVCRvAIHsHn1g5Uu7lnhI6QEbxBuoEQpz13lB4N+HeF
8gmkISdpi6JC0QM/gLBIUI9PtFEURVH+LfM8Z+M4HmIF6VmW/hpqTKZpeqd4o4v1pdAvwkEX+jzqNmjC
BU6jMgzDHvqcXkMNFi/n1OOsTU7ldjHUVLk9PeR1UxZPXDIvVXEMewR67Ya/iZyh3/d9hvMVsi5OPTRo
f66KxdT5Mc9gSmp03qAW9gD5lfwobNUbvjVjAU0UNacLobgfWBUOJrhkXnc2pc08O3uXcsnTdV1Kw+dw
IPQxh9M1WA0uyLqE0AAGIW/Key8ihlALTQmXWtgG1VZGV7BDhxVyKQowQnFEcOlzsDI4jR14HIzwmO9p
2zaJFT8arCiKovwdxnwAzk7Zcq1S2RAAAAAASUVORK5CYII=
</value>
</data>
</root>
161 changes: 161 additions & 0 deletions src/Libraries/CoreNodeModels/Input/CustomSelection.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml;

using Autodesk.DesignScript.Runtime;

using Dynamo.Graph;
using Dynamo.Graph.Nodes;

using Newtonsoft.Json;

using ProtoCore.AST.AssociativeAST;

namespace CoreNodeModels.Input
{
/// <summary>
/// This node allow the user to create a dropdown menu with an with an arbitrary number of customization items
twastvedt marked this conversation as resolved.
Show resolved Hide resolved
/// </summary>
[NodeName("Custom Dropdown Menu")]
Copy link
Member

Choose a reason for hiding this comment

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

@LongNguyenP @saintentropy - not sure if this is worth doing, but perhaps this node should actually serialize as the cogs Selection input type by overriding InputData ?

Copy link
Contributor

Choose a reason for hiding this comment

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

@mjkkirschner We are going to look into it with follow up task

[NodeCategory(BuiltinNodeCategories.CORE_INPUT)]
[NodeDescription("CustomSelectionNodeDescription", typeof(Properties.Resources))]
[NodeSearchTags("CustomSelectionSearchTags", typeof(Properties.Resources))]
[OutPortNames("value")]
[OutPortTypes("var")]
[OutPortDescriptions("Selected value")]
twastvedt marked this conversation as resolved.
Show resolved Hide resolved
[IsDesignScriptCompatible]
public class CustomSelection : DSDropDownBase
{
private List<DynamoDropDownItem> serializedItems;

public List<DynamoDropDownItem> SerializedItems
twastvedt marked this conversation as resolved.
Show resolved Hide resolved
{
get => serializedItems;
set
{
serializedItems = value;

Items.Clear();

foreach (DynamoDropDownItem item in serializedItems)
{
Items.Add(item);
}
}
}

/// <summary>
/// Construct a new Custom Dropdown Menu node
/// </summary>
public CustomSelection() : base("Value")
{
ArgumentLacing = LacingStrategy.Disabled;
twastvedt marked this conversation as resolved.
Show resolved Hide resolved

Items.Add(new DynamoDropDownItem("One", "1"));
Items.Add(new DynamoDropDownItem("Two", "2"));
Items.Add(new DynamoDropDownItem("Three", "3"));

SelectedIndex = 0;
}

[JsonConstructor]
protected CustomSelection(IEnumerable<PortModel> inPorts, IEnumerable<PortModel> outPorts) : base("Value", inPorts, outPorts)
{
}

/// <summary>
/// Build the AST for this node
/// </summary>
/// <param name="inputAstNodes"></param>
/// <returns></returns>
[IsVisibleInDynamoLibrary(false)]
public override IEnumerable<AssociativeNode> BuildOutputAst(List<AssociativeNode> inputAstNodes)
{
AssociativeNode associativeNode = AstFactory.BuildPrimitiveNodeFromObject(GetSelectedValue());

return new[] { AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), associativeNode) };
}

/// <summary>
/// Return the selected item as an int, or a double, or a string
/// </summary>
/// <returns></returns>
private object GetSelectedValue()
{
if (SelectedIndex == -1)
{
return null;
}

DynamoDropDownItem selectedItem = Items[SelectedIndex];

if (selectedItem?.Item is string value)
{
if (string.IsNullOrWhiteSpace(value))
{
return value;
}

if (Items.All(item => item is null || ( item.Item is string v && ( string.IsNullOrEmpty(v) || int.TryParse(v, out _) ) )))
{
int.TryParse(value, out int intValue);
return intValue;
}

if (Items.All(item => item is null || ( item.Item is string v && ( string.IsNullOrEmpty(v) || double.TryParse(v, out _) ) )))
{
double.TryParse(value, out double doubleValue);
return doubleValue;
}

return value;
}

return selectedItem?.Item;
}

protected override SelectionState PopulateItemsCore(string currentSelection)
{
return SelectionState.Restore;
}

[OnSerializing]
Copy link
Member

Choose a reason for hiding this comment

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

what does this attribute do?

Copy link
Contributor

Choose a reason for hiding this comment

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

This is a Newtonsoft pre-serialization hook. https://www.newtonsoft.com/json/help/html/SerializationCallbacks.htm

private void OnSerializing(StreamingContext context)
{
serializedItems = Items.ToList();
}

[Obsolete]
protected override void SerializeCore(XmlElement nodeElement, SaveContext context)
{
nodeElement.SetAttribute("serializedItems", JsonConvert.SerializeObject(Items));

base.SerializeCore(nodeElement, context);
}

[Obsolete]
protected override void DeserializeCore(XmlElement nodeElement, SaveContext context)
{
XmlAttribute itemsAttribute = nodeElement.Attributes["serializedItems"];

if (itemsAttribute == null)
{
return;
}

List<DynamoDropDownItem> items = JsonConvert.DeserializeObject<List<DynamoDropDownItem>>(itemsAttribute.Value);

Items.Clear();

foreach (DynamoDropDownItem item in items)
{
Items.Add(item);
}

base.DeserializeCore(nodeElement, context);
}

}
}
18 changes: 18 additions & 0 deletions src/Libraries/CoreNodeModels/Properties/Resources.Designer.cs

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

6 changes: 6 additions & 0 deletions src/Libraries/CoreNodeModels/Properties/Resources.en-US.resx
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,12 @@ Default value: {0}</value>
<data name="IFNodeWarningMessage" xml:space="preserve">
<value>This node has been updated and will be removed in a future version of Dynamo. Existing behavior is retained, but a new version now supports Empty Lists, Null values and inputs of varying length. Please replace this node if you wish to use this improved behavior.</value>
</data>
<data name="CustomSelectionSearchTags" xml:space="preserve">
<value>dropdown;custom;custom dropdown;enum;custom enum</value>
</data>
<data name="CustomSelectionNodeDescription" xml:space="preserve">
<value>A dropdown menu with customizable values.</value>
</data>
<data name="ConversionNodeObsoleteMessage" xml:space="preserve">
<value>is obsolete, please use the new Convert Units node.</value>
</data>
Expand Down
6 changes: 6 additions & 0 deletions src/Libraries/CoreNodeModels/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,12 @@ Default value: {0}</value>
<data name="ConversionNodeObsoleteMessage" xml:space="preserve">
<value>is obsolete, please use the new Convert Units node.</value>
</data>
<data name="CustomSelectionNodeDescription" xml:space="preserve">
<value>A dropdown menu with customizable values.</value>
</data>
<data name="CustomSelectionSearchTags" xml:space="preserve">
<value>dropdown;custom;custom dropdown;enum;custom enum</value>
</data>
<data name="IntegerSliderInfoMessage" xml:space="preserve">
<value>The value entered is not in the int64 range.</value>
</data>
Expand Down
Loading