Класс WorkspaceSvg
Класс для рабочего пространства. Это экранная область с опциональными корзиной, полосами прокрутки, всплывающими подсказками и функцией перетаскивания.
Подпись:
export declare class WorkspaceSvg extends Workspace implements IContextMenu, IFocusableNode, IFocusableTree
Расширяет: рабочее пространство
Реализует: IContextMenu , IFocusableNode , IFocusableTree
Конструкторы
Конструктор | Модификаторы | Описание |
---|---|---|
(конструктор)(опции) | Создает новый экземпляр класса WorkspaceSvg |
Характеристики
Свойство | Модификаторы | Тип | Описание |
---|---|---|---|
configureContextMenu | ((menuOptions: ContextMenuOption[], e: Event) => void) | null | Разработчики могут определить эту функцию для добавления пользовательских пунктов меню в контекстное меню рабочей области или для редактирования созданного в рабочей области набора пунктов меню. | |
keyboardAccessibilityMode | булев | True, если режим специальных возможностей клавиатуры включен, в противном случае — false. | |
keyboardMoveInProgress | булев | Истина, если выполняется инициированное с клавиатуры перемещение («перетаскивание»). | |
визуализированный | булев | Состояние рендеринга рабочего пространства SVG. Возвращает false для рабочих пространств без заголовка и true для экземпляров WorkspaceSvg . | |
шкала | число | Текущая шкала. | |
полоса прокрутки | ScrollbarPair | null | Полосы прокрутки этого рабочего пространства, если они есть. | |
scrollX | число | Текущее смещение горизонтальной прокрутки в пикселях относительно начала координат рабочего пространства. Полезно представить себе вид и холст, движущийся под ним. При перемещении холста вправо это значение становится более положительным, и вид теперь «видит» левую сторону холста. При перемещении холста влево это значение становится более отрицательным, и вид теперь «видит» правую сторону холста. Сложность этого значения заключается в том, что оно не включает и не должно включать смещение absoluteLeft. Это связано с тем, что оно используется для расчета значения viewLeft. Значение viewLeft задаётся относительно начала координат рабочей области (в пикселях). Начало координат рабочей области — это её верхний левый угол (по крайней мере, если эта функция включена). Оно смещено относительно верхнего левого угла blocklyDiv, чтобы не находиться под панелью инструментов. Когда рабочее пространство включено, viewLeft и начало координат рабочего пространства находятся в одной точке X. По мере того, как холст сдвигается вправо под представлением, это значение (scrollX) становится более положительным, а viewLeft становится более отрицательным относительно начала координат рабочего пространства (представьте, что начало координат рабочего пространства представляет собой точку на холсте, сдвигаемую вправо по мере перемещения холста). Таким образом, если бы scrollX включал absoluteLeft, это бы как бы «отменило» смещение начала координат рабочей области. Это означает, что viewLeft представлял бы левый край blocklyDiv, а не левый край рабочей области. | |
scrollY | число | Текущее смещение вертикальной прокрутки в пикселях относительно начала координат рабочего пространства. Полезно представить себе вид и холст, движущийся под ним. По мере того, как холст движется вниз, это значение становится более положительным, и вид теперь «видит» верхнюю часть холста. По мере того, как холст движется вверх, это значение становится более отрицательным, и вид теперь «видит» нижнюю часть холста. Сложность этого значения заключается в том, что оно не включает и не должно включать смещение absoluteTop. Это связано с тем, что оно используется для расчета значения viewTop. Точка viewTop задаётся относительно начала координат рабочей области (в пикселях). Начало координат рабочей области — это её верхний левый угол (по крайней мере, если эта функция включена). Она смещена относительно верхнего левого угла blocklyDiv, чтобы не находиться под панелью инструментов. Когда рабочее пространство включено, viewTop и начало координат рабочего пространства находятся в одной точке по оси Y. По мере того, как холст сдвигается вниз, это значение (scrollY) становится более положительным, а viewTop — более отрицательным относительно начала координат рабочего пространства (изображение в начале координат рабочего пространства в виде точки на холсте, смещающейся вниз по мере его перемещения). Таким образом, если бы scrollY включал absoluteTop, это бы как бы «отменило» смещение начала координат рабочей области. Это означает, что viewTop представлял бы верхний край blocklyDiv, а не верхний край рабочей области. | |
startScrollX | число | Значение горизонтальной прокрутки при запуске прокрутки в пикселях. | |
startScrollY | число | Значение вертикальной прокрутки при запуске прокрутки в пикселях. | |
svgBackground_ | SVGElement | ||
svgBlockCanvas_ | SVGElement | ||
svgBubbleCanvas_ | SVGElement | ||
svgGroup_ | SVGElement | ||
themeManager_ | protected | Менеджер тем | |
мусорное ведро | Мусорная корзина | null | Корзина рабочего места (если есть). | |
zoomControls_ | ZoomControls | null |
Методы
Метод | Модификаторы | Описание |
---|---|---|
addClass(имя_класса) | Добавляет класс CSS в рабочее пространство. | |
addTopBlock(блок) | Добавляет блок в список лучших блоков. | |
addTopBoundedElement(элемент) | Добавляет ограниченный элемент в список верхних ограниченных элементов. | |
addTopComment(комментарий) | Добавляет комментарий в список лучших комментариев. | |
canBeFocused() | См. IFocusableNode.canBeFocused. | |
centerOnBlock(id, blockOnly) | Прокрутите рабочую область, чтобы отцентрировать её по заданному блоку. Если под блоком расположены другие блоки, рабочая область будет отцентрирована по стеку, если только blockOnly не равно true. | |
очистка() | Очистите рабочее пространство, расположив все блоки в столбце так, чтобы они не перекрывали друг друга. | |
прозрачный() | Удалите все блоки в рабочем пространстве, оптимизировав их для предотвращения изменения размеров. | |
copyOptionsForFlyout() | Создает новый набор параметров из параметров этой рабочей области, содержащий только те значения, которые имеют отношение к всплывающему меню. | |
createDom(opt_backgroundClass, injectionDiv) | Создайте элементы DOM рабочего пространства. | |
распорядиться() | Удалите это рабочее пространство. Отсоедините его от всех элементов DOM, чтобы предотвратить утечки памяти. | |
получитьAbsoluteScale() | Возвращает абсолютный масштаб рабочего пространства. Масштабирование рабочей области мультипликативно: если рабочая область B (например, редактор-мутатор) с масштабом Y вложена в корневую рабочую область A с масштабом X, эффективный масштаб рабочей области B равен X * Y, поскольку, будучи дочерней по отношению к A, она уже преобразована с использованием коэффициента масштабирования A, а затем преобразуется сама с использованием собственного коэффициента масштабирования. Обычно это работает, но для глобальных элементов (например, редакторов полей), которые визуально связаны с конкретной рабочей областью, но находятся на верхнем уровне DOM, а не являются дочерними элементами связанной с ними рабочей области, для корректной визуализации может потребоваться абсолютный/эффективный масштаб. | |
получитьВсеБлоки(упорядочено) | Найти все блоки в рабочей области. Блоки можно сортировать по положению: сверху вниз (с небольшим сдвигом влево или вправо). | |
получитьАудиоМенеджер() | Получите аудиоменеджер для этого рабочего пространства. | |
получитьBlockById(id) | Найдите блок на этом рабочем пространстве с указанным идентификатором. | |
getBlocksBoundingBox() | Рассчитайте ограничивающую рамку для блоков в рабочей области. Система координат: координаты рабочей области. | |
получитьBubbleCanvas() | Получите элемент SVG, который формирует поверхность пузыря. | |
getButtonCallback(ключ) | Получите функцию обратного вызова, связанную с заданной клавишей, для щелчков по кнопкам и меткам во всплывающем окне. | |
получитьCanvas() | Получите элемент SVG, который формирует поверхность рисования. | |
получитьCommentById(id) | Возвращает комментарий к рабочей области с заданным идентификатором, если таковой имеется. | |
получитьComponentManager() | Получает менеджер компонентов для этого рабочего пространства. | |
получитьКурсор() | Курсор для этого рабочего пространства. | |
получитьDragTarget(e) | Возвращает цель перетаскивания, на которую направлено событие указателя. | |
getFlyout(opt_own) | Геттер для всплывающего элемента, связанного с этой рабочей областью. В зависимости от конфигурации панели инструментов, этот всплывающий элемент может принадлежать как панели инструментов, так и рабочей области. Значение будет равно null, если всплывающего элемента нет. | |
получитьFocusableElement() | См. IFocusableNode.getFocusableElement. | |
getFocusableTree() | См. IFocusableNode.getFocusableTree. | |
получитьGrid() | Получить объект сетки для этого рабочего пространства или null, если его нет. | |
получитьInverseScreenCTM() | Геттер для инвертированного экрана CTM. | |
получитьМаркерМенеджер() | Получите менеджер маркеров для этого рабочего пространства. | |
getMetricsManager() | Получает менеджер метрик для этой рабочей области. | |
получитьНавигатор() | Возвращает объект, отвечающий за координацию перемещения фокуса между элементами в этом рабочем пространстве в ответ на команды навигации с клавиатуры. | |
getNestedTrees() | См. IFocusableTree.getNestedTrees. | |
получитьParentSvg() | Получите SVG-элемент, содержащий это рабочее пространство. Примечание: мы предполагаем, что этот метод вызывается только после добавления рабочего пространства в DOM. | |
получитьRenderer() | Подключите рендерер блоков к этой рабочей области. | |
getRestoredFocusableNode(previousNode) | См. IFocusableTree.getRestoredFocusableNode. | |
получитьRootFocusableNode() | См. IFocusableTree.getRootFocusableNode. | |
получитьRootWorkspace() | ||
получитьScale() | Получите коэффициент масштабирования рабочего пространства. | |
получитьSvgGroup() | Возвращает группу SVG для рабочей области. | |
получитьТема() | Получить объект темы рабочего пространства. | |
получитьToolbox() | Геттер для набора инструментов, связанного с этим рабочим пространством, если таковой существует. | |
getToolboxCategoryCallback(ключ) | Получите функцию обратного вызова, связанную с заданным ключом, для заполнения пользовательских категорий панели инструментов в этом рабочем пространстве. | |
получитьTopBlocks(упорядочено) | Находит блоки верхнего уровня и возвращает их. Блоки могут быть отсортированы по позиции сверху вниз (с небольшим смещением влево или вправо). | |
получитьTopBoundedElements(упорядоченный) | Находит ограниченные элементы верхнего уровня и возвращает их. | |
получитьTopComments(упорядочено) | Возвращает список комментариев к данному рабочему пространству. | |
получитьШирину() | Возвращает горизонтальное смещение рабочей области. Предназначено для обеспечения совместимости с LTR/RTL в XML. | |
hideChaff(onlyClosePopups) | Закройте всплывающие подсказки, контекстные меню, раскрывающиеся списки и т. д. | |
hideComponents(onlyClosePopups) | Скройте все автоматически скрываемые компоненты (например, всплывающее окно, корзину и любые зарегистрированные пользователем компоненты). | |
выделитьБлок(id, opt_state) | Выделите или снимите выделение блока в рабочей области. Выделение блока часто используется для визуального обозначения блоков, которые в данный момент выполняются. | |
isDraggable() | Можно ли перетаскивать это рабочее пространство? | |
isDragging() | Возвращает значение true, если пользователь в данный момент выполняет жест перетаскивания или если выполняется движение, инициированное с помощью клавиатуры. Жесты перетаскивания обычно подразумевают перемещение блока или другого элемента на рабочем пространстве или прокрутку всплывающего меню/рабочего пространства. Движения, инициируемые с помощью клавиатуры, реализуются с использованием инфраструктуры перетаскивания и предназначены для эмуляции (подмножества) жестов перетаскивания, поэтому обычно должны рассматриваться так, как если бы они были перетаскиванием на основе жестов. | |
isMovable() | Можно ли перемещать это рабочее место? Это означает, что пользователь может изменять координаты XY рабочей области посредством ввода. Это может быть сделано с помощью полос прокрутки, колеса прокрутки, перетаскивания или масштабирования с помощью колеса прокрутки или сжатия (поскольку центр масштаба совпадает с позицией мыши). Это не относится к масштабированию с помощью элементов управления масштабированием, поскольку координаты XY определяются программно. | |
isMovableHorizontally() | Можно ли перемещать это рабочее пространство по горизонтали? | |
isMovableVertically() | Можно ли перемещать это рабочее пространство по вертикали? | |
isVisible() | Геттер для isVisible | |
lookUpFocusableNode(id) | См. IFocusableTree.lookUpFocusableNode. | |
markFocused() | Отметить это рабочее пространство как основное рабочее пространство, находящееся в данный момент в фокусе. | |
moveDrag(e) | Отслеживайте перетаскивание объекта на этом рабочем пространстве. | |
newBlock(prototypeName, opt_id) | Получите вновь созданный блок. | |
новыйКомментарий(id) | Получите вновь созданный комментарий. | |
onNodeBlur() | См. IFocusableNode.onNodeBlur. | |
onNodeFocus() | См. IFocusableNode.onNodeFocus. | |
onTreeBlur(nextTree) | См. IFocusableTree.onTreeBlur. | |
onTreeFocus(_node, _previousTree) | См. IFocusableTree.onTreeFocus. | |
recordDragTargets() | Составьте список всех областей удаления для этого рабочего пространства. | |
refreshTheme() | Обновите все блоки в рабочей области после обновления темы. | |
registerButtonCallback(ключ, функция) | Зарегистрируйте функцию обратного вызова, связанную с заданной клавишей, для нажатия кнопок и меток во всплывающем меню. Например, кнопка, указанная в XML-коде должен быть сопоставлен с вызовом registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction). | |
registerToolboxCategoryCallback(ключ, функция) | Зарегистрируйте функцию обратного вызова, связанную с заданной клавишей, для заполнения пользовательских категорий панели инструментов в этой рабочей области. См. примеры категорий переменных и процедур. | |
removeButtonCallback(ключ) | Удалить обратный вызов при нажатии на кнопку во всплывающем окне. | |
removeClass(имя_класса) | Удаляет класс CSS из рабочей области. | |
removeToolboxCategoryCallback(ключ) | Удалить обратный вызов при щелчке по названию пользовательской категории на панели инструментов. | |
removeTopBlock(блок) | Удаляет блок из списка верхних блоков. | |
removeTopBoundedElement(элемент) | Удаляет ограниченный элемент из списка верхних ограниченных элементов. | |
removeTopComment(комментарий) | Удаляет комментарий из списка лучших комментариев. | |
оказывать() | Визуализируйте все блоки в рабочем пространстве. | |
изменить размер() | Изменить размер и положение всех элементов рабочего пространства (панель инструментов, корзина, полосы прокрутки и т. д.). Эту функцию следует вызывать, когда что-то изменяется и требует пересчета размеров и положения корзины, масштабирования, панели инструментов и т. д. (например, изменение размера окна). | |
прокрутка(x, y) | Прокрутите рабочую область до заданного смещения (в пикселях), не выходя за её границы. Подробнее о значении этих значений см. в комментарии к workspaceSvg.scrollX. | |
scrollCenter() | Центрируйте рабочее пространство. | |
setIsReadOnly(только для чтения) | ||
setNavigator(newNavigator) | Устанавливает экземпляр Navigator, используемый этим рабочим пространством. | |
setResizeHandlerWrapper (обработчик) | Сохраните данные обработчика изменения размера, чтобы их можно было удалить позже при утилизации. | |
setResizesEnabled(включено) | Проверьте, включено ли изменение размера для этой рабочей области. Если включено, размер рабочей области будет изменяться при необходимости. Если отключено, размер рабочей области не будет изменяться до повторного включения. Используйте, чтобы избежать изменения размера во время пакетной обработки для повышения производительности. | |
setScale(newScale) | Установите коэффициент масштабирования рабочего пространства. | |
setTheme(тема) | Задайте объект темы рабочего пространства. Если тема не передана, по умолчанию используется Classic тема. | |
setVisible(isVisible) | Включает/выключает видимость рабочего пространства. В настоящее время предназначено только для основного рабочего пространства. | |
startDrag(e, xy) | Начните отслеживать перетаскивание объекта на этом рабочем пространстве. | |
перевод(x, y) | Перевести это рабочее пространство в новые координаты. | |
updateInverseScreenCTM() | Отметьте инверсный экран CTM как грязный. | |
updateToolbox(toolboxDef) | Измените дерево блоков на существующем наборе инструментов. | |
зум(x, y, количество) | Увеличивает или уменьшает масштаб рабочего пространства относительно/центрирует его по заданной координате (x, y). | |
zoomCenter(тип) | Масштабирование блоков, центрированных в центре вида, с помощью увеличения или уменьшения масштаба. | |
zoomToFit() | Если возможно, увеличьте масштаб блоков, чтобы они поместились в рабочем пространстве. |