diff --git a/lib/components/Reftracker.bs b/lib/components/Reftracker.bs
index b85fded..95ffda7 100644
--- a/lib/components/Reftracker.bs
+++ b/lib/components/Reftracker.bs
@@ -38,26 +38,22 @@ function discover(_ = invalid)
end function)
end function
-interface GetNodesByIdOptions
- id as string
-end interface
-
'@public
-function getNodesById(options as GetNodesByIdOptions)
+function findNodeRefsById(options as reftracker.FindNodeRefsByIdOptions)
id = options.id
results = []
- ' for each node in m.allNodes
- ' if node.id <> id
- ' continue for
- ' end if
- ' reftrackerId = reftracker.internal.getReftrackerId(node)
- ' 'build a list of keypaths for this node
- ' results.push({
- ' id: id,
- ' node: node,
- ' keypaths: m.keypathsByNodeReftrackerId[reftrackerId],
- ' })
- ' end for
+ for each node in m.allNodes
+ if node.id <> id
+ continue for
+ end if
+ reftrackerId = reftracker.internal.getReftrackerId(node)
+ 'build a list of keypaths for this node
+ results.push({
+ id: id,
+ node: node,
+ keypaths: m.keypathsByNodeReftrackerId[reftrackerId],
+ })
+ end for
return results
end function
diff --git a/lib/components/Reftracker.xml b/lib/components/Reftracker.xml
index fb02dde..fd7c228 100644
--- a/lib/components/Reftracker.xml
+++ b/lib/components/Reftracker.xml
@@ -2,6 +2,7 @@
+
diff --git a/lib/source/reftrackerLib.bs b/lib/source/reftrackerLib.bs
index 239e10c..e22f0ee 100644
--- a/lib/source/reftrackerLib.bs
+++ b/lib/source/reftrackerLib.bs
@@ -13,9 +13,13 @@ end interface
namespace reftracker
+ interface FindNodeRefsByIdOptions
+ id as string
+ end interface
+
' Find all references to a SceneGraph node by its ID. Since multiple nodes can have the same ID, this function returns an array of results,
' where each entry includes all results for a specific node having that ID
- function findNodeRefsById(id as string)
+ function findNodeRefsById(options as reftracker.FindNodeRefsByIdOptions)
'build the reftracker
tracker = createObject("roSGNode", "Reftracker")
'store a reference to it so it doesn't get lost
@@ -24,10 +28,16 @@ namespace reftracker
'run it
discoverPromise = tracker@.discover()
- return reftracker.promises.onThen(discoverPromise, function(result, tracker)
+ return reftracker.promises.onThen(discoverPromise, function(result, options)
'return all nodes with the given id
- return tracker@.findNodeRefsById(id)
- end function, tracker)
+ result = options.tracker@.findNodeRefsById({
+ id: options.id
+ })
+ return result
+ end function, {
+ tracker: tracker,
+ id: options.id
+ })
end function
end namespace
diff --git a/test-app/components/MainScene.bs b/test-app/components/MainScene.bs
index e7b5a24..5429540 100644
--- a/test-app/components/MainScene.bs
+++ b/test-app/components/MainScene.bs
@@ -9,8 +9,10 @@ sub init()
m.arr = [
m.mainLabel
]
-
- reftracker.promises.chain(reftracker.findNodeRefsById("mainLabel")).then(function(result, node)
+ promise = reftracker.findNodeRefsById({
+ id: "mainLabel"
+ })
+ reftracker.promises.chain(promise).then(function(result)
print result
end function)
end sub