6. Создание и удаление
Компоненты берутся из палитры, копируются из другого места или удаляются. Глава про все три способа и про то, что при удалении происходит со связями.
Палитра
Вкладка Компоненты показывает всё, что можно поставить на карту этого вида сценария. Компоненты разложены по группам — Управление, Работа с данными, Обмен сообщениями, Телефония — в том порядке, в каком их присылает сервер.
Если тип известен по названию, искать глазами незачем: поле над списком отбирает подходящие, оставляя только те группы, в которых что-то нашлось.
Кнопка справа от поля переключает список между иконками и строками с названиями. Иконки компактнее, названия понятнее, пока типы не выучены.
Внизу палитры — счётчик: сколько в сценарии компонентов, переменных и вложений.
Четыре инструмента
Над полем поиска — четыре кнопки. Они задают, что делает мышь на карте.
- Указатель
-
обычный режим: выделение, лассо, перетаскивание. Он же возвращается сам после любого другого действия.
- Протягивание связи
-
то же, что Ctrl и протяжка, только без клавиши. Удобно, когда связей надо провести много подряд.
- Рука
-
возит поле, ничего не выделяя.
- Регион
-
рисует область. Про регионы — следующая глава.
Поставить компонент
Клик по типу в палитре «заряжает» курсор, следующий клик по карте ставит компонент в это место. После размещения курсор разряжается сам: заряженный курсор, оставшийся незамеченным, наставит лишних компонентов.
Новый компонент получает:
-
имя по умолчанию — название типа. Если такое имя уже занято, к нему добавляется номер:
Уведомление 2,Уведомление 3. Номер ищется по существующим именам, поэтому удаление не приводит к столкновению; -
номер (
#3в заголовке панели) — на единицу больше самого большого в сценарии. Освободившиеся номера не переиспользуются; -
значения свойств по умолчанию из метаданных.
|
Имя стоит менять сразу. «Воспроизведение 7» через месяц не скажет ничего ни вам, ни коллеге, а поиск по такому имени бесполезен. |
Копирование
Компоненты копируются целыми кусками — Ctrl+C, Ctrl+X, Ctrl+V или те же пункты контекстного меню.
Вставлять можно и в другой сценарий — достаточно открыть его в соседней вкладке. При вставке редактор:
-
назначает вставленным компонентам новые номера и переписывает взаимные ссылки, чтобы связи внутри куска сохранились;
-
связи наружу куска отсекает: компонента, на который они вели, в новом месте нет;
-
переносит переменные, на которые кусок ссылается, сопоставляя их по имени. Переменная с таким именем уже есть — используется она, новая не заводится;
-
переносит вложения, на которые ссылаются скопированные компоненты.
|
Правый клик по невыделенному компоненту сначала выделяет его, и только потом открывает меню. Иначе «Удалить» относилось бы не к тому, на что показывает курсор. |
Удаление
Delete удаляет всё выделенное; то же делает пункт меню Удалить. Подтверждения нет — оно и не нужно, потому что удаление отменяется Ctrl+Z вместе со всеми последствиями.
Последствия есть, и их стоит знать.
- Связи на удалённый компонент очищаются
-
Если на удаляемый компонент кто-то ссылался, его свойство перехода становится пустым. Оставить ссылку на несуществующий компонент редактор не может, а молча увести вызов «в никуда» — тем более. Свойство просто опустеет, и это будет видно в панели.
- Отмена возвращает и компонент, и ссылки
-
Ctrl+Z после удаления восстанавливает компонент на прежнем месте в сценарии и возвращает очищенные переходы.
- Переменные не удаляются
-
Удаление компонента, который пользовался переменной, саму переменную не трогает. Она останется в списке с уменьшившимся счётчиком упоминаний.
Выключить вместо удаления
Компонент можно не удалять, а выключить — тумблером в заголовке панели или пунктом меню Выключить компонент. Он останется на карте и в сценарии, но вызов через него не пойдёт.
Так удобно временно исключать участок: разбирать и собирать обратно не приходится, а сравнение версий покажет ровно одну изменившуюся строку.