Class isp api::Wizard

Материал из ISPWiki
Перейти к: навигация, поиск

Класс isp_api::Wizard

Класс для создания мастера

#include <wizard.h> 

Описание:

class isp_api::Wizard

Определяет один шаг этого мастера. При создании любого шага, функция, реализующая соответствующий мастер, создается автоматически

Родители:


Потомки:


Перечисления (кратко)

Перечисление Priority { wpBefore , wpAfter , }

Порядок шагов

Перечисление State { wsNormal , wsNotRelevant , wsUnavailable , }

Состояния шага мастера

Открытые члены (кратко)

Wizard ( const string &wiz_name , const string &name , AccessMask accessMask , Priority wp = wpAfter , const string &ref_name = "" , const Action * parent = nullptr )

Конструктор

Защищённые члены (кратко)

virtual string NextStep ( Session & )

Какой шаг выполнить следующим


virtual bool Relevant ( Session & )

Надо ли выполнять это шаг (deprecated)


virtual State WizState ( Session &ses )

Состояние шага


virtual void WizGet ( Session & )

Вызывается перед отображением данного шага мастера


virtual void WizSet ( Session & )

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


virtual void WizDone ( Session & )

Вызывается, когда мастер завершает работу


virtual void Get ( Session &ses , const string &elid )

Вызывается перед показом формы


virtual void Set ( Session &ses , const string &elid )

Вызывается после закрытия формы кнопкой ОК


virtual void Execute ( Session &ses )

Метод, вызываемый при выполнении действия

Перечисления (подробно)

Priority

Порядок шагов

See also: Wizard

  • wpBefore

    Разместить этот шаг перед указанным или сделать его первым шагом

  • wpAfter

    Разместить этот шаг после указанного или сделать его последним шагом


State

Состояния шага мастера

See also: WizState

  • wsNormal

    Шаг мастера доступен

  • wsNotRelevant

    Шаг мастера скрыт

  • wsUnavailable

    Шаг мастера недоступен (будет отображен в списке, но переход на него будет невозможен)

Конструкторы

Wizard ( const string &wiz_name , const string &name , AccessMask accessMask , Priority wp = wpAfter , const string &ref_name = "" , const Action * parent = nullptr )

Конструктор

Аргументы:
wiz_name Имя действия - общее для всех шагов
name Имя шага мастера
accessMask маска доступа
See also: AccessMask
Аргументы:
wp Приоритет шага. Перед каким или после какого нужно идти
ref_name Имя шага относительно которого разместить данный шаг. Через символ '#' вы можете указать вес шага. Если несколько шагов должны быть размещены в одной позиции - они будут отсортированы в порядке убывания веса. Если вес не задан, его значение принимается равным 100.
parent Указатель на родительское действие

// Следующие два шага some_wizard.second_step и some_wizard.other_second_step мастера some_wizard 
// должны быть расположены после шага some_wizard.first_step. У шага some_wizard.second_step задан вес 
// равный 200, это больше чем 100 (значение веса по умолчанию) поэтому он будет расположен раньше шага 
// some_wizard.other_second_step. Если бы вес небыл задан, порядок этих двух шагов относительно друг 
// друга был бы неопределен. 
Wizard("some_wizard", "some_wizard.second_step", AccessAdmin, wpAfter, "some_wizard.first_step#200"); 
Wizard("some_wizard", "some_wizard.other_second_step", AccessAdmin, wpAfter, "some_wizard.first_step"); 

Методы

virtual string NextStep ( Session & )

Данный метод является защищённым

Какой шаг выполнить следующим

Если этот шаг не доступен, то будет выбран следующий за ним первый доступный шаг

virtual bool Relevant ( Session & )

Данный метод является защищённым

Надо ли выполнять это шаг (deprecated)

See also: WizState

virtual State WizState ( Session &ses )

Данный метод является защищённым

Состояние шага

Функция должна вернуть текущее состояние шага на основании данных сессии. COREmanager позволяет скрывать или делать недоступными часть шагов мастера. Это может быть использовано, например, когда мастер создает набор объектов, тип которых выбирается в первом шаге, а последующие шаги служат для заполнения свойств присущих только выбранному типу

virtual void WizGet ( Session & )

Данная функция/метод является inline функцией

Данный метод является защищённым

Вызывается перед отображением данного шага мастера

Аналогичен методу Get класса FormAction. Должен быть использован для заполнения списков значений (slist) и внечения изменений в метаданные формы, если таковые требуются

virtual void WizSet ( Session & )

Данная функция/метод является inline функцией

Данный метод является защищённым

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

Данный метод толжет быть использован для проверки введенных значений

virtual void WizDone ( Session & )

Данная функция/метод является inline функцией

Данный метод является защищённым

Вызывается, когда мастер завершает работу

Это происходит, если на последнем шаге нажата кнопка Ok. Метод WizDone вызывается для всех шагом мастера в пределах одной транзакции. Все остальные методы призваны обеспечить сбор и проверку введенных значений. В этом методе должна быть реализована вся логика по изменению состояния сервера (создание/удаление/редактирование объектов).

virtual void Get ( Session &ses , const string &elid )

Данный метод является защищённым

Вызывается перед показом формы

Вызывается перед отправкой данных формы на сторону клиента (и, соответственно, перед показом формы на экране) в данном методе можно реализовать заполнение полей формы некоторыми данными

Аргументы:
[inout] - ses Текущая сессия
See also: isp_api::Session
Аргументы:
[in] - elid Идентификатор элемента, для которого вызывается форма

virtual void Set ( Session &ses , const string &elid )

Данный метод является защищённым

Вызывается после закрытия формы кнопкой ОК

Вызывается после нажатия на ОК, в данный метод поступают значения всех полей; в данном методе можно реализовать сохранение данных.

Аргументы:
[inout] - ses Текущая сессия
See also: isp_api::Session
Аргументы:
[in] - elid Идентификатор элемента, для которого вызывается форма. Если пустая строка, то - новый элемент.

virtual void Execute ( Session &ses )

Данный метод является защищённым

Метод, вызываемый при выполнении действия

Метод должен быть реализован в классе-потомке

Аргументы:
[in/out] ses Текущая сессия
See also: isp_api::Session