You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Выделено из #657 по просьбе @theshadowco: в #674 сделано всё, кроме контекстного меню.
<ContextMenu> — единственный из перечисленных в #657 соседей <ChildItems>, который остаётся не прочитанным. Тег стоит почти у каждого элемента формы: конфигуратор добавляет его автоматически полю ввода, таблице, группе. На форме документа из пяти полей и одной таблицы в выгрузке уже шесть таких тегов:
Отдельно от #657 есть и вторая половина задачи: в FormElementTypeнет константы под этот вид. Для дополнений они были заведены заранее (ADDITION, SEARCH_STRING_ADDITION, VIEW_STATUS_ADDITION, SEARCH_CONTROL_ADDITION), а для контекстного меню — нет; ближайший по смыслу POPUP («Подменю») это другой вид, подменю внутри командной панели.
На рантайме контекстное меню — полноценный элемент коллекции Форма.Элементы, доступный по имени: Элементы.НомерКонтекстноеМеню. Пока элемент не читается, потребители модели его не видят, и обращение к нему в коде выглядит как обращение к несуществующему элементу формы.
Потребитель — BSL Language Server: элементы формы из mdclasses становятся членами типа формы (Элементы.<Имя>), и от полноты этого списка зависит и автодополнение, и диагностика обращений к несуществующим элементам.
Описание функциональности
Выделено из #657 по просьбе @theshadowco: в #674 сделано всё, кроме контекстного меню.
<ContextMenu>— единственный из перечисленных в #657 соседей<ChildItems>, который остаётся не прочитанным. Тег стоит почти у каждого элемента формы: конфигуратор добавляет его автоматически полю ввода, таблице, группе. На форме документа из пяти полей и одной таблицы в выгрузке уже шесть таких тегов:Отдельно от #657 есть и вторая половина задачи: в
FormElementTypeнет константы под этот вид. Для дополнений они были заведены заранее (ADDITION,SEARCH_STRING_ADDITION,VIEW_STATUS_ADDITION,SEARCH_CONTROL_ADDITION), а для контекстного меню — нет; ближайший по смыслуPOPUP(«Подменю») это другой вид, подменю внутри командной панели.Что хотелось бы получить
<ContextMenu>попадал вgetItems()/getPlainItems()наравне с содержимым<ChildItems>— вместе со своими<ChildItems>, если они есть (для<AutoCommandBar>потеря содержимого вместе с веткой была показана экспериментом в [NEW] Контекстные меню, подсказки, командные панели и дополнения не попадают в элементы формы #657).FormElementTypeпод этот вид.Зачем
На рантайме контекстное меню — полноценный элемент коллекции
Форма.Элементы, доступный по имени:Элементы.НомерКонтекстноеМеню. Пока элемент не читается, потребители модели его не видят, и обращение к нему в коде выглядит как обращение к несуществующему элементу формы.Потребитель — BSL Language Server: элементы формы из mdclasses становятся членами типа формы (
Элементы.<Имя>), и от полноты этого списка зависит и автодополнение, и диагностика обращений к несуществующим элементам.