Selection
A Selection is a list of nodes.
We can make a Selection by calling gxr.nodes(). Edge selection (gxr.edges()) follows similar rules.
Creating a Selection
All Visible Nodes
gxr.nodes()
By ID
Pass a single ID or an array.
gxr.nodes("A")
gxr.nodes(["A", "B"])
By Category
Use the : operator.
gxr.nodes(":Person")
gxr.nodes({category: "Person"})
By Style
Use the [[]] wrapper.
gxr.nodes("[[selected]]")
gxr.nodes({styles: {selected: true}})
gxr.nodes("[[alpha > 0.5]]")
gxr.nodes({styles: {alpha: (alpha) => alpha > 0.5}})
By Property
Omit the [[]] to filter by property.
gxr.nodes("age > 28")
gxr.nodes({properties: {name: "Flo"}})
gxr.nodes({properties: {name: (name) => name.startsWith("F")}})
Sorted
gxr.nodes({sort: 'age'})
gxr.nodes({sort: 'age', reverse: true})
gxr.nodes({sort: (a, b) => a.age - b.age})
What can we do with a selection?
- Apply layout:
gxr.nodes(":Person").circle() - Delete nodes:
gxr.nodes("price < 10").delete() - Set properties by function: `gxr.nodes().property("house", (node) => node.properties.houseName.toUpperCase())
- Set properties to constant:
gxr.nodes(":House").property("type", "House") - Set a style:
gxr.nodes(":Person").style("alpha", 0.5) - Set alpha:
gxr.nodes("age > 28").alpha(0.5) - Set pinned:
gxr.nodes(":House").pinned(true) - Mark them selected:
gxr.nodes("houseName = Stark").select() - Deselect:
gxr.nodes("houseName = Stark").deselect() - Hide:
gxr.nodes("houseName = Stark").hide() - Show:
gxr.nodes("houseName = Stark").show() - Twinkle:
gxr.nodes("houseName = Stark").twinkled(true) - Highlight:
gxr.nodes("houseName = Stark").highlight() - Aggregate:
gxr.nodes(":Store").aggregate({ formula: "sum", property: "price" }) - Randomize a numeric property:
gxr.nodes(":Characters").randomize('luck', {min: 0, max: 200}) - Randomize a categorical property:
gxr.nodes(":Characters").randomize('color', ['red', 'green', 'blue']) - Serialize:
gxr.nodes(":Characters").serialize() - Fly to center (aka, "Center To"):
gxr.nodes("A").flyToCenter()or.centerTo() - Fly out (so all are visible in camera):
gxr.nodes("A").flyOut()