======TAST Canvas 2.0====== TAST has an important feature: the Canvas, which is a place where the user can paint the UML diagrams.\\ \\ Actually, the Using TAST workflow starts from its Canvas.\\ \\ Currently Canvas/Modeling 2.0 does not support Internet Explorer due to IE is a discontinued product. Other Web browsers; Chrome, Edge and Firefox are compatible with Canvas 2.0.\\ \\ You can launch the Canvas from several places: * Creation of a new UML Diagram. * Editing an existing Diagram. * Navigation from several places of TAST to consult a diagram.\\ \\ {{ :en:canvas01en.png?direct&400 |}}\\ \\ =====Top toolbox===== The image above shows (highlighted in red), the top toolbox with the following options: * Create a New Diagram: for creating a UML diagram. * Import a Selenium IDE Record: for importing an IDE record from Selenium. * Import a Diagram: for importing an existing diagram, but from another environment to our current environment. * Export a Diagram: for exporting a diagram to be used on another environment, but also into TAST. * Lock/unlock a diagram. * Save a diagram. =====Bottom toolbox===== Once a diagram has been edited, a second toolbar will be displayed to facilitate interaction with the diagram.\\ \\ {{ :en:canvas02en.png?direct&500 |}}\\ ====Design Tools==== It contains the different objects that can be drawn in the Canvas 2.0.\\ \\ {{ :en:herramientas_de_dibujo.png?direct&400 |}}\\ Each time an option is selected, the Cursor changes according to the type of object to be drawn. Instead of selecting the tools from here, you can also use the respective **keyboard shortcuts** (see help screen on the “Show canvas help” button).\\ **Note** about drawing cursors: All cursors have an active "hotspot" (point where the cursor acts). In the case of message drawing cursors, the hotspot is the tip of the arrow.\\ ====Delete Elements==== Allows you to delete the object or objects of the diagram that have been selected.\\ \\ {{ :en:icono_borrar.png?300 |}}\\ You have 2 possible options: Delete elements, and Delete elements and variables. Items can also be deleted using the “Delete” option from the contextual menu.\\ **Note**: This action can be reversed using the “Undo” option from the contextual menu.\\ ====Diagram Actions==== Groups a series of actions that can be performed at the diagram level.\\ \\ {{ :acciones_de_diagramaen.png?direct&400 |}} * Move to superior position: Moves the diagram to the top position of the canvas and restores the initial zoom (scale to 1:1). * Move to inferior position: Moves the diagram to its position at the bottom and restores the initial zoom (scale to 1:1). * Redistribute auto ítems: Allows you to redistribute the objects of a diagram so that there is an equidistant space between them (only vertically).\\ **Note**: This action can be reversed using the “Undo” option from the contextual menu.\\ ====Assistants==== Shows available assistants: {{ :asistentesen.png?direct&300 |}} ====View Diagram Map==== By clicking this button, it displays a thumbnail of the current diagram (at a scale of 4:1) which will appear in a box at the top right corner of the Canvas.\\ {{ :en:canvas03en.png?direct&500 |}}\\ This thumbnail display is especially useful with large diagrams. It contains a "magnifying glass" (represented by the blue rectangle that appears above the thumbnail), and its size is proportional to the Canvas of our monitor in each case. Moving said "magnifying glass" allows us to "focus" on the area of the diagram that we want to visualize, and the real diagram will move accordingly, showing the area highlighted by the magnifying glass.\\ \\ Any movement or change in the actual diagram is reflected in the thumbnail and vice versa.\\ \\ While we have the diagram map visible, the zoom in/zoom out of the real diagram will be inoperative, so that the aspect ratio of both diagrams -real and thumbnail- is not affected.\\ \\ If we want to hide the diagram map, just press the button again.\\ ====Magnifying glass==== It allows you to carry out free text searches in all the elements of the diagram, and it also allows you to limit the searches on those elements that interest you at a given moment. \\ \\ When you press the Magnifying glasss button, a small search form appears at the top of the canvas, consisting of the following elements:\\ {{ :en:lupaen.png?direct&500 |}}\\ * An editable field where to enter the string to search for. In this field we can also include directives to narrow the search (explained later). * Button to clear the search string.\\ * “Magnifying glass” button to start the search.\\ **Note**: You can also press the Enter key in the editable field to start the search. * Field where the number of elements found is displayed. The current element is also shown in this field once we go through the elements with the “up” and “down” buttons. * “up” and “down” buttons, which allow us to browse, display and position ourselves in the diagram within the search result elements. * Button to close the search form.\\ ===Perform free text searches=== Once we enter the string to search for, and pressing the Enter key or the Magnifying glass button on the form, all the elements of the diagram that contain said string will be searched for, in any of its fields.\\ The search is “case insensitive” (It doesn't matter if uppercase or lowercase).\\ If elements containing the string have been found, they will initially all appear highlighted in orange in the diagram.\\ To move between the different elements found in the diagram, we can use the “up” and “down” buttons.\\ \\ **Note**: If we also have the properties form open, we will see the properties of each element as we scroll through them.\\ ===Narrow the search by element types=== If instead of searching globally in all the elements of the diagram, we want to limit the search by restricting it to one or more types of elements, we can do it using the following nomenclature, which consists of putting one or more keywords (separated by the comma character ', ') and then the text to search for (separated by the colon character “:”), such that:\\ \\ //Key1, key2, key3: text_to_find//\\ \\ For example, if we want to search for the string “pdf” only in messages, we will write the keyword “message”, then “:”, and followed by the text to search for:\\ \\ {{ :en:lupa1.png?600 |}}\\ Or if we want to search for text “OUTPUT” only in messages and in adapters:\\ \\ {{ :en:lupa2.png?600 |}}\\ The list of keywords to narrow searches by item type is: * adaptor * message * gate * fragment * subtestcase\\ ===Narrow the search by content type=== Likewise, we can limit searches, depending on whether we want to search in the properties of the elements or in their mapping. They can be combined with the previous dimensions.\\ For example, if we want to search for the text "pdf" only in the mapping of adapters and messages, the string to enter in the search field will be:\\ \\ {{ :en:lupa3.png?direct&600 |}}\\ The list of keywords to narrow searches by content type is: * properties, props * mapping\\ \\ ====Reload repositories==== It allows to reload YML TXT files, which contain a series of keys that can be used in the diagrams.\\ {{ :en:icono_recargar_repositorios.png?300 |}}\\ ====Download diagram image==== In this case, the image is generated “on the fly” just as the current diagram is, that is, a preview of the diagram is created and downloaded to a .png file.\\ {{ :en:icono_descargar_imagen_del_diagrama.png?300 |}} ====Validate mapping==== It works the same way as in the previous canvas.\\ {{ :en:icono_validar_mapeo.png?300 |}} ====Launch validation==== It works the same way as in the previous canvas.\\ {{ :en:icono_lanzar_validacion.png?300 |}} ====Show canvas help==== Selecting this last option:\\ {{ :en:icono_mostrar_ayuda_del_canvas.png?300 |}} a model with 3 tabs appears, where the basic canvas help is displayed:\\ * “Keyboard shortcuts” Tab.\\ It shows all the keyboard shortcuts that are equivalent to actions carried out either through menu options or buttons.\\ * “Global variables” Tab.\\ Shows the standard global variables available in any diagram.\\ * “Color Guide” Tab.\\ It refers to the different colors that we can now find in the objects of the diagram.\\ {{ :en:canvas_help.png?nolink&400 |}}\\ \\ =====Canvas functionality===== ====Canvas Movement==== When we move the mouse across the canvas, the cursor changes to the **“hand”** icon when hovering over some of the Canvas objects.\\ The Canvas moves freely in all directions. By clicking and dragging the mouse, over any "empty" place on the canvas (that is, across any area that does not have an object) we will move the canvas in the desired direction.\\ The diagram can be moved whether the diagram is locked (cannot edit, padlock **“closed”**) or unlocked (it can be edited, padlock **“open”**).\\ \\ ====Zoom in/Zoom out==== The zoom of the diagram is free. It is done by sliding the **“Wheel”** of the mouse. It also works in this way when using a laptop **trackpad**:\\ * Wheel forward: zoom out ( bring closer, larger diagram). * Wheel back: zoom in (distance, smaller diagram).\\ Also, the zoom is now relative to the point where the cursor is (scrolling the wheel forwards or backwards will make the diagram bigger or smaller in the direction of the point where the cursor is).\\ The zoom is no longer a relevant fact when saving or opening the diagram: when opening the diagram, the zoom (or rather, the scale) is always 1:1, that is, initially it is always displayed as real size.\\ You can use the zoom whether the diagram is locked (cannot edit, padlock “closed”) or unlocked (it can be edited, padlock “open”).\\ \\ ====Selection of objects in the Canvas==== By Selecting an object, we can then perform other actions with it (eg delete it, etc.)\\ ===Simple selection === To select an object in the canvas, just click on the object (in any of its parts, including the text). To deselect it, just click on an "empty" area of the canvas. ===Multiple selection=== To select several objects in the canvas, we will press shift-click on the different objects that we want to select.\\ This allows us to perform actions on that group of selected objects (eg delete them, move them, copy them, etc.)\\ To deselect them, just click on an "empty" area of the canvas. In multiple selection there is no limitation regarding the type of selected objects. All types of objects can be selected at the same time (messages, gates, fragments...).\\ \\ ====Movement of objects in the Canvas==== Objects have limited movements, depending on their type: * Adapters can only be moved horizontally. Currently they have no other limitation to horizontal movement. * Messages and gates can only be moved vertically. The only limitation to vertical movement is that they do not exceed the line of the adapters. * Fragments and subtest cases can be moved in any direction. The only limitation to vertical movement is that they do not exceed the line of the adapters. Canvas objects cannot be moved while the diagram is locked (“padlock closed” mode).\\ ===Movement of one object=== Objects are moved as described previously: by clicking and dragging the object.\\ ===Movement of multiple objects=== Having selected multiple objects, we then press “shift-click” while dragging the group of objects.\\ ===Automatic scrolling in the Canvas while dragging Canvas Objects=== When you have an object or a group of objects selected and they are dragged vertically (up or down), when you reach the bottom of the Canvas, it performs an automatic scroll to make it easier for the user to move around. Similarly, auto-scrolling is also done if objects are dragged upwards.\\ \\ ====Context menu on Canvas objects==== By **clicking the mouse right hand button** on any object on the canvas, a dynamic contextual menu will appear, it presents us with a series of options depending on the type of the object selected.\\ \\ {{ :en:menu_contextual.png?direct&300 |}}\\ Some options or others will also appear depending on whether we have one or more selected objects (multiple selection).\\ Depending on whether the diagram is unlocked by the user (“Edit” mode or “Display” mode, or if it is more graphic, “open padlock” or “closed padlock”), some options will appear as active or not active.\\ If you right-click on an empty area of the canvas, some of the context menu options will refer to actions on the diagram itself.\\ ===Context menu options=== * **Show info**: Shows the editing forms of the selected object (or of the diagram, if you have clicked on an empty area), when the diagram is locked. Forms cannot be edited.\\ \\ * **Open diagram in data management**: Opens the diagram from Data Management in a new browser window.\\ \\ * **Edit properties**: Shows the editing forms of the selected object (or of the diagram, if you have clicked an empty area), when the diagram is unlocked.\\ You can also edit object properties by double clicking on it.\\ \\ * **Copy**: Copies the selected object or objects.\\ Objects can also be copied by pressing **CTRL+C**.\\ \\ * **Paste**: Pastes the previously copied object or objects.\\ Objects can also be pasted by pressing **CTRL+V**.\\ \\ * **Paste Here**: Paste the previously copied object or group of objects, in the desired position.\\ When this option is selected, a special cursor appears,{{:en:paste_here.png?direct&30|}}, which allows us to position ourselves in the desired position in the Canvas, and by "clicking" on it, it will paste the copied objects in that vertical position.\\ This action can also be performed by pressing **CTRL+SHIFT+V**.\\ \\ * **Delete**: Allows you to delete the selected element or elements.\\ \\ * **Undo**: Allows you to undo some actions such as: deleting elements, automatically redistributing the diagram items.\\ //Note: A newer version will incorporate the possibility of doing “Undo” after creating elements in the diagram (messages, gates, combined fragments, etc) as well as “Paste” and “Paste Here” actions.//.\\ Undo can also be done in the same cases by pressing **CTRL+Z**.\\ \\ * **Open gate diagram**: If the selected object is a gate that has a diagram assigned, it allows opening the gate diagram in a new browser window.\\ \\ * **Select all items in fragment**: If the selected object is a fragment or subtestcase, it allows selection of all the objects that are within it.\\ \\ * **Select ítems range**: If there is more than one selected object, it allows you to select all the objects between the first and the last selected object.\\ \\ ====Copy & paste of Canvas objects==== ===Copy objects=== By selecting one or more items on the canvas, these can be copied using the **CTRL+C** key combination, or by using the **Copy** option from the contextual menu. There is no restriction as to the type or number of objects to copy at a time.\\ ===Paste Objects=== Having previously copied one or more objects, they can be pasted using the **CTRL+V** key combination or using the **Paste** option from the contextual menu. Normally the objects are pasted after the copied object(s).\\ ===Paste of objects in the desired position “Paste Here”=== Having previously copied one or more objects, they can be pasted in a determined position of the diagram, using the **CTRL+SHIFT+V** key combination, or using the **Paste Here** option from the contextual menu. As we saw in the previous point, when selecting this option a special cursor appears, {{:en:paste_here.png?direct&30|}} and so when we press “click” the copied objects will be pasted in that position.\\ ===Paste of objects in a diferent diagram=== An object or objects that have previously been copied from another diagram can be pasted into a diagram. To do this, you must have both diagrams open, each one in a different window, always using the same browser. The diagram on which we are going to copy does not need to be unlocked, but the diagram on which we are going to paste does need to be unlocked.\\ \\ The restriction on pasting objects between different diagrams will depend on the characteristics of the source diagram and the destination diagram.\\ // For example: if we copy a gate that is in adapter X, an adapter X must also exist in the other diagram, otherwise that gate cannot be copied. Or if we copy a message going from adapter A to adapter B, in the other diagram there must be at least one adapter A and one adapter B for the message to be copied//.\\ \\ If there is more than one adapter as a possible recipient of a copied message or gate, then the one on the far left of the diagram must always be the one used.\\ \\ The pasting of objects type; fragment/subtestcase/adapter do not have such restrictions.\\ \\ In the event that all the objects that were copied from the source diagram could not be pasted into the destination diagram (for the reason we have just explained), a message will appear telling us the number of objects that have actually been pasted.\\ \\ If we paste the objects using the normal (**Paste**), the copied objects will be pasted at the end of the diagram.\\ \\ If we paste the objects using (**Paste Here**), then the copied objects will be pasted in the position chosen by the user.