Dialog

Dialog

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Define graphical layout of the parameter menu.

Syntax

annotation(Dialog(enable = true,
                     tab = "General",
                   group = "Parameters",
      showStartAttribute = false,
           colorSelector = false,
              groupImage = "modelica://MyPackage/Resources/Images/image.png",
         connectorSizing = false));

Description

The annotations tab and group define the placement of the component or of variables in a dialog with optional tab and group specification. If enable = false, the input field may be disabled [and no input can be given]. If showStartAttribute = true the dialog should allow the user to set the start-value and the fixed attribute for the variable instead of the value-attribute [this is primarily intended for non-parameter values and avoids introducing a separate parameter for the start-value of the variable].

If colorSelector=true, it indicates that an rgb-value selector can be presented for a vector of three elements and generate values 0..255 (the annotation should be usable both for vectors of Integers and Reals).

The annotation groupImage references an image using an Modelica URI, and the image is intended to be shown together with the parameter-group (only one image per group is supported). Disabling the input field will not disable the image.

The value of the connectorSizing annotation must be a literal false or true value [since if the value is an expression, the connectorSizing functionality is conditional and this will then lead easily to wrong models]. If connectorSizing = false, this annotation has no effect. If connectorSizing = true, the corresponding variable must be declared with the parameter prefix, must be a subtype of a scalar Integer and must have a literal default value of zero [since this annotation is designed for a parameter that is used as vector dimension and the dimension of the vector should be zero when the component is dragged or redeclared; furthermore, when a tool does not support the connectorSizing annotation, dragging will still result in a correct model]. If connectorSizing = true, a tool may set the parameter value in a modifier automatically, if used as dimension size of a vector of connectors. [The connectorSizing annotation is used in cases where connections to a vector of connectors shall be made and a new connection requires to resize the vector and to connect to the new index (unary connections). The annotation allows a tool to perform these two actions in many cases automatically. This is, e.g., very useful for state machines and for certain components of fluid libraries.]

Annotation "Dialog" is defined as:

record Dialog
  parameter String  tab                = "General";
  parameter String  group              = "Parameters";
  parameter String  groupImage         = "";
  parameter Boolean enable             = true;
  parameter Boolean showStartAttribute = false;
  parameter Boolean connectorSizing    = false;
  parameter Boolean colorSelector      = false;
  parameter Selector loadSelector;
  parameter Selector saveSelector;
end Dialog;

record Selector
  parameter String filter="";
  parameter String caption="";
end Selector;

Examples

A parameter dialog is a sequence of tabs with a sequence of groups inside them.

A Selector displays a file dialog to select a file: Parameter filter only shows files that fulfill the given pattern defined by "text1 (*.ext1);;text2 (*.ext2);" to show only files with file extension *.ext1 or *.ext2 and displaying a description text "text1" and "text2", respectively. Parameter caption is the text displayed in the dialog menu. Parameter loadSelector is used to select an existing file for reading, whereas parameter saveSelector is used to define a file for writing.

model DialogDemo
  parameter Boolean b = true "Boolean parameter";
  parameter Modelica.Units.SI.Length length "Real parameter with unit";
  parameter Integer nInports=0 annotation(Dialog(connectorSizing=true));
  parameter Real r1 "Real parameter in Group 1" annotation(Dialog(group="Group 1"));
  parameter Real r2 "Disabled Real parameter in group 1"
                     annotation(Dialog(group="Group 1", enable = not b));
  parameter Real r3 "Real parameter in Tab 1" annotation(Dialog(tab="Tab 1"));
  parameter Real r4 "Real parameter in Tab 1 and Group 2"
                     annotation(Dialog(tab="Tab 1", group="Group 2"));
  StepIn stepIn[nInports];
  ...
end DialogDemo;