# Activity

In the browser an activity is placed in a class view, a use case view or a use case, and may contain parameters, expansion and interruptible activity regions, activity nodes (activity action, object node or control node) and activity diagrams :

The activity's properties are exposed below.

## Activity parameter

To simplify in Bouml a parameter is both a UML parameter and a UML parameter node, this means that the properties of a parameter also contains the properties of a parameter node.

In the browser a parameter is placed under its activity and may contains flows. A flow can't directly connect two parameters, a parameter is connected through a flow to an expansion node or an activity node (activity action, object node or control node) whose must be in the activity owing the parameter.

Note : parameter sets are defined on actions, see actions.

## Activity Menus

The activity menu appearing with a right mouse click on its representation in the browser is something like these, supposing the activity not read-only nor deleted (see also menu in a diagram) :

### Menu : add ...

These entries of the menu allow to add as activity diagram, a parameter, a region or an activity node (activity action, object node or control node). The activity diagrams nested in a activity are the ones for the activity, this means that in case you use this activity diagram to create a new region or an activity node these ones will be a child of the activity in the browser.

### Menu : edit

edit allows to show/modify the activity properties. In case the activity is read-only, the fields of the dialog are also read-only.

#### activity dialog, tab Uml

The tab Uml is a global tab :

The proposed stereotypes are the default one specified through the Default stereotypes dialog more the current one (empty here). It is possible to choose into the list or to give a new one, or to empty it.

Read-only and single execution are the standard UML flags.

The editor button visible above and associated here to the description, allows to edit the description in an other window, or to call an external editor (for instance Xcoral) specified through the environment dialog. Note that this external editor have to create an own window, its parameter is the pathname of the file containing the description, its execution is done in parallel with BOUML which looks each second at the file contents to get the new definition until the dialog is closed (I do not like very much this polling but this works even QT isn't compiled with the thread support).

#### activity dialog, tab Ocl

The Ocl tab allows to specify the pre and post conditions using the Ocl language, but in fact BOUML doesn't check the syntax, this is just a convention.

#### activity dialog, tab C++

This tab allows to specify the pre and post conditions in C++, but in fact BOUML doesn't check the syntax, this is just a convention.

#### activity dialog, tab Java

This tab allows to specify the pre and post conditions in Java, but in fact BOUML doesn't check the syntax, this is just a convention.

### Menu : duplicate

The menu entry duplicate clone the activity without its children

### Menu : referenced by

To know who reference the current activity through a dependency or a call behavior action.

### Menu : mark

See mark

### Menu : delete

The menu entry delete is only present when the activity is not read-only (I speak about the file permission, not about the read-only UML property)

Delete the activity and all its children, and all the representation of them in the opened diagrams. After that it is possible to undelete them (from the browser) until you close the project : obviously the deleted items are not saved !

### Menu : tool

The menu entry tool is only present in case at least a plug-out may be applied on an activity. The selected tool is called and applied on the current activity.

## Parameter Menus

The parameter menu appearing with a right mouse click on its representation in the browser is something like these, supposing the parameter not read-only nor deleted (see also menu in a diagram) :

### Menu : edit

edit allows to show/modify the parameter properties. In case the parameter is read-only, the fields of the dialog are also read-only.

#### parameter dialog, tab Uml

The tab Uml is a global tab :

The proposed stereotypes are the default one specified through the Default stereotypes dialog more the current one (empty here). It is possible to choose into the list or to give a new one, or to empty it.

The proposed types are the non class types defined in the first tab of the generation settings, more all the classes defined in the project (with their localization to distinguish synonymous classes). You are not limited to the proposed list, and any form (even invalid for the target language(s)) may be given. The button type: shows a menu proposing :

- if the current type of the parameter is a class : to select this class in the browser

- if the parameter is not read-only and if a class is selected in the browser : to set the type to be this class

The direction, multiplicity, ordering, effect, in state, default value, is control, unique, exception and stream are the standard UML properties. The flags exception and stream are exclusive, choose standard to be not exception nor stream.

The editor button visible above and associated here to the default value and description, allows to edit the default value or the description in an other window, or to call an external editor (for instance Xcoral) specified through the environment dialog. Note that this external editor have to create an own window, its parameter is the pathname of the file containing the description, its execution is done in parallel with BOUML which looks each second at the file contents to get the new definition until the dialog is closed (I do not like very much this polling but this works even QT isn't compiled with the thread support).

#### parameter dialog, tab Ocl

The Ocl tab allows to specify the selection using the Ocl language, but in fact BOUML doesn't check the syntax, this is just a convention.

#### parameter dialog, tab C++

This tab allows to specify the selection in C++, but in fact BOUML doesn't check the syntax, this is just a convention.

#### parameter dialog, tab Java

This tab allows to specify the selection in Java, but in fact BOUML doesn't check the syntax, this is just a convention.

### Menu : duplicate

The menu entry duplicate clone the parameter without its children

### Menu : referenced by

To know who reference the current parameter through flow

### Menu : mark

See mark

### Menu : delete

The menu entry delete is only present when the parameter is not read-only

Delete the parameter and all its children, and all the representation of them in the opened diagrams. After that it is possible to undelete them (from the browser) until you close the project : obviously the deleted items are not saved !

### Menu : tool

The menu entry tool is only present in case at least a plug-out may be applied on an parameter. The selected tool is called and applied on the current parameter.

## Default stereotypes

The dialog allowing to set the default activity and parameter stereotypes :

## Activity Drawing

A activity is drawn in a diagram as a rectangle with rounded corners :

Note : the activity sub elements are forced to be inside their activity rectangle,. So, when you want to draw in a diagram both an activity and some of its elements I strongly recommend to add first the activity then the elements, else when you add the activity the elements may be moved to be inside the rectangle broking their pretty respective positions.

A right mouse click on a activity in a diagram calls the following menu (supposing the activity editable) :

### Menu : edit drawing settings

These drawing settings concerns only the picture for which the menu is called.

A settings valuing default indicates that the setting specified in the upper level (here the diagram) must be followed, obviously this one may also be default ... up to the project level. When you add a activity in a diagram, all the settings are set to default.

#### show conditions :

Allows to show or not the activity's pre and post conditions depending on the drawing language. Note : on an upper level, for instance at the diagram level, this drawing follow the value of the drawing show info notes. In the diagram above show conditions is true, if false the drawing become :

#### drawing language :

Allows to specify the used language in case the activity's pre and post conditions are shown.

#### activity color :

To specify the fill color.

### Menu : set associated diagram

set associated diagram allows to automatically open the current diagram when a double mouse click is made on the activity representation in a diagram or the browser. After that the only way to edit the activity is to choose the edit entry in the menu.

### Menu tools :

Appears only when at least one plug-out is associated to the activitys. To apply a plug-out on the activity.

## Parameter Drawing

A parameter node is drawn in a diagram as a rectangle, with the indication indicating if the parameter is a stream or an exception :

A right mouse click on a parameter in a diagram calls the following menu (supposing the parameter editable) :

### Menu : edit drawing settings

These drawing settings concerns only the picture for which the menu is called.

A settings valuing default indicates that the setting specified in the upper level (here the diagram) must be followed, obviously this one may also be default ... up to the project level. When you add a parameter in a diagram, all the settings are set to default.

### Menu : select class in browser

Appears when the type of the parameter is a class, to select it in the browser.

Previous : pseudo state

Next : activity region