# Activity Actions

An activity action is an activity node. In the browser an activity action is placed in an activity or an activity region, and may contain pins, parameter sets, and flows :

There are several kinds of action, Bouml doesn't propose all the kinds defined in UML but the main ones : opaque, accept event, read variable value, clear variable value, write variable value, add variable value, remove variable value, call behavior, call operation, send object, send signal, broadcast signal, unmarshall and value specification.

The pins are added automatically by Bouml depending on the kind of the action, for the call behavior and call operation and actions on a variable the pins are set when the behavior/operation/variable is set or changed. When something is changed all the current pins are removed then new ones may be added. Note that you may change or delete the default pins or add new ones, and the pins are not changed when the corresponding behavior/operation/variable is modified.

The parameter sets are defined on the actions and have sense only for call behavior action when the behavior is an activity (but this is not checked by Bouml), so a parameter set contains pins corresponding to parameters. To define parameter sets on action rather than activity allows you to use them as you want.

The activity action's and pin's properties are exposed below.

## Activity action menus

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

### Menu : add ...

To add a pin or a parameter set.

### Menu : edit

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

The aspect of the dialog depend on the kind of action :

#### Activity opaque action 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.

It is possible to change the kind of the action, this modify the other editor tabs.

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 variable BOUML_EDITOR. 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 opaque action dialog, tab Ocl

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

#### Activity opaque action dialog, tab C++

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

#### Activity opaque action dialog, tab Java

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

#### Activity accept event action dialog, tab Uml

#### Activity accept event action dialog, tab Ocl

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

Unmarshall is the standard UML property, time event allows to indicate is the event is a timer to choose between the two representations.

#### Activity accept event action dialog, tab C++

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

#### Activity accept event dialog, tab Java

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

#### Activity read variable value action dialog, tab Uml

#### Activity read variable value action dialog, tab Ocl

The Ocl tab allows to specify the variable (class attribute or relation) and the pre and post condition using the Ocl language, but in fact BOUML doesn't check the syntax, this is just a convention.

The button variable shows a menu proposing :

- if the current variable is set : to select this attribute or relation in the browser

- if the action is not read-only and if a class attribute or relation is selected in the browser : to set the variable to be the selected element

- if the class is not read-only : to create a new attribute and to choose it

#### Activity read variable value action dialog, tab C++

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

#### Activity read variable value action dialog, tab Java

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

#### Activity clear variable value action

#### Activity write variable value action

#### Activity add variable value action

#### Activity remove variable value action

The dialog is equals to the read variable value action case

#### Activity call behavior action dialog, tab Uml

#### Activity call behavior action dialog, tab Ocl

The Ocl tab allows to specify the behavior (a state or an activity) and the pre and post condition using the Ocl language, but in fact BOUML doesn't check the syntax, this is just a convention.

The button behavior shows a menu proposing :

- if the current behavior is set : to select this class in the browser

- if the action is not read-only and if a state or activity is selected in the browser : to set the behavior to be the selected element

- if the view containing the activity is not read-only : to create an activity or a state machine and to choose it

#### Activity call behavior action dialog, tab C++

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

#### Activity call behavior action dialog, tab Java

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

#### Activity call operation action dialog, tab Uml

#### Activity call operation action dialog, tab Ocl

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

The button operation shows a menu proposing :

- if the current operation is set : to select this class in the browser

- if the action is not read-only and if an operation selected in the browser : to set the operation to be the selected one

- if the class is not read-only : to create an operation and to choose it

#### Activity call operation action dialog, tab C++

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

#### Activity call operation action dialog, tab Java

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

#### Activity send object action dialog, tab Uml

#### Activity send object action dialog, tab Ocl

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

#### Activity send object action dialog, tab C++

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

#### Activity send object action dialog, tab Java

This tab allows to specify the pre and post condition 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 action without its children

### Menu : referenced by

To know who reference the current activity action through a flow.

### Menu : mark

See mark

### Menu : delete

The menu entry delete is only present when the activity action is not read-only.

Delete the activity action 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 a activity action. The selected tool is called and applied on the current activity action.

## Pin menus

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

### Menu : edit

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

#### Pin 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 pin is a class : to select this class in the browser

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

- if the view containing the activity is not read-only : to create a class and to choose it

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 variable BOUML_EDITOR. 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).

#### Pin 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.

#### Activity opaque action 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.

#### Activity opaque action 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 pin without its children

### Menu : referenced by

To know who reference the current pin through a flow.

### Menu : mark

See mark

### Menu : delete

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

Delete the pin 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 a pin. The selected tool is called and applied on the current pin.

## Parameter set menus

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

### Menu : edit

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

#### Parameter set 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 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 variable BOUML_EDITOR. 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).

#### Pin dialog, tab parameters

Allows to specify the pins part of the parameter set

### Menu : duplicate

The menu entry duplicate clone the pin without its children

### Menu : mark

See mark

### Menu : delete

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

Delete the pin 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 a parameter set. The selected tool is called and applied on the current set.

## Default stereotypes

The dialog allowing to set the default stereotypes :

## Activity action drawing

Depending on its stereotype a activity action is drawn in a diagram as a rectangle, a convex pentagon or a concave pentagon :

By default the name of an action is its kind, this one is written inside the action, except if the action is an opaque action and you ask to see the code.

If the action has pre and/or post condition these ones are show (except if you ask to not show the conditions) :

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

### Menu :add pin

To add a pin

### 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 action in a diagram, all the settings are set to default.

#### show opaque definition :

To write an opaque action's name or its behavior

#### show information note :

to show or not the conditions

#### drawing language :

Allows to specify the used language used to indicate opaque action behavior or the conditions

#### action color :

To specify the fill color.

### Menu select X in browser :

Appears only when the action is associated to a variable, behavior or an operation, to select this one the the browser

### Menu select associated diagram from behavior :

Appears only when the action is a call behavior and the behavior (an activity or a state) has an associated diagram, set this last to be the diagram associated to the action, this allows to goes to the diagram associated to the behavior on a double click on the action.

### Menu tools :

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

## Pin drawing

A Pin is drawn as a small square, with the stream or exception indication :

A right mouse click on a pin in a diagram calls the following menu (supposing the pin 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 pin in a diagram, all the settings are set to default.

To specify the fill color.

### Menu : select class in browser

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

### Menu tools :

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

## Parameter set drawing

A parameter set is a rectangle drawn around the corresponding pins, it is highly recommended to place the pins on the same are to have a pretty result:

A right mouse click on a pin in a diagram calls the following menu (supposing the pin 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 set in a diagram, all the settings are set to default.

To specify the fill color.

### Menu tools :

Appears only when at least one plug-out is associated to the parameter sets. To apply a plug-out on the set.

Previous : activity region

Next : activity object