Files
window-axis-innovators-box1.17/api-documentation/register/RegistrationTool.md
tzdwindows 7 7badbb0d8e docs: 添加 Axis Innovators Box 框架完整 API 文档
- 新增浏览器模块技术文档,涵盖 BrowserCore、BrowserWindow 等核心组件
- 添加事件系统文档,包括 EventBus、GlobalEventBus 及各类事件定义
- 创建 LanguageManager 国际化管理器详细说明文档
- 新增 Log4j2OutputStream 标准输出重定向类文档
- 添加 Main 入口类启动流程与路由机制说明
- 创建 BrowserCreationCallback 回调接口使用指南
- 完善 AxisInnovatorsBox 主类架构与崩溃诊断系统文档
2026-01-03 08:46:19 +08:00

4.7 KiB
Raw Blame History

RegistrationTool 类技术文档

包路径: com.axis.innovators.box.register.RegistrationTool
主要功能: 工具箱组件注册中心、功能分类管理器
作者: tzdwindows 7


1. 概述

RegistrationToolAxis Innovators Box 的功能调度核心。它负责管理主程序中所有的工具项(ToolItem)及其所属的分类(ToolCategory。通过该类开发者可以将各种功能模块如调试工具、编程环境、AI 推理等)注册到主界面的工具栏中。

该类不仅内置了丰富的系统工具,还为外部插件提供了一套标准的扩展接口,支持基于命名空间的工具注册逻辑。

2. 核心职责

  • 功能分类管理: 将相似功能的工具组织在 ToolCategory如“调试工具”、“AI工具”
  • 工具项路由: 定义点击工具图标后的具体行为(通过 AbstractAction 实现窗口弹出或逻辑执行)。
  • 插件扩展支持: 提供 API 允许插件在加载时动态注入自定义工具。
  • 唯一性校验: 确保每个注册项拥有唯一的 UUID 和注册名称Registered Name防止冲突。
  • 平台适配: 在初始化时根据 BuildInformation 检查操作系统兼容性(主要针对 Windows

3. 内置工具分类

在 Windows 系统环境下,RegistrationTool 默认初始化以下分类及工具:

3.1 调试工具 (Debug Tools)

  • Frida 注入工具: 使用 Frida 框架对目标进程进行脚本注入。

3.2 编程工具 (Programming Tools)

  • JarApi 查看器: 反射查看 JAR 包内的方法定义及其注解。
  • C 语言编辑器: 智能化的 C 语言编译与编辑环境。
  • 多语言在线执行: 支持多种编程语言的实时在线运行,具备无限循环检测机制。
  • 数据库管理: 跨平台的数据库管理客户端。
  • Linux 终端: 启动一个真实的 Linux 终端模拟环境。
  • MySQL 控制台: 模拟 MySQL 命令行交互界面。

3.3 AI 工具 (AI Tools)

  • 本地 AI 执行工具: 在本地运行开源大语言模型LLM。支持自动加载 CUDA 硬件加速库(通过 LM 类)。

3.4 系统工具 (System Tools)

  • 任务栏主题设置: 深度定制 Windows 任务栏的外观、颜色和透明度。

4. 插件扩展机制

RegistrationTool 支持插件化扩展,插件可以通过以下方法将自己的工具分类注册到主程序中:

public void addToolCategory(ToolCategory toolCategory, 
                            PluginDescriptor pluginDescriptor, 
                            String registeredName)

命名空间规则:
为了防止不同插件之间的工具冲突,系统会自动使用 插件注册名:工具注册名 的格式生成全局唯一的标识符。


5. API 接口说明

5.1 注册方法

方法 描述
addToolCategory(ToolCategory, String) 注册一个新的工具分类(系统级使用)。
addToolCategory(ToolCategory, PluginDescriptor, String) 插件专用接口。通过插件描述符注册分类。

5.2 查询方法

方法 描述
ToolCategory getToolCategory(UUID id) 根据 UUID 获取分类对象。
UUID getUUID(String registeredName) 根据注册名称(如 "system:debugTools")获取其 UUID。
List<ToolCategory> getToolCategories() 获取当前所有已注册的分类列表。

6. 关键技术约束:注册时机

生命周期限制:
RegistrationTool 的注册操作具有严格的时机限制:必须在应用主窗口启动(run 方法执行完毕)之前完成。

  • 如果在主窗口已处于显示状态(main.isWindow()true)时尝试添加工具,系统会通过日志记录 logger.warn("Wrong time to add tools") 并拒绝注册。
  • 这种设计确保了 UI 在渲染初期能获得完整的工具树,避免动态修改 UI 导致的线程竞争或布局闪烁。

7. 错误处理

如果在注册过程中检测到重复的注册名称,该类会抛出 RegistrationError。这是一种致命错误,旨在提醒开发者工具标识符冲突,必须在开发阶段解决。

8. 示例代码:添加简单工具

ToolCategory myCategory = new ToolCategory("我的工具", "icon.png", "说明");
myCategory.addTool(new ToolItem("弹窗演示", "btn.png", "点击会弹出消息", 100, new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null, "你好,这是注册工具!");
    }
}));

// 注册到系统
registrationTool.addToolCategory(myCategory, "my_custom_tools");

文档生成时间: 2026-01-02