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

    Class LineTypeDialog

    线型对话框组件类 - 用于选择CAD线型的对话框

    这个类继承自基础对话框组件,专门用于线型选择功能。 它提供了CAD系统中常用线型的选择界面,支持标准线型和特殊线型。

    主要功能:

    1. 线型列表显示 - 显示可用的线型选项
    2. 线型选择交互 - 处理用户点击和双击选择
    3. 特殊线型支持 - 支持ByLayer、ByBlock等特殊线型
    4. 选择结果返回 - 返回用户选择的线型名称

    LineTypeDialog

    Hierarchy (View Summary)

    Index

    Constructors

    • 构造函数 - 初始化线型对话框组件

      调用父类构造函数并初始化线型对话框特有的属性:

      • result: 用户选择的线型结果
      • selectedName: 当前选中的线型名称
      • disabledByLayerAndByBlock: 是否禁用特殊线型选项

      Returns LineTypeDialog

    Properties

    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
    properties: {
        dialogTitle: { type: StringConstructor };
        draggable: { type: BooleanConstructor };
        selectedName: { type: StringConstructor };
        disabledByLayerAndByBlock: { type: BooleanConstructor };
        searchText: { type: StringConstructor };
        selectedCategory: { type: StringConstructor };
        availableLinetypes: { type: ArrayConstructor };
        isLoading: { type: BooleanConstructor };
    } = ...

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

    result: string
    selectedName: string
    disabledByLayerAndByBlock: boolean
    searchText: string
    selectedCategory: string
    availableLinetypes: any[]
    isLoading: boolean
    styles: r = ...

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

    renderRoot: any

    Accessors

    • get isSuspended(): boolean

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

      Returns boolean

    • get observedAttributes(): any[]

      Returns any[]

    • get updateComplete(): any

      Returns any

    Methods

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

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

      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

    • 首次更新完成回调 - 在组件首次渲染后调用

      初始化线型列表和其他设置。

      Returns void

    • 组件更新完成回调 - 在组件更新后派发事件

      派发更新完成事件,通知外部组件已完成更新。

      Returns void

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

      当用户点击确定按钮时,将当前选中的线型名称作为结果并关闭对话框。

      Returns void

    • ByLayer按钮回调 - 处理用户选择ByLayer线型

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

      Returns void

    • ByBlock按钮回调 - 处理用户选择ByBlock线型

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

      Returns void

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

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

      Returns void

    • 加载lin文件按钮回调 - 处理用户点击加载lin文件按钮

      打开文件选择对话框,允许用户选择.lin文件来加载自定义线型。

      Returns Promise<void>

    • 加载lin文件内容

      Parameters

      • file: File

        选择的lin文件

      Returns Promise<void>

    • 读取文件内容为文本

      Parameters

      • file: File

        要读取的文件

      Returns Promise<string>

      文件内容

    • 表格点击回调 - 处理用户点击线型表格行

      当用户点击线型表格中的单元格时,查找所属的行并获取线型名称, 将其设置为当前选中的线型。

      Parameters

      • t: any

        点击事件对象

      Returns void

    • 表格双击回调 - 处理用户双击线型表格行

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

      Parameters

      • t: any

        双击事件对象

      Returns void

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

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

      1. 初始化组件
      2. 配置特殊线型选项
      3. 设置当前选中的线型
      4. 启动基础对话框显示
      5. 返回用户选择结果

      Parameters

      • t: any

      Returns Promise<string>

      用户选择的线型结果

    • 初始化方法 - 初始化线型对话框组件

      将组件添加到对话框容器并等待DOM更新完成。 这是显示对话框前的准备工作。

      Returns Promise<void>

    • 加载可用的线型列表

      Returns void

    • 获取默认线型列表

      Returns any[]

    • 获取线型分类

      Parameters

      • name: string
      • linetypeManager: any

      Returns string

    • 获取过滤后的线型列表

      Returns any[]

    • 生成线型预览

      Parameters

      • linetype: any

      Returns string

    • 根据线型定义生成预览

      Parameters

      • definition: any

      Returns string

    • 搜索输入事件处理

      Parameters

      • event: any

      Returns void

    • 分类选择事件处理

      Parameters

      • event: any

      Returns void

    • 渲染线型对话框模板 - 定义线型对话框的HTML结构

      返回线型对话框的完整HTML模板,包括:

      1. 基础对话框容器
      2. 标题显示区域
      3. 线型表格(包含名称、预览、说明列)
      4. 当前选择显示
      5. 按钮操作区域

      Returns any

      线型对话框的HTML模板

    • 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