1.. _Overview: 2 3Overview 4######## 5 6.. currentmodule:: orangecanvas 7 8Orange Canvas application is build around the a workflow model (scheme), 9which is implemented in the :mod:`~orangecanvas.scheme` package. Briefly 10speaking a workflow is a simple graph structure(a Directed Acyclic 11Graph - DAG). The nodes in this graph represent some action/task to be 12computed. A node in this graph has a set of inputs and outputs on which it 13receives and sends objects. 14 15The set of available node types for a workflow are kept in a 16(:class:`~orangecanvas.registry.WidgetRegistry`). 17:class:`~orangecanvas.registry.WidgetDiscovery` can be used (but not 18required) to populate the registry. 19 20 21Common reusable gui elements used for building the user interface 22reside in the :mod:`~orangecanvas.gui` package. 23 24 25Workflow Model 26************** 27 28The workflow model is implemented by :class:`~scheme.scheme.Scheme`. 29It is composed by a set of node (:class:`~scheme.node.SchemeNode`) 30instances and links (:class:`~scheme.link.SchemeLink`) between them. 31Every node has a corresponding :class:`~registry.WidgetDescription` 32defining its inputs and outputs (restricting the node's connectivity). 33 34In addition, it can also contain workflow annotations. These are only 35used when displaying the workflow in a GUI. 36 37 38Widget Description 39------------------ 40 41* :class:`~registry.WidgetDescription` 42* :class:`~registry.CategoryDescription` 43 44 45Workflow Execution 46------------------ 47 48The runtime execution (propagation of node's outputs to dependent 49node inputs) is handled by the signal manager. 50 51* :class:`~scheme.signalmanager.SignalManager` 52 53 54Workflow Node GUI 55----------------- 56 57A WidgetManager is responsible for managing GUI corresponsing to individual 58nodes in the workflow. 59 60* :class:`~scheme.widgetmanager.WidgetManager` 61 62Workflow View 63************* 64 65* The workflow view (:class:`~canvas.scene.CanvasScene`) 66* The workflow editor (:class:`~document.schemeedit.SchemeEditWidget`) 67 68 69Application 70*********** 71 72Joining everything together, the final application (main window, ...) 73is implemented in :mod:`orangecanvas.application`. 74