WebCAD-Lib-TS API 文档 - v1.0.0
    Preparing search index...

    Class ColorPanelDialog

    颜色面板组件类 - CAD系统的颜色选择对话框

    这个类继承自基础对话框组件,专门用于颜色选择功能。 它提供了完整的CAD标准颜色调色板,支持256种标准颜色的选择。

    主要功能:

    1. 标准颜色显示 - 显示CAD标准的256色调色板
    2. 颜色选择交互 - 处理用户点击选择颜色
    3. 特殊颜色支持 - 支持ByLayer、ByBlock等特殊颜色
    4. 颜色验证 - 验证选择的颜色索引是否有效
    5. 结果返回 - 返回用户选择的颜色结果

    ColorPanel

    Hierarchy (View Summary)

    Index

    Constructors

    • 构造函数 - 初始化颜色面板组件

      调用父类构造函数并初始化颜色面板特有的属性:

      • colorIndexIsOk: 颜色索引有效性标志
      • result: 用户选择的颜色结果
      • disabledByLayerAndByBlock: 是否禁用特殊颜色选项
      • rgbHexValue: RGB颜色的十六进制值

      Returns ColorPanelDialog

    Properties

    styles: r = ...

    定义组件样式 - 使用静态属性

    properties: {
        disabledByLayerAndByBlock: { type: BooleanConstructor };
        rgbHexValue: { type: StringConstructor };
        dialogTitle: { type: StringConstructor };
        draggable: { type: BooleanConstructor };
    } = ...

    定义响应式属性 - 使用静态属性

    colorIndexIsOk: boolean
    result: string
    disabledByLayerAndByBlock: boolean
    rgbHexValue: string
    dialogTitle: string
    draggable: boolean

    The draggable property of the HTMLElement interface gets and sets a Boolean primitive indicating if the element is draggable.

    MDN Reference

    isDragging: boolean
    dragStartX: number
    dragStartY: number
    dialogStartX: number
    dialogStartY: number
    offsetX: number
    offsetY: number
    mouseX: number
    mouseY: number
    renderRoot: any

    Accessors

    • get isSuspended(): boolean

      检查对话框是否处于暂停状态

      Returns boolean

    • get observedAttributes(): any[]

      Returns any[]

    • get updateComplete(): any

      Returns any

    Methods

    • 首次更新完成回调 - 在组件首次渲染后初始化颜色面板

      这个方法在组件首次更新完成后调用,负责动态生成颜色面板的内容:

      1. 生成标准颜色网格(10-249色)
      2. 生成基础颜色(1-9色)
      3. 生成灰度颜色(250-255色)

      每个颜色单元格都会设置相应的背景色和属性。

      Returns void

    • 组件更新完成回调 - 在组件更新后设置焦点

      这个方法在组件每次更新完成后调用:

      1. 派发更新完成事件
      2. 将焦点设置到输入框
      3. 选中输入框中的文本

      Returns void

    • 确定按钮回调 - 处理用户点击确定按钮

      当用户点击确定按钮时,获取输入框的值作为结果并关闭对话框。

      Returns void

    • ByLayer按钮回调 - 处理用户选择ByLayer颜色

      当用户点击ByLayer按钮时,设置结果为"ByLayer"并关闭对话框。 ByLayer表示使用图层的颜色设置。

      Returns void

    • ByBlock按钮回调 - 处理用户选择ByBlock颜色

      当用户点击ByBlock按钮时,设置结果为"ByBlock"并关闭对话框。 ByBlock表示使用块的颜色设置。

      Returns void

    • 取消按钮回调 - 处理用户点击取消按钮

      当用户点击取消按钮时,清空结果并关闭对话框。

      Returns void

    • 表格点击回调 - 处理用户点击颜色单元格

      当用户点击颜色表格中的单元格时,将颜色索引显示在输入框中。 这允许用户通过点击来选择颜色。

      Parameters

      • event: Event

        点击事件对象

      Returns void

    • 表格双击回调 - 处理用户双击颜色单元格

      当用户双击颜色表格中的单元格时,直接选择该颜色并关闭对话框。 这提供了快速选择颜色的方式。

      Parameters

      • event: Event

        双击事件对象

      Returns void

    • 输入框按键回调 - 处理输入框的按键事件

      当用户在输入框中按下Enter键且颜色索引有效时, 确认选择并关闭对话框。

      Parameters

      • event: KeyboardEvent

        键盘事件对象

      Returns void

    • 启动颜色对话框 - 显示颜色选择对话框的主要方法

      这是颜色面板组件的核心方法,负责完整的颜色选择对话框显示流程:

      1. 将组件添加到对话框容器
      2. 等待DOM更新完成
      3. 设置初始颜色索引
      4. 配置特殊颜色选项
      5. 启动基础对话框显示
      6. 清理并返回用户选择结果

      Parameters

      Returns Promise<string>

      用户选择的颜色结果

    • 设置颜色索引 - 在输入框中设置指定的颜色索引

      这个方法用于在输入框中显示指定的颜色索引值或RGB颜色, 并选中文本以便用户修改。

      Parameters

      • color: number

        要设置的颜色索引(支持索引颜色和RGB颜色)

      Returns void

    • 设置确定按钮禁用状态 - 控制确定按钮的可用性

      根据颜色索引的有效性来启用或禁用确定按钮。

      Parameters

      • disabled: boolean

        是否禁用按钮

      Returns void

    • 输入框内容变化回调 - 验证用户输入的颜色索引

      当用户在输入框中输入内容时,验证输入的颜色索引是否有效:

      1. 获取并清理输入值
      2. 验证是否为有效的数字索引(1-255)或RGB颜色
      3. 根据验证结果更新UI状态

      Returns void

    • 设置无效状态 - 将输入框标记为无效状态

      当用户输入的颜色索引无效时,设置相应的视觉反馈。

      Returns void

    • 设置有效状态 - 将输入框标记为有效状态

      当用户输入的颜色索引有效时,移除错误状态的视觉反馈。

      Returns void

    • RGB颜色选择器变化回调 - 处理用户通过颜色选择器选择颜色

      Parameters

      • event: Event

      Returns void

    • RGB十六进制输入框变化回调 - 处理用户手动输入RGB颜色值

      Parameters

      • event: Event

      Returns void

    • RGB使用按钮回调 - 应用RGB颜色并关闭对话框

      Returns void

    • 按键事件回调 - 处理键盘按键事件(重复定义)

      这个方法与inputKeyPress_callback功能相同,处理Enter键的按下事件。 当用户按下Enter键且颜色索引有效时,确认选择并关闭对话框。

      注意:这是一个重复的方法定义,建议合并到inputKeyPress_callback中。

      Parameters

      • event: KeyboardEvent

        键盘事件对象

      Returns void

    • 渲染颜色面板模板 - 定义颜色面板的HTML结构

      返回颜色面板的完整HTML模板,包括:

      1. 基础对话框容器
      2. 标题显示区域
      3. 颜色表格区域(标准颜色网格)
      4. 基础颜色和灰度颜色区域
      5. 输入框和按钮区域

      Returns { _$litType$: any; strings: any; values: any[] }

      颜色面板的HTML模板

    • 鼠标移动事件回调 - 跟踪鼠标位置

      当鼠标在对话框内移动时,记录当前鼠标的屏幕坐标。 这些坐标用于在对话框关闭后恢复鼠标位置, 确保用户体验的连续性。

      Parameters

      • event: MouseEvent

        鼠标移动事件对象

      Returns void

    • 顶部标题栏鼠标按下事件 - 开始拖拽

      当用户在对话框顶部标题栏按下鼠标时触发, 初始化拖拽操作的相关状态。

      Parameters

      • event: MouseEvent

        鼠标按下事件对象

      Returns void

    • 全局鼠标移动事件 - 处理拖拽移动

      Parameters

      • event: MouseEvent

        鼠标移动事件对象

      Returns void

    • 全局鼠标释放事件 - 结束拖拽

      Parameters

      • event: MouseEvent

        鼠标释放事件对象

      Returns void

    • 处理拖拽移动 - 更新对话框位置

      Parameters

      • event: MouseEvent

        鼠标事件对象

      Returns void

    • 检查元素是否为可拖拽区域

      Parameters

      • element: Element

        要检查的元素

      Returns boolean

      是否为可拖拽区域

    • 等待组件更新完成 - 异步等待DOM更新

      返回一个Promise,该Promise在组件完成下一次更新后resolve。 这对于需要确保DOM已经更新的操作非常有用。

      Returns Promise<void>

      在组件更新完成后resolve的Promise

    • 启动基础对话框 - 对话框显示的主要流程

      这是对话框显示的核心方法,处理完整的对话框生命周期:

      1. 设置对话框标题
      2. 将对话框添加到指定容器
      3. 记录当前鼠标位置
      4. 等待DOM更新完成
      5. 显示对话框
      6. 清理和恢复鼠标事件

      Parameters

      • e: any

      Returns Promise<void>

    • 触发鼠标移动事件 - 恢复鼠标状态

      在对话框关闭后,模拟一个鼠标移动事件来恢复画布的鼠标状态。 这确保了对话框关闭后,画布能够正确响应鼠标位置。

      Returns void

    • 显示基础对话框 - 显示模态对话框并等待关闭

      这个方法负责实际显示对话框并返回一个Promise, 该Promise在对话框关闭时resolve。这允许调用者 异步等待对话框的完成。

      Returns Promise<boolean>

      在对话框关闭时resolve为true的Promise

    • 关闭按钮点击回调 - 处理对话框关闭按钮点击

      当用户点击对话框右上角的关闭按钮时调用。 它会派发一个"escape"事件(表示用户取消操作), 然后关闭对话框。

      Returns void

    • 关闭对话框 - 程序化关闭对话框

      提供一个简单的方法来程序化地关闭对话框, 不派发任何额外的事件。

      Returns void

    • 打开对话框 - 程序化打开模态对话框

      提供一个简单的方法来程序化地打开对话框, 使用 HTML

      元素的 showModal() 方法。

      Returns void

    • 暂停对话框 - 临时关闭模态对话框,允许用户操作CAD界面

      使用场景:在对话框中需要让用户在CAD界面上选择实体或拾取点时调用。 暂停后对话框会关闭,用户可以与CAD界面交互。 交互完成后调用 resume() 恢复对话框。

      Returns void

      // 暂停对话框
      this.baseDialog?.suspend();

      // 让用户在CAD界面选择实体
      const result = await Engine.editor.getSelections(options);

      // 恢复对话框
      this.baseDialog?.resume();
    • 恢复对话框 - 重新以模态方式打开对话框

      在调用 suspend() 后,用户完成CAD界面交互后调用此方法恢复对话框。 对话框会恢复到暂停前的位置。

      Returns void

    • 清理拖拽状态 - 移除全局事件监听器

      在对话框关闭时调用,确保不会遗留全局事件监听器

      Returns void

    • Parameters

      • t: any
      • e: {
            attribute: boolean;
            type: StringConstructor;
            converter: {
                toAttribute(t: any, e: any): any;
                fromAttribute(t: any, e: any): any;
            };
            reflect: boolean;
            hasChanged: (t: any, e: any) => boolean;
        } = y

      Returns void

    • Parameters

      • t: any
      • e: any
      • s: any

      Returns { get(): any; set(e: any): void; configurable: boolean; enumerable: boolean }

    • Parameters

      • t: any
      • e: any

      Returns string

    • Parameters

      • t: any
      • e: any

      Returns void

    • Parameters

      • t: any
      • e: any

      Returns void

    • Parameters

      • Optionalt: any
      • Optionale: any
      • Optionals: any

      Returns void

    • Parameters

      • t: any
      • e: any
      • s: any

      Returns void

    • Returns Promise<boolean>

    • Parameters

      • t: any

      Returns void

    • Parameters

      • t: any

      Returns void