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
.