# VisButton Описание класса

VisButton предназначен для управления логическим элементом "кнопка" (EqButton).

Основное назначение "кнопок" производить изменения в работе оборудования, например:

- запускать / останавливать одну или несколько единиц оборудования
- запускать / останаливать маршрут
- изменять режим работы маршрута

Если перед выполнением действия необходимо проверить права оператора, и/или задать допольнительный вопрос, и/или сохранить соответствующее сообщение, то необходимо воспользоватся контроллером действий.
Родительский класс: VisBase
Объект данного класса должен быть частью (дочерним объектом) одного из потомков VisContainer.

# Свойства объекта

- pos
- size
- textSelected
- textUnselected
- equipment
- controller
- ctrlInfo

# Описание свойств

## pos

Положение кнопки.

## size

Размер кнопки.

## textSelected

Текст в нажатом состоянии.

## textUnselected

Текст в отжатом состоянии.

## equipment

Ссылка на объект оборудования.

## controller

Контроллер действий пользователя.

## ctrlInfo

Дополнительная информация для контроллера.

# Использование контроллера

Если перед выполнением действия, которое соовершаниется при нажатии на кнопку, нам необходимо проверить права пользователя (например, право на запуск маршрутов), или задать вопрос, или сохранить соответствующее сообщение, то необходимо использовать один из контроллеров действий пользователя.
О контроллерах см. "Контроллер действий пользователя".
Кнопка использует контроллер в режиме "проверить права - задать вопрос - сохранить сообщение - действие".
Метка предоставляет контроллеру следующие данные:

1. Тип сообщения.
2. Объект сообщения.
3. Текст сообщения.
4. Вопрос для подтверждения вызова панели редактирования параметров.

Есть два варианта формирования этих данных - простой и расширенный.
Простой вариант.
Контроллеру передаются только объект сообщения (указывается в свойстве ctrlInfo без использования символа ";") и текст сообщения (из свойства textUnselected).
Тип сообщения и вопрос остаются не определёнными (на "усмотрение" контроллера).
Расширенный вариант.
Если в свойстве ctrlInfo используется символ ";" хотя бы один раз, то используется данный вариант.
Данные задаются в следующем порядке: "тип;объект;текст;вопрос".
Любое из полей может быть не определено, соответственно будут не определены соответствующие данные.
Например, если мы хотим передать только вопрос, то значение свойства будет ";;;вопрос".
Внимание! Пробел является допустимым значением.
.