Класс поля
Абстрактный класс для редактируемого поля.
Подпись:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Реализует: IASTNodeLocationSvg. , IASTNodeLocationWithBlock , IКлавиатураДоступно , IРегистрируемый , ISerializable
Конструкторы
Конструктор | Модификаторы | Описание |
---|---|---|
(конструктор)(значение, валидатор, конфигурация) | Создает новый экземпляр класса Field . |
Характеристики
Свойство | Модификаторы | Тип | Описание |
---|---|---|---|
borderRect_ | protected | SVGRectElement | нулевой | Элемент границы SVG отображаемого поля. |
нажмитеTarget_ | protected | Элемент | нулевой | Элемент, к которому привязан обработчик кликов. |
константы_ | protected | КонстантПровайдер | нулевой | Константы, связанные с средством рендеринга исходного блока. |
КУРСОР | нить | Стиль курсора мыши, когда он находится над горячей точкой, запускающей редактор. | |
DEFAULT_VALUE | Т | нулевой | Чтобы перезаписать значение по умолчанию, установленное в **Field**, обновите прототип напрямую. Пример: | |
РЕДАКТИРОВАНИЕ | логическое значение | Редактируемые поля обычно имеют какой-то пользовательский интерфейс, указывающий, что они доступны для редактирования. Они также будут сохранены сериализатором. | |
включено_ | protected | логическое значение | Можно ли изменить значение поля с помощью редактора в редактируемом блоке? |
полеГруппа_ | protected | SVGGEэлемент | нулевой | Элемент группы SVG отображаемого поля. |
isDirty_ | protected | логическое значение | Нужно ли перерисовывать этот блок? |
Максдиспленгс | число | Максимальное количество символов текста, отображаемого перед добавлением многоточия. | |
имя? | нить | (Необязательно) Имя поля. Уникальный внутри каждого блока. Статические метки обычно не имеют имени. | |
НБСП | | (не заявлено) | Неразрывное пространство. |
СЕРИАЛИЗУЕМЫЙ | логическое значение | Сериализуемые поля сохраняются сериализатором, а несериализуемые — нет. Редактируемые поля также должны быть сериализуемыми. По умолчанию это не так, поэтому SERIALIZABLE обратно совместим. | |
размер_ | protected | Размер | |
SKIP_SETUP | | уникальный символ | Значение, используемое для сигнализации, когда конструктор поля *не* должен устанавливать значение поля или запускать configure_ и вместо этого должен разрешать подклассу делать это. |
источникБлок_ | protected | Блокировать | нулевой | Заблокировать это поле прикреплено. Начинается с нуля, затем устанавливается в init. |
textContent_ | protected | Текст | нулевой | Элемент текстового содержимого отображаемого поля. |
textElement_ | protected | SVGTextElement | нулевой | Текстовый элемент SVG отображаемого поля. |
валидатор_ | protected | ПолеВалидатор <Т> | нулевой | Функция проверки вызывается, когда пользователь редактирует редактируемое поле. |
ценить_ | protected | Т | нулевой | |
видимый_ | protected | логическое значение | Поле видимо или скрыто из-за свертывания блока? |
Методы
Метод | Модификаторы | Описание |
---|---|---|
применитьЦвет() | Обновляет поле, чтобы оно соответствовало цвету/стилю блока. Неабстрактные подклассы могут реализовать это, если цвет поля зависит от цвета блока. Он будет автоматически вызываться в соответствующие моменты, например, при изменении родительского блока или средства визуализации. Для получения дополнительной информации см. документацию по полям или пример FieldDropdown. | |
связываниеEvents_() | protected | Привязывайте события к полю. Может быть переопределено подклассами, если им необходимо выполнить пользовательскую обработку ввода. |
configure_(конфигурация) | protected | Обработайте карту конфигурации, переданную в поле. |
createBorderRect_() | protected | Создайте прямоугольный элемент границы поля. Не переопределяться подклассами. Вместо этого измените результат функции внутри initView или создайте отдельную функцию для вызова. |
создатьTextElement_() | protected | Создайте текстовый элемент поля. Не переопределяться подклассами. Вместо этого измените результат функции внутри initView или создайте отдельную функцию для вызова. |
doClassValidation_ (новое значение) | protected | Проверьте изменения значения поля перед их установкой. См. **FieldDropdown** пример реализации подкласса. **ПРИМЕЧАНИЕ.** Проверка возвращает один вариант между |
doClassValidation_ (новое значение) | protected | |
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected | Используется для уведомления поля о том, что было введено недопустимое значение. Может быть переопределено подклассами, см. FieldTextInput. По умолчанию нет операций. |
doValueUpdate_(новое значение) | protected | Используется для обновления значения поля. Может быть переопределен подклассами для индивидуального хранения значений/обновления внешних объектов. |
fromJson(_options) | static | Подклассы должны переопределить этот метод, чтобы создать свой подкласс Field из объекта arg JSON. Попытка зарегистрировать подкласс поля в FieldRegistry является ошибкой, если этот подкласс не переопределил этот метод. |
getAbsoluteXY_() | protected | Верните абсолютные координаты верхнего левого угла этого поля. Начало координат (0,0) — это верхний левый угол тела страницы. |
getBorderRect() | protected | Получает элемент прямоугольника границы. |
getClickTarget_() | protected | Элемент, к которому необходимо привязать обработчик кликов. Если не установлено явно, по умолчанию используется корень поля SVG. При нажатии этого элемента на редактируемое поле откроется редактор. |
getConstants() | Получите поставщик констант рендеринга. | |
getDisplayText_() | protected | Получите текст из этого поля для отображения в блоке. Может отличаться от getText из-за многоточия и другого форматирования. |
getFlipRtl() | Возвращает, следует ли перевернуть поле в RTL. | |
getSize() | Возвращает высоту и ширину поля. *В общем* это должно быть единственное место, откуда вызывается render_. | |
getSourceBlock() | Получите блок, к которому прикреплено это поле. | |
getSvgRoot() | Получает элемент группы для этого редактируемого поля. Используется для измерения размера и позиционирования. | |
getText_() | protected | Хук разработчика для переопределения возвращаемого текста этого поля. Переопределить, если текстовое представление значения этого поля не является просто строковым преобразованием его значения. Верните значение null, чтобы прибегнуть к приведению строки. |
получитьТекст() | Получите текст из этого поля. Переопределите getText_, чтобы обеспечить поведение, отличное от простого преобразования значения в строку. | |
getTextContent() | protected | Получает текстовое содержимое. |
получитьТекстЭлемент() | protected | Получает текстовый элемент. |
getTooltip() | Возвращает текст всплывающей подсказки для этого поля. | |
getValidator() | Получает функцию проверки для редактируемых полей или значение NULL, если оно не установлено. | |
получить значение() | Получите текущее значение поля. | |
initModel() | Инициализирует модель поля после ее установки в блок. По умолчанию нет операций. | |
инициализация() | protected | Создайте пользовательский интерфейс блока для этого поля. |
isClickable() | Проверьте, определяет ли это поле функцию showEditor_. | |
isClickableInFlyout (autoClosingFlyout) | Проверьте, должно ли поле быть кликабельным, пока блок находится во всплывающем меню. По умолчанию поля доступны для щелчка в всегда открытых всплывающих окнах, таких как простая панель инструментов, но не в автоматически закрывающихся всплывающих окнах, таких как панель инструментов категорий. Подклассы могут переопределить эту функцию, чтобы изменить такое поведение. Обратите внимание, что isClickable также должен возвращать true, чтобы это имело какой-либо эффект. | |
isCurrentlyEditable() | Проверьте, доступно ли в настоящее время это поле для редактирования. Некоторые поля никогда не РЕДАКТИРУЮТСЯ (например, текстовые метки). Другие поля могут быть РЕДАКТИРОВАНЫ, но могут существовать в нередактируемых блоках или быть в данный момент отключены. | |
isEnabled() | Проверьте, можно ли изменить значение этого поля с помощью редактора, если исходный блок доступен для редактирования. | |
isFullBlockField() | protected | Определяет, должно ли это поле занимать весь блок или нет. Будьте осторожны при переопределении этой функции. Это может работать не так, как вы ожидаете/намереваетесь, потому что поведение было своего рода взломано. Если вы думаете о переопределении этой функции, напишите на форуме о своем предполагаемом поведении, чтобы узнать, есть ли другой подход. |
isSerializable() | Проверьте, должно ли это поле быть сериализовано средством визуализации XML. Обрабатывает логику обратной совместимости и несоответствующих состояний. | |
isTabNavigable() | Возвращает, доступна ли по полю навигация с помощью табуляции. | |
isVisible() | Определяет, отображается ли это редактируемое поле. | |
loadLegacyState (вызовКласс, состояние) | Загружает данное состояние, используя старые перехватчики XML, если они должны использоваться. Возвращает true, чтобы указать, что загрузка была обработана, в противном случае — false. | |
onLocationChange (_) | Уведомляет поле о том, что оно изменило местоположение. | |
onMouseDown_(e) | protected | Обработка события pointerdown в поле. |
onShortcut (_shortcut) | Обрабатывает данное сочетание клавиш. | |
позицияBorderRect_() | protected | Расположите прямоугольник границы поля после изменения размера. |
PositionTextElement_(xOffset, contentWidth) | protected | Разместите текстовый элемент поля после изменения размера. Это обрабатывает позиционирование как LTR, так и RTL. |
оказывать_() | protected | Используется getSize() для перемещения/изменения размера любых элементов DOM и получения нового размера. Весь рендеринг, влияющий на размер/форму блока, должен выполняться здесь и запускаться с помощью getSize(). |
перепозиционированиеForWindowResize() | Хук разработчика для изменения положения WidgetDiv во время изменения размера окна. Вам необходимо определить этот крючок, если в вашем поле есть WidgetDiv, который должен перемещаться при изменении размера окна. Например, поля ввода текста определяют этот крючок, чтобы входной WidgetDiv мог перемещаться в событии изменения размера окна. Это особенно важно, когда модальный ввод отключен, поскольку устройства Android будут вызывать событие изменения размера окна при открытии программной клавиатуры. Если вы хотите, чтобы WidgetDiv скрывал себя, а не менял положение, верните false. Это поведение по умолчанию. DropdownDivs уже обрабатывают собственную логику позиционирования, поэтому вам не нужно переопределять эту функцию, если в вашем поле есть только DropdownDiv. | |
saveLegacyState (вызовКласс) | protected | Возвращает строковую версию состояния XML, если ее следует использовать. В противном случае возвращается значение null, чтобы сигнализировать, что поле должно использовать собственную сериализацию. |
setEnabled (включено) | Установите, можно ли изменить значение этого поля с помощью редактора, если исходный блок доступен для редактирования. | |
setSourceBlock(блок) | Прикрепите это поле к блоку. | |
setTooltip (новая подсказка) | Устанавливает всплывающую подсказку для этого поля. | |
setValidator (обработчик) | Устанавливает новую функцию проверки для редактируемых полей или очищает ранее установленный валидатор. Функция валидатора принимает новое значение поля и возвращает проверенное значение. Проверенное значение может быть входным значением, измененной версией входного значения или нулевым значением, чтобы отменить изменение. Если функция ничего не возвращает (или возвращает неопределенное значение), новое значение принимается как допустимое. Это сделано для того, чтобы поля могли использовать проверенную функцию в качестве уведомления о событии изменения на уровне поля. | |
setValue(newValue, fireChangeEvent) | Используется для изменения значения поля. Обрабатывает проверки и события. Подклассы должны переопределять doClassValidation_ и doValueUpdate_, а не этот метод. | |
showEditor_(_e) | protected | Хук разработчика для создания редактора поля. По умолчанию это неактивный режим, и его необходимо переопределить для создания редактора. |
обновлениеEditable() | Добавьте или удалите пользовательский интерфейс, указывающий, доступно ли это поле для редактирования или нет. | |
updateSize_(поле) | protected | Обновляет размер поля на основе текста. |