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

    Class CadEventManager

    CAD事件管理器

    全局单例,提供统一的事件订阅和发布接口。 二次开发者通过此类监听CAD系统中的各类事件。

    import { CadEventManager, CadEvents } from 'webcad-lib-ts';

    // 获取事件管理器实例
    const events = CadEventManager.getInstance();

    // 监听实体删除事件
    events.on(CadEvents.EntityErasing, (args) => {
    if (args.entity.layer === "保护图层") {
    args.cancel = true; // 阻止删除
    }
    });

    // 监听命令执行
    events.on(CadEvents.CommandStarted, (args) => {
    console.log(`执行命令: ${args.commandName}`);
    });
    Index

    Methods

    • 注册事件监听器

      Type Parameters

      • K extends keyof EventArgsMap

      Parameters

      • event: K

        事件类型

      • handler: EventHandler<EventArgsMap[K]>

        事件处理函数

      Returns this

      当前实例,支持链式调用

      events.on(CadEvents.EntityAdded, (args) => {
      console.log('实体已添加:', args.entity.type);
      });
    • 注册事件监听器

      Parameters

      • event: string

        事件类型

      • handler: EventHandler

        事件处理函数

      Returns this

      当前实例,支持链式调用

      events.on(CadEvents.EntityAdded, (args) => {
      console.log('实体已添加:', args.entity.type);
      });
    • 注册一次性事件监听器 监听器在触发一次后自动移除

      Type Parameters

      • K extends keyof EventArgsMap

      Parameters

      • event: K

        事件类型

      • handler: EventHandler<EventArgsMap[K]>

        事件处理函数

      Returns this

      当前实例,支持链式调用

      events.once(CadEvents.DocumentOpened, (args) => {
      console.log(`文档 ${args.document.name} 已打开`);
      });
    • 注册一次性事件监听器 监听器在触发一次后自动移除

      Parameters

      • event: string

        事件类型

      • handler: EventHandler

        事件处理函数

      Returns this

      当前实例,支持链式调用

      events.once(CadEvents.DocumentOpened, (args) => {
      console.log(`文档 ${args.document.name} 已打开`);
      });
    • 移除事件监听器

      Type Parameters

      • K extends keyof EventArgsMap

      Parameters

      • event: K

        事件类型

      • handler: EventHandler<EventArgsMap[K]>

        要移除的处理函数

      Returns this

      当前实例,支持链式调用

      const handler = (args) => { console.log(args); };
      events.on(CadEvents.EntityAdded, handler);
      // 稍后移除
      events.off(CadEvents.EntityAdded, handler);
    • 移除事件监听器

      Parameters

      • event: string

        事件类型

      • handler: EventHandler

        要移除的处理函数

      Returns this

      当前实例,支持链式调用

      const handler = (args) => { console.log(args); };
      events.on(CadEvents.EntityAdded, handler);
      // 稍后移除
      events.off(CadEvents.EntityAdded, handler);
    • 移除指定事件的所有监听器

      Parameters

      • Optionalevent: string

        事件类型,如果不提供则移除所有事件的监听器

      Returns this

      当前实例,支持链式调用

    • 检查指定事件是否有监听器

      Parameters

      • event: string

        事件类型

      Returns boolean

      是否有监听器

    • 获取指定事件的监听器数量

      Parameters

      • event: string

        事件类型

      Returns number

      监听器数量

    • 暂停事件触发 在批量操作时使用,避免频繁触发事件

      Parameters

      • queueEvents: boolean = false

        是否在暂停期间队列化事件,以便恢复时触发

      Returns void

      // 批量操作时暂停事件
      events.suspendEvents();
      try {
      // 执行批量操作...
      } finally {
      events.resumeEvents();
      }
    • 恢复事件触发

      Returns void

    • 检查事件是否被暂停

      Returns boolean

      是否暂停

    • 获取所有已注册事件类型

      Returns string[]

      事件类型数组