I've just merged the initial PR to add the ability to group nodes in the editor.
This is similar in concept to how you can group objects in applications like PowerPoint or Keynote. Once grouped, the nodes can be moved as one around the workspace. The group can also be given some basic styling options for its border and background as well as whether to display a label for the group.
Here's what it looks like in action:
And yes, you can nest the groups:
The primary use case is to help visually organise your flows. We had some feedback that users wanted to be able to take screenshots of their flows and didn't want to have to spend time annotating them after-the-fact to label the different parts. The Comment node goes someway to adding annotations, but it lacks the ability to clearly show what nodes it is associated with. We hope the new grouping feature will address that.
At the moment, the groups have absolutely no affect on the runtime side of things. But we will be adding the ability to define additional meta-data against each group. That meta-data could be used in the runtime to influence how things are run - but the precise detail of that is for another day.
It has taken me quite a while to get this feature into a good working state At this point I've crossed off all of the major todo items and squashed all the bugs that needed to squashing before I could share it more widely.
This is now in the
dev branch on GitHub if you're following along at home and want to have a play. It will eventually be released as part of 1.1.0 - although I don't have a timescale to share on that yet.
- Select some nodes. Hit Ctrl-Shift-G (Or select
group->group selectionmenu item) to group them
- Click on a group border or a node in the group to select it.
- Double-click on a node in a group to go 'into' the group - its border changes to a dashed line. At this point you can then edit nodes in the group and move them around.
- Ctrl-Shift-U ungroups (Or select
group->ungroup selectionmenu option)
- You can merge groups into one -
group->merge selectionmenu option
- You can remove an item from a group -
group->remove from groupmenu option
- Double-click on the group border to edit its properties.
- You can quickly copy the style of a group (fill/stroke/label) by selecting it in the workspace and then hitting
Ctrl-Shift-C. Then select the group(s) to apply the style to and hit
Ctrl-Shift-V. (There's a bit more work to do around setting default styles and making them reusable)
- You can drag a node straight into a group - the group border turns dashed whilst you are dragging over it. NB: you can only drag one node in at a time currently...a bit more work needed here.