Состояние

Состояние представляет собой местонахождение управления диаграммы состояний. Вы можете задать действия, которые должны быть выполнены при происхождении определенных событий и/или выполнении некоторых условий. Состояние может быть как простым, так и сложным (если оно содержит в себе другие состояния). Управление всегда принадлежит одному из простых состояний, а текущий набор действий включает в себя действия как текущего простого состояния, так и действия всех сложных состояний, содержащих это простое – то есть, может сработать переход, выходящий из любого из этих состояний.


Состояния

 Чтобы нарисовать состояние
  1. Перетащите элемент Состояние  из палитры Диаграмма состояний в то место графического редактора, где вы хотите его нарисовать.
  2. Если же вы хотите сразу создавать состояние нужного вам размера (что особенно часто требуется при рисовании сложных состояний), то используйте режим рисования. Чтобы перейти в этот режим, сделайте двойной щелчок мышью по элементу Состояние  в палитре (при этом его значок должен поменяться на этот: ). Затем щелкните левой кнопкой мыши в том месте диаграммы, где вы хотите нарисовать состояние, и передвиньте ее, не отпуская кнопки, пока контур создаваемого состояния не примет желаемый размер, после чего отпустите кнопку мыши.
Свойства

Имя – Имя состояния. Имя используется для идентификации состояния и доступа к нему из кода.

Отображать имя – Если опция выбрана, то имя состояния будет отображаться в графическом редакторе.

Исключить – Если опция выбрана, то состояние будет исключено из модели.

Цвет заливки - Задает цвет заливки состояния. Щелкните мышью внутри элемента управления и выберите нужный цвет из списка наиболее часто используемых цветов или же выберите любой другой цвет с помощью диалога Цвета. Если вы не хотите, чтобы состояние было закрашено, выберите Нет заливки.

Действие при входе - Код, выполняемый, когда управление переходит в это состояние (состояние становится активным).

Действие при выходе - Код, выполняемый, когда управление покидает это состояние (состояние перестает быть активным).

Функции

Функции

Описание

T getContainerState()

Возвращает сложное состояние, в котором находится текущее состояние. Если данное состояние находится на высшем уровне, и не входит в состав сложных состояний, то функция возвращает null.

Set<T> getFullState()

Возвращает неупорядоченный набор, содержащий это состояние и все сложные состояния (если такие имеются), содержащие это состояние.

Collection<T> getSimpleStatesDeep()

Возвращает коллекцию всех простых состояний внутри данного состояния.

Statechart<T> getStatechart( Agent agent )

Возвращает диаграмму состояний заданного агента agent,  которому принадлежит данное состояние. Возвращает null, если у агента нет диаграммы состояния с данным состоянием.

Set<T> getStatesInside()

Возвращает неупорядоченный набор всех состояний (простых и сложных), содержащихся внутри данного состояния.

boolean inState( Agent agent )

Возвращает true, если заданный агент agent находится в данном состоянии; возвращает false в противном случае.

boolean isSimpleState()

Возвращает true, если это состояние является простым; возвращает false, если оно является сложным.

String name()

Возвращает имя данного состояния.

int ordinal()

Возвращает порядковый номер этого состояния (порядок нумерации состояний детерминирован).