The navigation tree component of the expecco browser application shows the hierarchy of tree elements inside a test suite. The UI component actually consists of various subcomponents, which are selected via a tab-bar at the top:
- Navigation Tree
- Textual Search
- Error Search
- Special Search
- Search by Element Type
- Remembered References
All subcomponents show the same element selection. This means that a selection being made in any tab will also select and show the same element in all other tabs, if possible. For the tree, "possible" means: always; for the search lists, "possible" means, that the selected element was present in the list.
Also, all provide element specific popup-menus, which depend on the type of element(s) being currently selected. If multiple items are seleceted, the menu shows function applicable to all of them. This menu is replicated in the browser's main window menu under the "Project Tree" item.
Selection vs. Drag & Drop
All lists and the navigation tree support drag & drop of elements into activity diagrams and also into many selection boxes (for example, pre- and post action fields in a compound block's schema editor). The tree serves both selection and drag&drop services; if you simply click on an element, the selection is changed. If you click, hold the mouse button and start moving, it will start a drag&drop operation. This may be difficult on some machines, especially laptops, with a mouse pad, to start a drag operation without changing the selection. Then, you should tear off a separate tree or split the tree which serves as a drag&drop source only (using one of the or buttons).
Additional instances of the navigation tree can be created as independent window by clicking on "Tear Off" or "Split Tree" at the top right. This is useful because the navigation tree is both used for navigation and as a source for drag & drop operations. Having a separate tree for drag & drop makes this much easier.
In addition to the selection specific popup menu items, additional menu functions are present to create new elements. Because this is a very common operation, these functions are also available via quick-menu buttons in the navigation tab's toolbar area. Quick-menus are special in that they remember the last created element type, and make this the default for future clicks. To get the list of choices, click on the right side (the arrow) to get the menu.
The element types created by the quick menu buttons are grouped into:
- Action Group
contains compound and elementary actions; less frequently used action types are found in submenus.
- Test and Resource Group
contains testplan items, resources and skills. Also the datatype element is found there
- Misc Group
contains remaining elements; folders, attachments and documentation items
Textual Search Tab
This tab shows the result of a text search on elements in the test suite's element tree and also in activity diagrams. Useful searches are for strings in names, source code of elementary blocks or in attachments. Also highly useful is the search on tags: all of the standard library's elements have a number of tags to group elements by their function and it is recommended to do so in your own libraries. Useful tags to search for are "string", "collection", "file", "directory" etc.
Notice that tags can be used both to quickly find items, and to control various visual and logging attributes. For example, it is possible to attach particular colors to an action's tag or to enable/disable tracing/logging for particular tags. Please refer to the settings dialog / report template for those options.
Error Search Tab
This tab searches for possible- and actual errors inside the suite. Common errors are invalid connections or freeze values (for example, after a type change of a pin), missing attachments and others. It is recommended to look into this tab's result list from time to time, but especially after a reimport of an imported library.
Special Search Tab
This tab searches for less severe peculiarities, some of which may be errors. Most interesting is the "Consumed Pin Value in Loop", which is likely to be an error.
Element Type Search Tab
Useful to quickly find all attachments, types and other elements.
Remembered References / Search Result Tab
This tab shows the remembered result of a "Search References" operation, which is found on any element's popup menu in the navigation tree. This function searches for all elements which have a reference to the element in question. Often, you will want to edit each of those items in sequence. For this, press the "Remember References" button in the dialog, to have this tab being made visible, and showing this last result. The remembered list has an extra menu item at the end to mark individual items in the list. This is useful if want to edit each of those items in sequence and keep track of where you are in that process.
It is also possible to add/remove items from this remembered list explicitly via corresponding menu functions, which can be used as a kind of "bookmarking" or "todo" list.
Menu and Keyboard Functions
Each list provides a popup (right-button) menu, which offers operations on the selected item(s). The menu is specific to the kind of selection.
Keyboard shortcuts are always context sensitive and usually operate on the current selected item(s). Common keyboard shortcuts are found in the "Common Keyboard Shortcuts" document.
Arranging the Tree
For bigger projects, tree elements should be grouped by function and/or intended users. Libraries which are to be imported and used by others should contain folders separating private helper items from public API items. Private items can also be tagged as "PRIVATE" - these will be shown with a greyish icon and will not be offered in the "New Step" and "Replace" dialogs of the diagram editor.
Typically, you would also provide folders named "Playground", "Testing" or "Examples" containing elements which are meant for demonstration or self testing purposes.
Especially useful for users of the library are example actions, which demonstrate how measurement devices, stimulations or protocol actions are to be used. Also commmunication setup, shutdown and installation actions can be provided there.
To rearrange items, use either drag&drop, cut&paste or one of the movement menu items named "Move-Up", "Move-Down", "Move-Into" and "Move-Out". These are found at the end of the popup menu of the navigator tab. For movement, you can also use the keyboard shortcuts CTRL-Cursor-UP ("Move-Up"), CTRL-Cursor-DOWN ("Move-Down"), CTRL-Cursor-RIGHT ("Move-In") and CTRL-Cursor-LEFT ("Move-out").
The popup menu also contains entries to sort items by name.
Please note, that the tree's organisation has no effect whatsoever on test- or block execution. In contrast to similar tools, where a test-plan consists of child-items, expecco's items can be located anywhere in the tree (including imported libraries), and reused in multiple test plans.