skip to main content

Attributes and Default Values

It is possible to define default values assumed by native attributes when creating and modifying an object of a class.

The default value can be of two types:

  • Constant: a constant of the same data type as the attribute;
  • Expression: a value calculated from an expression.

Set a constant default value #

Right-click on a native attribute to open its Attribute menu; select the Constant option to open the Value editor and type in the desired default value.

Set a constant default value

Set a calculated default value #

Right-click on a native attribute to open its Attribute menu; select the Expression option to open the Edit default expression panel.

Set a default value with an expression

Using an expression to set a default value

The Edit default expression panel

In the Edit default expression panel you can define when to calculate the attribute value using the expression:

  • When creating a new object: the default value is calculated when creating a new object.
  • When editing an existing object: the default value is calculated every time an object is modified.

Combining the options of the other checkboxes of the editor it is possible to impose conditions on the responsiveness of the expression:

  • Initialize with computed value: sets the object creation form with the value defined by the expression already entered;
  • Reset with computed value: every time the object is modified, the value of the attribute is recalculated based on the expression defined in the editor;
  • Update automatically (unless set by User): when creating and editing, the attribute value can also be updated automatically, unless the user manually overwrites the calculated default value.

Remove a default value #

Right-click on a native attribute to open its Attribute menu and select the Remove default option.

 Remove a default value

Example #

In the example shown in the figure, we modeled an online order class (Order); the date attribute keeps track of when an order was created.

Example

We want to avoid the user having to fill in the date field every time (note that the field is required), so it makes sense to assign a default value to it. If the date was always the same we could have used a constant; however, in our case the creation date literally changes day by day, so it makes more sense to use an expression. In fact, since the date of the order is almost certainly the same as the date of the creation of the object within the class (i.e. today’s date), the date attribute is automatically computed by exploiting the system property __System.date.

Example expression

Checking the option Update automatically (unless set by user), in the section _When creating a new object the date will be calculated automatically by the application, without the need to enter it manually. The user is free to modify the date as he likes; as a precaution, we have inserted a message that warns him if he is inserting a date different from the default one.

In case of subsequent edits, we do not want the date to be recalculated and changed; therefore we left the settings in the When editing an existing object section unchanged.