diff --git a/Design:-subflows.md b/Design:-subflows.md new file mode 100644 index 0000000..3e4a951 --- /dev/null +++ b/Design:-subflows.md @@ -0,0 +1,47 @@ +A subflow is a set of connected nodes that can be easily referenced and reused within a larger flow. + +A subflow is represented as a single node in the workspace which can be opened up in a tab to see the underlying flow. + +A subflow can be used in one of two modes: (this is tbd. Might just stick with singleton for v1) + +1. Singleton : only one copy of the flow exists. +2. Instance : each reference to the subflow is its own copy. + +### Creating a subflow + +1. User selects some existing nodes. +2. Selects 'convert to subflow' option. +4. Dialog opens to name the subflow. +3. Nodes are removed from workspace and replaced by a subflow node. +4. Subflow node added to palette + +**Questions:** + +* how to automatically identify the input/output ports to map to +* what restrictions should be applied? + * a single, continuous flow of nodes - aside from comment nodes + * only one 'left most' node + + +### Editing a subflow + +1. Double click subflow node. +2. Opens in closeable tab containing the flow. + +**Questions:** + +* how to rename the flow? Via subflow sidebar tab? +* how to pick singleton/instance mode? + +### Delete subflow + +1. Open a subflow sidebar tab that lists all subflows with usage count (cf config node tab - perhaps combine them...?) +2. ... + + +## Definition + +... + + +