Se representa una máquina de estados (objetos de clases derivadas de Machine) mediante un grafo de globos conectados. Cada globo representa un estado. Las conexiones representan las transiciones posibles entre dos estados. La punta de flecha indica el estado de destino de la transición.
Algunos globos tienen el borde de línea de trazos. Esto significa que son estados instantáneos, también llamados acciones. La máquina no permanece en ese estado, sólamente efectúa las acciones para las que esté programado y retorna al estado anterior. Sus conexiones se dibujan mediante línea de trazos y sin punta de flecha.
Los estados son objetos, derivados de la clase State, hijos de la máquina de estados. El primer hijo es el estado inicial. Las máquinas de estados son, a su vez, estados, por lo que pueden ser insertadas en otra máquina de estados creando una submáquina.
Las transiciones son objetos que adminten, como hijos, otros objetos derivados de la clase Condition. El orden de las condiciones es significativo. La primera condición que se cumpla origina la transición. Se ésta apunta a una acción (representada con línea de trazos) se ejecuta la acción y se continúan evaluando las siguientes transiciones, si la transición es hacia un estado genuino, la máquina cambia de estado y ya no se comprueban las siguientes transiciones. El orden de evaluación de las transiciones viene indicado en el gráfico mediante un número dentro de un pequeño circulo junto al origen de la transición.
Al seleccionar una máquina de estados en la ventana del explorador, se carga dicha máquina en el editor de máquinas de estados. Se puede seleccionar un estado o una transición, clikeando con el ratón sobre su representación o en el explorador.
Pulsando el botón derecho del ratón mientras el cursor está en la ventana del editor de máquina de estados aparece el menú contextual con las siguientes posibles opciones.
Convert Selection to Embedded Machine :
Disconnect Current Node :
Estas cuatro últimas operaciones también pueden hacerse desde el explorador de objetos.
Para crear una transición se posiciona el cursor sobre el borde del globo del estado origen. Cuando aparezca un pequeño círculo alrededor de un punto del borde que no contenga ya una transición se pulsa el botón izquierdo y se arrastra el cursor hasta el borde del globo del estado destino. Cuando aparezca otro pequeño círculo se suelta el botón. La transición queda establecida.
Para ajustar estéticamente el gráfico se pueden mover los globos o los puntos finales de las conexiones arrastrándolos con el ratón.
Si se hace un doble click sobre un globo que represente una máquina anidada o una referencia a otra máquina, se carga en el editor dicha máquina.
Para añadir condiciones a las transiciones se usa el Object Browser como con cualquier otro tipo de objetos.
Los estados y las condiciones se parametrizarán en el Object Inspector.