6. Создание и удаление

Компоненты берутся из палитры, копируются из другого места или удаляются. Глава про все три способа и про то, что при удалении происходит со связями.

Палитра

Вкладка Компоненты показывает всё, что можно поставить на карту этого вида сценария. Компоненты разложены по группам — Управление, Работа с данными, Обмен сообщениями, Телефония — в том порядке, в каком их присылает сервер.

Если тип известен по названию, искать глазами незачем: поле над списком отбирает подходящие, оставляя только те группы, в которых что-то нашлось.

Палитра с фильтром
Figure 1. Палитра, отфильтрованная по «пере»

Кнопка справа от поля переключает список между иконками и строками с названиями. Иконки компактнее, названия понятнее, пока типы не выучены.

Внизу палитры — счётчик: сколько в сценарии компонентов, переменных и вложений.

Четыре инструмента

Над полем поиска — четыре кнопки. Они задают, что делает мышь на карте.

Указатель
Figure 2. Инструменты палитры
Указатель

обычный режим: выделение, лассо, перетаскивание. Он же возвращается сам после любого другого действия.

Протягивание связи

то же, что Ctrl и протяжка, только без клавиши. Удобно, когда связей надо провести много подряд.

Рука

возит поле, ничего не выделяя.

Регион

рисует область. Про регионы — следующая глава.

Поставить компонент

Клик по типу в палитре «заряжает» курсор, следующий клик по карте ставит компонент в это место. После размещения курсор разряжается сам: заряженный курсор, оставшийся незамеченным, наставит лишних компонентов.

Новый компонент получает:

  • имя по умолчанию — название типа. Если такое имя уже занято, к нему добавляется номер: Уведомление 2, Уведомление 3. Номер ищется по существующим именам, поэтому удаление не приводит к столкновению;

  • номер (#3 в заголовке панели) — на единицу больше самого большого в сценарии. Освободившиеся номера не переиспользуются;

  • значения свойств по умолчанию из метаданных.

Имя стоит менять сразу. «Воспроизведение 7» через месяц не скажет ничего ни вам, ни коллеге, а поиск по такому имени бесполезен.

Копирование

Компоненты копируются целыми кусками — Ctrl+C, Ctrl+X, Ctrl+V или те же пункты контекстного меню.

Контекстное меню на карте
Figure 3. Контекстное меню компонента

Вставлять можно и в другой сценарий — достаточно открыть его в соседней вкладке. При вставке редактор:

  • назначает вставленным компонентам новые номера и переписывает взаимные ссылки, чтобы связи внутри куска сохранились;

  • связи наружу куска отсекает: компонента, на который они вели, в новом месте нет;

  • переносит переменные, на которые кусок ссылается, сопоставляя их по имени. Переменная с таким именем уже есть — используется она, новая не заводится;

  • переносит вложения, на которые ссылаются скопированные компоненты.

Правый клик по невыделенному компоненту сначала выделяет его, и только потом открывает меню. Иначе «Удалить» относилось бы не к тому, на что показывает курсор.

Удаление

Delete удаляет всё выделенное; то же делает пункт меню Удалить. Подтверждения нет — оно и не нужно, потому что удаление отменяется Ctrl+Z вместе со всеми последствиями.

Последствия есть, и их стоит знать.

Связи на удалённый компонент очищаются

Если на удаляемый компонент кто-то ссылался, его свойство перехода становится пустым. Оставить ссылку на несуществующий компонент редактор не может, а молча увести вызов «в никуда» — тем более. Свойство просто опустеет, и это будет видно в панели.

Отмена возвращает и компонент, и ссылки

Ctrl+Z после удаления восстанавливает компонент на прежнем месте в сценарии и возвращает очищенные переходы.

Переменные не удаляются

Удаление компонента, который пользовался переменной, саму переменную не трогает. Она останется в списке с уменьшившимся счётчиком упоминаний.

Выключить вместо удаления

Компонент можно не удалять, а выключить — тумблером в заголовке панели или пунктом меню Выключить компонент. Он останется на карте и в сценарии, но вызов через него не пойдёт.

Так удобно временно исключать участок: разбирать и собирать обратно не приходится, а сравнение версий покажет ровно одну изменившуюся строку.

◀ 5. Выделение и перемещение

7. Связи ▶