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

VisPQMCtrl - "универсальный" контроллер.
Внимение! Общие понятия и правила использования контроллера действий пользователя.
Внимение! Для корректного сохранения сообщений для проекта VsqProject должен быть указан источник сообщений (messageStore).
Пример.

Режимы работы.
Контроллер поддерживает оба режима работы.

Дополнительные данные.

1. Тип сообщения.
   Если не определён элементом управления, то используется значение заданное в свойстве "defTextMessage".
2. Объект сообщения.
   Если не определён элементом управления, то используется значение заданное в свойстве "messageObject".
3. Текст сообщения.
4. Вопрос. Если не определён элементом управления, то вопрос не задаётся.

Проверка прав выполнения действия и контрольный вопрос.
Контроллер проверяет права указанные в свойстве "privilege".
Если проверка прав прошла успешно, задаёт контрольный вопрос. В случае положительного ответа пользователя - разрешает выполнение действия.
В завершении формируется (и сохраняется) соответствующее сообщение.
Родительский класс: UserActionController
Объект данного класса должен быть частью (дочерним объектом) одного из потомков VisGroupCtrl.

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

- messageType
- messageObject
- textColor
- backgroundColor
- privilege

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

## messageType

Тип сообщения.
Используется для формирования сообщения. Элемент управления может переопределить тип сообщения, передав соответствующие дополнительные данные.

## messageObject

Объект сообщения.
Используется для формирования сообщения. Элемент управления может переопределить объект сообщения, передав соответствующие дополнительные данные.
Внимание! При формировании сообщения обязательно должен быть объект сообщения.

## textColor

Цвет текста сообщения.

## backgroundColor

Цвет фона сообщения.

## privilege

Тип проверяемого права.
Значение "NO_CHECK" позволяетс не проводить проверку.

# Пример

У нас есть оборудование "18 Фильтр циклон", который необходимо запускать индивидуально. Мы сделали кнопку управления запуском данной машины.

Необходимо:

1. Проверить права пользователя на запуск машины.
2. Получить подтверждение пользователя на запуск машины - задать соответствующий вопрос и получить положительный ответ.
3. Сохранить в журнале сообщений соответствующую запись.

Для реализации задачи выполним следующую последовательность действий.
В визуальном проекте (VisualProject), в группу контроллеров (VisGroupCtrl) добавим контроллер данного класса (VisPQMCtrl).
Определим значения его свойств:

- objectName = ctrMOptions
  Название компонента - может быть любым.
- messageType = Управление маршрутом
  Тип сообщения. Текст указанный в данном свойстве будет отображаться в соответствующем поле журнала сообщений.
- messageObject = ?
  Объект сообщения. Оставим неопределённым. Таким образом данный контроллер можно будет использовать для различных кнопок управления запуска отдельных машин. Реальное значение данного свойства будет определенно параметрами передаваемыми кнопкой управления.
- textColor = #FFFFFF
  Отображать текст сообщения белыми буквами.
- backgroundColor = #008000
  Отображать текст сообщения на тёмно-зелёном фоне.
- privilege = SET_PARAMETERS
  В данном случае требуется чтобы оператор мог изменять параметры работы контроллера управления. Можно выбрать любой тип ограничения прав.

Настроим свойства кнопки (VisButton) отвечающие за работу контроллера.
Определим значения его свойств:

- controller = ctrMOptions
  Выбираем созданный нами компонент.
- ctrlInfo = ;18 Фильтр циклон маршрут;Старт;Запустить маршрут?
  В данном свойстве определены:
  1. Тип сообщения - не определён.
     Тип сообщения будет определён контроллером сообщения.
  2. Объект сообщения - 18 Фильтр циклон маршрут
     В поле "Объект" журнала сообщений будет отображаться "18 Фильтр циклон маршрут".
  3. Текст сообщения - Старт
     В поле "Текст" журнала сообщений будет отображаться "Старт".
  4. Вопрос - Запустить маршрут?
     Перед выполнением действия будет выведено диалоговое окно с текстом "Запустить маршрут?".

Внимение! Для корректного сохранения сообщений для проекта VsqProject должен быть указан источник сообщений (messageStore).