User Guide

This document describes how to access the functionality in the MyContexts program.

Perspectives on contexts

The user interface of MyContexts visualises perspectives on contexts. A context is just a collection of roles. You play a role in each context you're able to see or change. Associated with that role is a perspective that determines whether you can just inspect values, change them, delete them or add to them. It also determines whether you can change the filler of a role.

By opening a context (from an already open context) you navigate from screen to screen. Usually, you can open a context both in place of the open context, and on another tab or in a new browser window.

Apart from opening contexts, you can also open a form to edit properties of a role.

Roles and Cards

The MyContexts interface rests on the concept of a card. A card represents a role instance. It can be selected, dragged and dropped. Once selected, keys or combinations of keys trigger specific behaviour on the role represented by the card.

Single (functional) roles

Sometimes, a context will accept just a single instance of a role. A taxi situation, for example, will usually be modelled with just a single Driver role.

Multi-Roles

On the other hand, there may be multiple Passengers in a taxi, hence this role would usually be modeled as a Multi-Role.

Visualising Multi-Roles is different than visualising functional roles. For the latter, a single card will do. A Multi-Role is visualised with a table.

This so-called RoleTable shows properties of the roles on the columns and an instance of the role on each row. The table will usually have a column that sports small cards, allowing you to manipulate the role as an entity (see below).

Behaviour associated with Roles

There are five things one can do with an existing role:

It is up to the designer of the screens to associated zero or more of these behaviours with a given representation of that role (say, a card). For some behaviours, the user interface clearly indicates whether it is available on a particular role (e.g. by displaying a + button on the toolbar under a multi-role table). In some cases you'll have to find out by trying (e.g. whether you can remove a role, by selecting it and pressing delete).

Triggering behaviour

All behaviour can be triggered with both the keyboard and the mouse.

With the mouse

With the keyboard

In the RoleTable

RoleTables have extra ways to trigger behaviour:

Using the mouse:

Notice that a selected card in the table supports the same keyboard triggers as a selected solitary card or a selected card in a list.

The table will 'remember' the selected cell as long as it is on the screen (it loses that memory on navigating to another context or when opening a role form). This memory shows up when you tab into the table.

Table controls

A table displays a toolbar just below it. This toolbar

In the File component

Properties can have a range of type File. In a form, such properties are displayed as two fields and, depending on state, one or two buttons.

The component has four states:

The empty state displays a name field and a MIME type field, both plain string types (but only values that match the regular expression mentioned above are accepted as MIME type). It also displays an upload icon button. When a name and MIME type are entered for the first time, the control creates and stores a new file. The state then becomes filled. In the empty state, the component also functions as a dropzone (one can drop a file on it).

NOTE: The use of the left-arrow key is consistent with the way one can move through a table. However, as a consequence, one cannot move through the text that has been entered in the control with the left-arrow key.

The filled state shows the name and mime type (and neither is editable). In this state, the control is draggable if a url is available (the payload will be a standard HTML File object). It is also a dropzone for such objects.

NOTE: the draggable interface has not yet been implemented.

readonly is like filled, but without the possibility to move to editable. If there is an url in the property value, the end user will be able to download the file.

When editable, the control displays two buttons: one to download the file, one to upload it. Both can be activated by selecting and pressing space. The name of the file may be changed; its MIME type cannot. Move from button to button or field by pressing left arrow.

NOTE: When the user has not yet changed the file name, pressing enter has no effect. Press escape to leave the control.

In all states, the download button is only enabled if the control has a value for the database for the file. This will be

Open a context from the navigation bar

The MyContexts application is opened on the url https://www.mycontexts.com. This will land you on the standard entry page that lets you choose an App from those listed in a bar on the left. However, it is also possible to jump right into a specific context by entering the name of that context right after the url. For example, enter https://www.mycontexts.com?MySystem to open just the MySystem context (showing you the Apps you've installed and those that are available in the Repository).

The name you enter after the question mark is matched to indexed context names defined in models. Examples of indexed context names are:

Just entering 'System' would be enough to land you in MySystem. If you enter 'My', however, you'll be presented the four names above and you can choose by clicking one of them.

NOTE: this currently does not work. See Issue 4

Navigating using the browser's tools

MyContexts stores the history of contexts that you've visited, in the browser's history. Consequently, you can navigate back (and forwards) using the browser's tools such as the navigation buttons.

Logging in to MyContexts is not, in this sense, a navigation action. Only when you open the System context does navigation start. As a reminder: the top entry in the browser's history list is the context you currently have on screen.

When you explicitly close a context (using the button in the menu), a new item is added to history with the title "Closed {contextname}" (where {contextname} has been replaced with the title of the context). If you navigate back from such a situation, you in effect re-open that context. This is useful when you have closed MyContexts. After logging in, by navigating back you pick up exactly where you left.

When you try to navigate away from MyContexts (e.g. by closing the tab) while a context is open, a warning is issued. Best practice is to first close the context and then navigate away (if you don't, others will think you still have that context open (in some situations, they can see that status)).

Finally, when you have navigated back to the point that the next time you go back would make you leave MyContexts, you'll get a warning if you try. It will say something to the effect of "Leave site?" (the exact wording is determined by the browser's makers). If you really want to exit, press Leave. You'll have to log in again if you want to resume MyContexts. Otherwise, press Cancel.