Field 类
可编辑字段的抽象类。
Signature:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
实现:IASTNodeLocationSvg、IASTNodeLocationWithBlock、IKeyboardAccessible、IRegistrable、ISerializable
构造函数
构造函数 | 修饰符 | 说明 |
---|---|---|
(constructor)(value, Verifier, config) | 构造 Field 类的新实例 |
属性
媒体资源 | 修饰符 | 类型 | 说明 |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | 已渲染字段的 SVG 边框元素。 |
clickTarget_ | protected |
元素 | null | 点击处理程序绑定到的元素。 |
constants_ | protected |
ConstantProvider | null | 与源块的渲染程序相关联的常量。 |
游标 | string | 悬停在启动编辑器的热点上时显示鼠标光标样式。 | |
DEFAULT_VALUE | T | null | 要覆盖 **字段**中设置的默认值,请直接更新原型。 示例: |
|
可修改 | boolean | 可修改字段通常会显示某种界面,表明这些字段是可修改的。序列化器也会保存这些文件。 | |
enabled_ | protected |
boolean | 能否使用编辑器在可编辑块上更改字段值? |
fieldGroup_ | protected |
SVGGElement | null | 已渲染字段的 SVG 组元素。 |
isDirty_ | protected |
boolean | 是否需要重新渲染此块? |
maxDisplayLength | number | 添加省略号前可显示的文字字符数上限。 | |
姓名? | string | (可选)字段名称。在每个块中具有唯一性。静态标签通常未命名。 | |
NBSP |
|
(未声明) | 不间断空格。 |
可序列化 | boolean | 可序列化字段由序列化器保存,不可序列化字段则不是。可修改的字段也应可序列化。默认情况下,情况并非如此,因此 SERIALIZABLE 可向后兼容。 | |
size_ | protected |
尺寸 | |
SKIP_SETUP |
|
唯一符号 | 一个值,用于在字段的构造函数 *不* 设置字段值或运行 configure_ 时发出信号,并且应允许子类执行此操作。 |
sourceBlock_ | protected |
块 | null | 将此字段附加到的屏蔽设置。开始为 null,然后在 init 中设置。 |
textContent_ | protected |
文本 | null | 所呈现字段的文本内容元素。 |
textElement_ | protected |
SVGTextElement | null | 已渲染字段的 SVG 文本元素。 |
validator_ | protected |
FieldValidator<T> | null | 在用户修改可修改字段时调用的验证函数。 |
value_ | protected |
T | null | |
visible_ | protected |
boolean | 该字段是可见,还是由于块被收起而隐藏了? |
方法
方法 | 修饰符 | 说明 |
---|---|---|
applyColour() | 更新字段以匹配砌块的颜色/样式。 如果字段的颜色取决于块的颜色,非抽象子类可能希望实现此行为。系统会在相关时间自动调用它,例如在父块或渲染程序发生更改时。 如需了解详情,请参阅字段文档;如需查看示例,请参阅 FieldDropdown。 |
|
bindEvents_() | protected |
将事件绑定到该字段。如果子类需要执行自定义输入处理,则可以将其替换。 |
configure_(config) | protected |
处理传递到该字段的配置映射。 |
createBorderRect_() | protected |
创建一个字段边框矩形元素。不能被子类替换。请改为修改 initView 内函数的结果,或创建一个单独的函数进行调用。 |
createTextElement_() | protected |
创建字段文本元素。不能被子类替换。请改为修改 initView 内函数的结果,或创建一个单独的函数进行调用。 |
doClassValidation_(newValue) | protected |
在设置字段值之前验证对值的更改。有关子类实现的示例,请参阅 **FieldDropdown**。 **注意**:验证会返回一个介于 |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue) | protected |
用于通知字段输入的值无效。可由子类替换,请参阅 FieldTextInput。默认情况下不执行任何操作。 |
doValueUpdate_(newValue) | protected |
用于更新字段的值。可由子类替换,以对值进行自定义存储/更新外部内容。 |
getAbsoluteXY_() | protected |
返回此字段左上角的绝对坐标。原点 (0,0) 是网页正文的左上角。 |
getBorderRect() | protected |
获取边框矩形元素。 |
getClickTarget_() | protected |
将点击处理程序绑定到的元素。如果未明确设置,则默认为字段的 SVG 根文件夹。在可修改的字段上点击该元素时,系统会打开编辑器。 |
getConstants() | 获取渲染程序常量提供程序。 | |
getDisplayText_() | protected |
获取此字段中的要显示在代码块上的文本。由于省略号和其他格式设置,可能与 getText 不同。 |
getFlipRtl() | 返回我们是否应在 RTL 中翻转字段。 | |
getSize() | 返回字段的高度和宽度。 *通常*,这应该是调用 render_ 的唯一位置。 |
|
getSourceBlock() | 获取此字段要附加到的块。 | |
getSvgRoot() | 获取此可修改字段的组元素。用于测量尺寸和定位。 | |
getText_() | protected |
用于替换此字段的返回文本的开发者钩子。如果此字段的值的文本表示形式不是该字段的值的字符串转换,则替换该字段中的值。返回 null 以转到字符串类型转换。 |
getText() | 从此字段获取文本。替换 getText_ 以提供与简单地将值转换为字符串不同的行为。 | |
getTextContent() | protected |
获取文本内容。 |
getTextElement() | protected |
获取文本元素。 |
getTooltip() | 返回此字段的提示文本。 | |
getValidator() | 获取可修改字段的验证函数,如果未设置,则为 null。 | |
getValue() | 获取字段的当前值。 | |
initModel() | 当字段模型安装到块上后,对其进行初始化。默认情况下不执行任何操作。 | |
initView() | protected |
请为此字段创建屏蔽界面。 |
isClickable() | 检查此字段是否定义了 showEditor_ 函数。 | |
isClickableInFlyout(autoClosingFlyout) | 检查当区块位于浮出控件中时,字段是否应可点击。默认设置是,字段在始终打开的浮出控件(如简单的工具箱)中是可点击的,但在自动关闭的弹出框(如类别工具箱)中是可点击的。子类可以替换此函数来更改此行为。请注意,isClickable 也必须返回 true 才能发挥作用。 |
|
isCurrentlyEditable() | 检查此字段当前是否可以修改。有些字段(例如文本标签)一律无法修改。其他字段也可以修改,但可能存在于不可修改的块中,或者当前处于停用状态。 | |
isEnabled() | 检查当源块可修改时,是否可以使用编辑器更改此字段的值。 | |
isFullBlockField() | protected |
定义此字段是否应占据整个代码块。 覆盖此函数时要谨慎。它可能不符合您的预期 / 预期,因为该行为有点被黑客入侵。如果您正在考虑替换此函数,请在论坛中发帖并说明您预期的行为,看看是否有其他方法。 |
isSerializable() | 检查是否应由 XML 渲染程序序列化此字段。处理向后兼容性和不相等状态的逻辑。 | |
isTabNavigable() | 返回字段是否可通过标签页导航。 | |
isVisible() | 获取此可修改字段是否可见。 | |
loadLegacyState(callingClass, state) | 使用旧版 XML 钩子(如果应使用)加载指定的状态。如果加载已处理完毕,则返回 true,否则返回 false。 | |
onLocationChange(_) | 通知字段其位置已更改。 | |
onMouseDown_(e) | protected |
处理字段上的指针按下事件。 |
onShortcut(_shortcut) | 处理指定的键盘快捷键。 | |
positionBorderRect_() | protected |
在字段大小发生变化后确定其边框矩形的位置。 |
positionTextElement_(xOffset, contentWidth) | protected |
在大小发生变化后定位字段的文本元素。这既可处理 LTR 定位,也可处理 RTL 定位。 |
render_() | protected |
getSize() 用于移动/调整任何 DOM 元素的大小并获取新的大小。 影响块的大小/形状的所有渲染都应在此处完成,并且应由 getSize() 触发。 |
repositionForWindowResize() | 用于在窗口大小调整期间调整 WidgetDiv 的开发者钩子。如果您的字段具有在窗口大小调整时需要重新定位自身的 WidgetDiv,您需要定义此钩子。例如,文本输入字段定义了此钩子,以便输入 WidgetDiv 可以在窗口大小调整事件发生时自行重新定位。停用模态输入时,这一点尤为重要,因为 Android 设备会在软键盘打开时触发窗口大小调整事件。 如果您希望 WidgetDiv 隐藏自身而不是重新定位,请返回 false。这是默认行为。 DropdownDiv 已处理自己的定位逻辑,因此如果您的字段只有一个 DropdownDiv,那么您无需替换此函数。 |
|
saveLegacyState(callingClass) | protected |
如果应使用字符串化版本,则返回 XML 状态。否则,将返回 null,以表明字段应使用自己的序列化。 |
setEnabled(enabled) | 设置当源块可修改时,能否使用编辑器更改此字段的值。 | |
setSourceBlock(block) | 将此字段附加到文本块。 | |
setTooltip(newTip) | 设置此字段的提示。 | |
setValidator(handler) | 为可修改字段设置新的验证函数,或清除之前设置的验证程序。 验证器函数会接受新的字段值并返回经过验证的值。验证的值可以是输入值、输入值的修改版本,也可以是 null 以中止更改。 如果函数未返回任何值(或返回未定义的值),则新值会被接受为有效值。这是为了允许字段将经过验证的函数用作字段级更改事件通知。 |
|
setValue(newValue, fireChangeEvent) | 用于更改字段的值。处理验证和事件。子类应替换 doClassValidation_ 和 doValueUpdate_,而不是此方法。 | |
showEditor_(_e) | protected |
用于为字段创建编辑器的开发者钩子。默认情况下,此为空操作,必须替换它才能创建编辑器。 |
updateEditable() | 添加或移除用于指示此字段是否可修改的界面。 | |
updateSize_(margin) | protected |
根据文本更新字段大小。 |