Overview¶
Orange Canvas application is build around the a workflow model (scheme),
which is implemented in the scheme
package. Briefly
speaking a workflow is a simple graph structure(a Directed Acyclic
Graph - DAG). The nodes in this graph represent some action/task to be
computed. A node in this graph has a set of inputs and outputs on which it
receives and sends objects.
The set of available node types for a workflow are kept in a
(WidgetRegistry
).
WidgetDiscovery
can be used (but not
required) to populate the registry.
Common reusable gui elements used for building the user interface
reside in the gui
package.
Workflow Model¶
The workflow model is implemented by Scheme
.
It is composed by a set of node (SchemeNode
)
instances and links (SchemeLink
) between them.
Every node has a corresponding WidgetDescription
defining its inputs and outputs (restricting the node’s connectivity).
In addition, it can also contain workflow annotations. These are only used when displaying the workflow in a GUI.
Widget Description¶
Workflow Execution¶
The runtime execution (propagation of node’s outputs to dependent node inputs) is handled by the signal manager.
Workflow Node GUI¶
A WidgetManager is responsible for managing GUI corresponsing to individual nodes in the workflow.
Workflow View¶
The workflow view (
CanvasScene
)The workflow editor (
SchemeEditWidget
)
Application¶
Joining everything together, the final application (main window, …)
is implemented in orangecanvas.application
.