]> SALOME platform Git repositories - modules/yacs.git/blob - doc/operations.rst
Salome HOME
0022328: [CEA 942] Worrying traces at YACS launch and SALOME closure
[modules/yacs.git] / doc / operations.rst
1
2 General operations
3 ==================
4
5
6 Activate YACS module
7 --------------------
8 To work with YACS module the user can activate it in two ways:
9
10 #. by activating YACS item in :ref:`modules`,
11
12 #. by click YACS toolbar button on :ref:`modules`.
13
14 For the correct activation of YACS module it is necessary to install YACS GUI libraries and set YACS_ROOT_DIR environment variable 
15 pointed to the directory with installed binaries.
16
17 If there is no any study opened/created, during the YACS module activation the user has possibility to choose between opening 
18 an existing study and creating a new one. When YACS module has been activated, YACS GUI :ref:`main_menu` and :ref:`toolbars` 
19 corresponding to the state when no calculation schema is being edited or run are shown:
20
21 .. image:: images/functionality_list_0.png
22   :align: center
23
24 In such a case there are only possibilities for the user to create or import (YACS or SUPERV XML) a schema.
25
26 :ref:`object_browser` shows tree representation of YACS objects in the current study.
27
28
29 Import/Export a schema
30 ----------------------
31 To display either in :ref:`viewer` or in the :ref:`object_browser` and :ref:`tree_view` and edit a schema the user 
32 can import the schemas' XML file. The modified schema object can be saved into the specified XML file with 
33 help of :ref:`export_schema` YACS GUI command.
34
35 .. _import_yacs_schema:
36
37 Import YACS calculation schema
38 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 The command **Import Schema --> YACS XML** is accessible from :ref:`file` or from the corresponding toolbar button 
40 on the :ref:`schema`. On this command call a standard open file dialog box appears and lets user to select desirable YACS XML file.
41
42 .. image:: images/functionality_list_1.png
43   :align: center
44
45 .. centered::
46   **Import YACS XML schema dialog**
47
48 Imported schema is shown as an entry in :ref:`object_browser`.
49
50 If a selected YACS XML file has incorrect structure, a part of a schema that has been imported successfully (before an error occurred) 
51 will be represented in :ref:`object_browser` and :ref:`viewer` and the user will be able to work with it. YACS GUI shows an error 
52 message with error description in such a case.
53
54 Dimensions of drawing area occupied by a graph, positions and dimensions of node presentations, positions of internal link points 
55 and type of :ref:`change_2d_representation_schema` is retrieved from YACS XML file in order to correct 2D representation of the 
56 schema in the 2D Viewer.
57
58 .. _import_supervisor_graph:
59
60 Import SALOME Supervisor graph
61 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62 This operation is intended for importing an XML files containing description of calculation schema and having logical structure 
63 adopted by old SALOME 4 Supervisor module. The command **Import Schema --> SUPERV XML** is available from :ref:`file`. On this command
64 call a standard open file dialog box appears and lets user to select desirable SUPERV XML file.
65
66 .. image:: images/functionality_list_2.png
67   :align: center
68
69 .. centered::
70   **Import SUPERV XML schema dialog**
71
72
73 Imported schema is shown as an entry in Object Browser.
74
75 If a selected SUPERV XML file has incorrect structure, a part of a schema that has been imported successfully (before an error occurred) 
76 will be represented in Object Browser and 2D Viewer and the user will be able to work with it. YACS GUI shows an error message with 
77 error description in such a case.
78
79 After importing of the SUPERV XML file has been completed a 2D representation of the schema (nodes and links) is displayed in the 2D Viewer.
80
81 .. _export_schema:
82
83 Export a schema to a file
84 ~~~~~~~~~~~~~~~~~~~~~~~~~
85 If user wants to store modifications done in the existing schema or save a new created graph into the YACS XML file, it is needed to make 
86 the schema active and choose the **Export schema** command from :ref:`file` or the corresponding toolbar button on the :ref:`edition_toolbar`. 
87 As a result a standard save file dialog appears and lets user input or select desirable YACS XML file name to export the active schema in it.
88
89 .. image:: images/functionality_list_3.png
90   :align: center
91
92 .. centered::
93   **Export schema dialog**
94
95 YACS module writes description of a schema and its child objects into an XML file. Additionally, schema 2D presentation data is saved 
96 in new created XML file.
97
98 Open/Save a study
99 -----------------
100 The user can start his work with the saved earlier study document. To open a saved study, the user has to activate common SALOME GUI 
101 operation with help of **Open** command from :ref:`file` or **Open document** toolbar button on the :ref:`standard`. SALOME unpacks 
102 YACS XML files from the study. YACS module reads them and recreates the study structure. If XML files in a study have incorrect 
103 structure, YACS GUI says that the loaded study is incomplete by showing an error message.
104
105 .. image:: images/functionality_list_4.png
106   :align: center
107
108 .. centered::
109   **Open a study dialog**
110
111 If the user has finished his work, he can save a study by calling **Save** command from :ref:`file` or **Save document** toolbar button 
112 on the :ref:`standard`. YACS module stores all schemas from the current study to XML files, which are then packed into a single HDF5 study 
113 file by SALOME.
114
115 .. image:: images/functionality_list_5.png
116   :align: center
117
118 .. centered::
119   **Save a study dialog**
120
121 .. _set_user_preferences:
122
123 Set user preferences
124 --------------------
125 In the frames of the YACS module the user has a possibility to set his own preferences. The preferences are regrouped in four tabs:
126
127 + General: Font for Python script, user catalog loaded by default, external python editor if needed, arrangement mode for widgets, various options 
128   for the display of links and the creation mode for service nodes.
129 + Links colors
130 + Nodes and ports colors
131 + Node States Colors: in edition and execution
132
133 These preferences can be set by the user with help of standard SALOME GUI operation of
134 editing preferences: **Preferences ...** command from :ref:`file`.
135
136 After the user has changed the preferences in the Preferences dialog box for YACS module, the system applies the new values of 
137 preferences to relevant objects either immediately, or only to new instance of objects and, at least, when 
138 the schema or the study is saved and reopened.
139
140 .. image:: images/functionality_list_6.png
141   :align: center
142
143 .. centered::
144   **Preferences dialog for YACS module, General tab**
145
146 .. image:: images/functionality_list_6a.png
147   :align: center
148
149 .. centered::
150   **Preferences dialog for YACS module, Link Color tab**
151
152 .. image:: images/functionality_list_6b.png
153   :align: center
154
155 .. centered::
156   **Preferences dialog for YACS module, Nodes tab**
157
158 .. image:: images/functionality_list_6c.png
159   :align: center
160
161 .. centered::
162   **Preferences dialog for YACS module, Node States tab**
163
164 Select an object
165 ----------------
166 Object Browser, Tree View and 2D Viewer provides user with the possibility to select an object. The user can select objects 
167 in 2D Viewer or Tree View. Synchronisation beetwen Tree View, 2D Viewer and Input Panel is automatic.
168
169 .. image:: images/functionality_list_7.png
170   :align: center
171
172 .. centered::
173   **Port selection**
174
175 In 2D Viewer the user can select/highlight nodes, ports and links. In the Tree View the user can select containers definitions, component 
176 instances definitions, nodes, ports, data types and links.
177
178 Today, YACS module supports only single selection, i.e. the user clicks on a single object with the mouse.
179
180 The 2D Viewer displays selected/highlighted objects in a distinctive way that allows the user to identify the selected/highlighted objects easily.
181
182 The system state after interactive selection depends on the type of selected object(s):
183
184 + **A single editable object is selected:** Input Panel is shown and contains property pages for the selected object and in some 
185   cases for its parent objects in a schema hierarchy. For instance, if an inline script node is selected either in 2D Viewer or in 
186   the Tree View, the property page for the selected node will be displayed in the Input Panel.
187   If the user selects SALOME service node, property pages for node, its component and container will be shown in the Input Panel.
188
189 .. image:: images/functionality_list_8.png
190   :align: center
191
192 .. centered::
193   **Node selection**
194
195 + **A single object that has no editable properties is selected:** Input Panel remains inchanged, with the previous selection.
196
197 .. _activate_context_popup_menu:
198
199 Activate context popup menu
200 ---------------------------
201 In the YACS module the user can perform a set of operations on the different types of objects shown in the Object Browser and Tree 
202 View of the schema with help of context popup menu. For this purpose, the user has to click the right mouse button in the Object Browser 
203 or in the Tree View of the schema to select the object and choose needed menu item from context popup menu, which contains commands
204 applicable to the current selection. For empty selection, only commands applicable to the window (Object Browser, schema Tree View 
205 or 2D Viewer) in general are shown in context menu:
206
207 + Object Browser: **Refresh** and **Find** operations are available.
208
209 + Schema Tree View: not applicable, there is always an item selected.
210
211 + 2D Viewer: nothing.
212
213 When a single object is selected in the **Object Browser**, its context popup menu contains all operations applicable to objects of 
214 the given type. Additionally, it contains **Expand all** command for expanding all collapsed items in the selected objects' sub-tree. 
215 There are currently no specific operation for YACS items in Object Browser popup menus.
216
217 By double click on a YACS item of the Object Browser (Schema in edition or execution), YACS switches to the corresponding context and 
218 synchronizes all corresponding views (Tree View, 2D View, Input Panel). Switching context is also possible via 2D Views tabs.
219
220 When a single object is selected in the **Tree View** of a schema, its context popup menu contains all operations applicable to objects 
221 of the given type.
222
223 .. _Table_2:
224
225 Specific operations available in the **edition mode** for each type of objects selected in the Tree View are given in the Table 2 below.
226
227 .. |schema| image:: images/schema.png
228 .. |container| image:: images/container.png
229 .. |component| image:: images/component.png
230 .. |block| image:: images/block_node.png
231 .. |switch| image:: images/switch_node.png
232 .. |loop| image:: images/loop_node.png
233 .. |node| image:: images/node.png
234 .. |inport| image:: images/in_port.png
235 .. |outport| image:: images/out_port.png
236 .. |control| image:: images/control_link.png
237 .. |data| image:: images/data_link.png
238 .. |stream| image:: images/stream_link.png
239
240
241 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
242 | **Selected object type**       | **Icon**    |     **Available context menu commands**                                             |
243 +================================+=============+=====================================================================================+
244 |Schema                          | |block|     |                                                                                     |
245 |                                |             |**Run Current Schema** - execute the selected schema, i.e. create a run              |
246 |                                |             |schema object.                                                                       |
247 |                                |             |                                                                                     |
248 |                                |             |**Import a Data Type** - add a data type from the session                            |
249 |                                |             |catalog or data types catalog of another schema into the                             |
250 |                                |             |current schema.                                                                      |
251 |                                |             |                                                                                     |
252 |                                |             |**Create a Container definition** - create an empty container                        |
253 |                                |             |with the default name **containerN** (where N = 0,1,2,...)                           |
254 |                                |             |inside the current schema.                                                           |
255 |                                |             |                                                                                     |
256 |                                |             |**Create a node** - submenu for creation of different types of nodes                 |
257 |                                |             |inside the current schema. See :ref:`create_node`.                                   |
258 |                                |             |                                                                                     |
259 |                                |             |**Paste** - paste items (if any) from the                                            |
260 |                                |             |buffer into the current schema.                                                      |
261 |                                |             |                                                                                     |
262 |                                |             |**YACS Container log** - in Execution, shows the YACS Container Log, useful for      |
263 |                                |             |Python Nodes prints.                                                                 |
264 |                                |             |                                                                                     |
265 |                                |             |**Arrange Local Nodes** - Compute Nodes disposition whith GraphViz algorithm,        |
266 |                                |             |Without modification of internal disposition of children Blocs and other Composed    |
267 |                                |             |Nodes.                                                                               |
268 |                                |             |                                                                                     |
269 |                                |             |**Arrange Nodes Recursion** - Compute Nodes disposition whith GraphViz algorithm,    |
270 |                                |             |With recursion on children Blocs and other Composed Nodes.                           |
271 |                                |             |                                                                                     |
272 |                                |             |**Zoom to Bloc** - Center the 2D view on the Schema and resize the view to fit in    |
273 |                                |             |the screen                                                                           |
274 |                                |             |                                                                                     |
275 |                                |             |**Center on Node** - Center the 2D view on selected Node, without resizing.          |
276 |                                |             |                                                                                     |
277 |                                |             |**Compute Links** - Recompute links, useful for large schemas, when automatic link   |
278 |                                |             |calculation have been deactivated, see :ref:`edition_toolbar`.                       |
279 |                                |             |                                                                                     |
280 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
281 |Containers                      |             |                                                                                     |
282 |                                |             |**Create a Container definition** - create an empty container                        |
283 |                                |             |with the default name **containerN** (where N = 0,1,2,...)                           |
284 |                                |             |inside the current schema.                                                           |
285 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
286 |SALOME component instance       | |component| |                                                                                     |
287 |                                |             |**Select a Component Instance** - When COMPONENT_INSTANCE_NEW is **deselected** in   |
288 |                                |             |preferences, this component instance is used for next SALOME service node creation   |
289 |                                |             |refering to the same Component type, until another component instance is selected.   |
290 |                                |             |If COMPONENT_INSTANCE_NEW is **selected**, this command has no effect, a new         |
291 |                                |             |component instance is always created with each SALOME service node creation.         |
292 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
293 |Node Reference                  |             |                                                                                     |
294 |                                |             |**Select reference** - Select the corresponding node and synchronize all the views.  |
295 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
296
297 Node objects.
298
299
300 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
301 | **Selected object type**       | **Icon**    |     **Available context menu commands**                                             |
302 +================================+=============+=====================================================================================+
303 |Bloc Node                       | |block|     |                                                                                     |
304 |                                |             |                                                                                     |
305 |SWITCH Node                     | |switch|    |                                                                                     |
306 |                                |             |                                                                                     |
307 |FOR Loop Node                   | |loop|      |                                                                                     |
308 |                                |             |                                                                                     |
309 |FOREACH Loop Node               | |loop|      |                                                                                     |
310 |                                |             |                                                                                     |
311 |WHILE Loop Node                 | |loop|      |                                                                                     |
312 |                                |             |**Create a node** - submenu for creation of different types of nodes                 |
313 |                                |             |inside the current schema. See :ref:`create_node`.                                   |
314 |                                |             |                                                                                     |
315 |                                |             |**Arrange Local Nodes** - Compute Nodes disposition whith GraphViz algorithm,        |
316 |                                |             |Without modification of internal disposition of children Blocs and other Composed    |
317 |                                |             |Nodes.                                                                               |
318 |                                |             |                                                                                     |
319 |                                |             |**Arrange Nodes Recursion** - Compute Nodes disposition whith GraphViz algorithm,    |
320 |                                |             |With recursion on children Blocs and other Composed Nodes.                           |
321 |                                |             |                                                                                     |
322 |                                |             |**Zoom to Bloc** - Center the 2D view on the Schema and resize the view to fit in    |
323 |                                |             |the screen                                                                           |
324 |                                |             |                                                                                     |
325 |                                |             |**Center on Node** - Center the 2D view on selected Node, without resizing.          |
326 |                                |             |                                                                                     |
327 |                                |             |**Compute Links** - Recompute links, useful for large schemas, when automatic link   |
328 |                                |             |calculation have been deactivated, see :ref:`edition_toolbar`.                       |
329 |                                |             |                                                                                     |
330 |                                |             |**Delete** - delete the selected composed node object with all its content.          |
331 |                                |             |                                                                                     |
332 |                                |             |**Cut** - cut item and keep it in a temporary buffer for paste elsewhere in the      |
333 |                                |             |current schema. **Warning! All links between this item and external node are lost!** |
334 |                                |             |                                                                                     |
335 |                                |             |**Copy** - keep a copy of the item in a temporary buffer for paste elsewhere in      |
336 |                                |             |the current schema.                                                                  |
337 |                                |             |                                                                                     |
338 |                                |             |**Paste** - paste items (if any) from the                                            |
339 |                                |             |buffer into the current schema.                                                      |
340 |                                |             |                                                                                     |
341 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
342 | All other types of nodes       | |node|      |                                                                                     |
343 |                                |             |**Delete** - delete the selected composed node object with all its content.          |
344 |                                |             |                                                                                     |
345 |                                |             |**Cut** - cut item and keep it in a temporary buffer for paste elsewhere in the      |
346 |                                |             |current schema. **Warning! All links between this item and external node are lost!** |
347 |                                |             |                                                                                     |
348 |                                |             |**Copy** - keep a copy of the item in a temporary buffer for paste elsewhere in      |
349 |                                |             |the current schema.                                                                  |
350 |                                |             |                                                                                     |
351 |                                |             |**Paste** - paste items (if any) from the                                            |
352 |                                |             |buffer into the current schema.                                                      |
353 |                                |             |                                                                                     |
354 |                                |             |**Zoom to Bloc** - Center the 2D view on the Schema and resize the view to fit in    |
355 |                                |             |the screen                                                                           |
356 |                                |             |                                                                                     |
357 |                                |             |**Center on Node** - Center the 2D view on selected Node, without resizing.          |
358 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
359
360 Port and link objects.
361
362 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
363 | **Selected object type**       | **Icon**    |     **Available context menu commands**                                             |
364 +================================+=============+=====================================================================================+
365 |Input port                      | |inport|    |**Delete** - delete the selected input port object. This menu item is available only |
366 |                                |             |for input ports of non-service nodes.                                                |
367 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
368 |Output port                     | |outport|   |**Delete** - delete the selected output port object. This menu item is available     |
369 |                                |             |only for output ports of non-service nodes.                                          |
370 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
371 |Control link                    | |control|   |**Delete** - delete the selected link object, update Tree View and 2D Viewer content |
372 |                                |             |according to this operation.                                                         |
373 |Data link                       | |data|      |                                                                                     |
374 |                                |             |                                                                                     |
375 |Datastream link                 | |stream|    |                                                                                     |
376 |                                |             |                                                                                     |
377 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
378
379 .. centered::
380   **Table 2. Context popup menus in the Tree View or 2D View of a schema, edition mode**
381
382
383
384
385 The popup menus available on the objects selected in the Tree View or 2D View of a schema in the **run mode** does not include edition commands.
386
387 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
388 | **Selected object type**       | **Icon**    |     **Available context menu commands**                                             |
389 +================================+=============+=====================================================================================+
390 |Schema                          | |block|     |                                                                                     |
391 |                                |             |                                                                                     |
392 |                                |             |**YACS Container log** - in Execution, shows the YACS Container Log, useful for      |
393 |                                |             |Python Nodes prints.                                                                 |
394 |                                |             |                                                                                     |
395 |                                |             |**Arrange Local Nodes** - Compute Nodes disposition whith GraphViz algorithm,        |
396 |                                |             |Without modification of internal disposition of children Blocs and other Composed    |
397 |                                |             |Nodes.                                                                               |
398 |                                |             |                                                                                     |
399 |                                |             |**Arrange Nodes Recursion** - Compute Nodes disposition whith GraphViz algorithm,    |
400 |                                |             |With recursion on children Blocs and other Composed Nodes.                           |
401 |                                |             |                                                                                     |
402 |                                |             |**Zoom to Bloc** - Center the 2D view on the Schema and resize the view to fit in    |
403 |                                |             |the screen                                                                           |
404 |                                |             |                                                                                     |
405 |                                |             |**Center on Node** - Center the 2D view on selected Node, without resizing.          |
406 |                                |             |                                                                                     |
407 |                                |             |**Compute Links** - Recompute links, useful for large schemas, when automatic link   |
408 |                                |             |calculation have been deactivated, see :ref:`edition_toolbar`.                       |
409 |                                |             |                                                                                     |
410 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
411 |Composed nodes                  |             |                                                                                     |
412 |                                |             |                                                                                     |
413 |                                |             |**YACS Container log** -  shows the YACS Container Log, useful for Python Nodes      |
414 |                                |             |prints.                                                                              |
415 |                                |             |                                                                                     |
416 |                                |             |**Arrange Local Nodes** - Compute Nodes disposition whith GraphViz algorithm,        |
417 |                                |             |Without modification of internal disposition of children Blocs and other Composed    |
418 |                                |             |Nodes.                                                                               |
419 |                                |             |                                                                                     |
420 |                                |             |**Arrange Nodes Recursion** - Compute Nodes disposition whith GraphViz algorithm,    |
421 |                                |             |With recursion on children Blocs and other Composed Nodes.                           |
422 |                                |             |                                                                                     |
423 |                                |             |**Zoom to Bloc** - Center the 2D view on the Schema and resize the view to fit in    |
424 |                                |             |the screen                                                                           |
425 |                                |             |                                                                                     |
426 |                                |             |**Center on Node** - Center the 2D view on selected Node, without resizing.          |
427 |                                |             |                                                                                     |
428 |                                |             |**Compute Links** - Recompute links, useful for large schemas, when automatic link   |
429 |                                |             |calculation have been deactivated, see :ref:`edition_toolbar`.                       |
430 |                                |             |                                                                                     |
431 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
432 |Elementary nodes                |             |                                                                                     |
433 |                                |             |                                                                                     |
434 |                                |             |**Node Error report** - shows the Node Error log                                     |
435 |                                |             |                                                                                     |
436 |                                |             |**Node Error details** - shows the Node Error log                                    |
437 |                                |             |                                                                                     |
438 |                                |             |**Node Container log** - shows the Node Container Log (only for services nodes)      |
439 |                                |             |                                                                                     |
440 |                                |             |**Zoom to Bloc** - Center the 2D view on the Schema and resize the view to fit in    |
441 |                                |             |the screen                                                                           |
442 |                                |             |                                                                                     |
443 |                                |             |**Center on Node** - Center the 2D view on selected Node, without resizing.          |
444 |                                |             |                                                                                     |
445 +--------------------------------+-------------+-------------------------------------------------------------------------------------+
446
447 .. centered::
448   **Table 3. Context popup menus in the Tree View or 2D View of a schema, run mode**
449
450
451
452 .. _set_active_schema_or_run:
453
454 Set active schema or run of a schema
455 ------------------------------------
456 Active schema is a YACS schema from the current study that is used implicitly in all YACS GUI operations working with a schema. 
457 Typically, a study can contain several YACS schemas and several executions (run) for a schema. For some YACS GUI operations such as 
458 creation of a node, it is convenient to add a new object (node) to the currently active schema.
459
460 YACS GUI allows the user to set a schema/run as active by double click on the schema/run object in the Object Browser or by switching 
461 between 2D Viewers showing different schemas/runs.
462
463 The active schema is used in creation/execution operations.
464