The exchanges between BOUML and each plug-out are supported by a TCP/IP socket. When you ask BOUML to start a plug-out, it search for a free port number starting at 1024 on localhost (127.0.0.1), this port is given in argument to the called plug-out. In case you have a firewall it may be necessary to configure it to allow BOUML and the plug-outs to use a socket.
To reduce the number of exchanges with BOUML and run faster, a plug-out does not ask for BOUML each time you want to get a value. The system classes read and memorize all the data of a given item the first time you access to one of them (with the restrictions allowed by WITHCPP, WITHJAVA and WITHIDL). This is transparent for you until two plug-outs access to the same data, when one plug-out modify a value already read by the other, the second plug-out does not see the new value until it unload (an operation defined on UmlBaseItem) the object, then ask for the value.
The class doesn't have an associated artifact, or the class/artifact is not defined for the language. Note that a default definition (set through the generation settings) may be done at the creation for each language if you ask for it through the Languages menu
you do not have the write permission for the associated files or the item is a system item supporting the plug-out API. It is also not possible to edit/delete a class when an other item is already edited.
The environment variable BOUML_LIMIT_DESKTOP is for you !
This optional variable allows to specify a sub-part of all the desktop, its value must be x0,y0,x1,y1 without any spaces, where x0,y0 specify the top-left corner and x1,y1 the bottom-right corner. These limits are taken into account only for the initial size and position of the BOUML's windows and when a dialog is opened, after that you are able to go out of these limits up to the true desktop limits.
During the edition the characters encoded with a 16 bits unicode character set, but out of the editions the characters are saved on only 8 bits. When you use non ISO_8859-1 (latin1) characters you must specify how to do the conversion through the environment variable BOUML_CHARSET.
When this variable is undefined or has an empty value, the character set is ISO_8859-1. If its value is not a known character set's name, a dialog appears when you start Bouml giving the available names. So, to know the possible character sets, set BOUML_CHARSET to wrong for instance and call Bouml.
Examples (the list depends on the release of Qt) :
ISO_8859-1 (latin1) for English, French, Italien, German ...
ISO_8859-7 for Greek
KOI8-R or KOI8-RU or CP_1251 to allow Cyrillic
JIS7 for Japan
The specified encoding is used for :
the description of every elements,
the user properties and associate values of every elements,
the stereotype of every elements,
the definition of the artifacts, classes, operations, attributes, relations and extra members,
the state action behavior
the state entry / exit / do behavior
the transition trigger / guard / do behavior
the attribute's value in an object diagram
the notes and text in the diagrams
It is not used else where, for instance you can't use non ISO_8859-1 characters to name the elements or in a message of a sequence or collaboration diagram.
The specified encoding is followed in the project's files and for the exchanges with the plug-out, this means for instance that Cyrillic characters may be used in the comments and are generated unchanged by the code generators.
Previous : Project files
Next : GNU public license