Files
window-axis-innovators-box1.17/api-documentation/register/RegistrationSettingsItem.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

85 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

这是一个专门为 `com.axis.innovators.box.register.RegistrationSettingsItem` 类编写的技术介绍文档。
---
# RegistrationSettingsItem 类技术文档
**包路径:** `com.axis.innovators.box.register.RegistrationSettingsItem`
**继承关系:** `com.axis.innovators.box.window.WindowsJDialog`
**主要功能:** 设置中心控制器、设置项注册引擎、应用配置管理
**作者:** tzdwindows 7
## 1. 概述
`RegistrationSettingsItem`**Axis Innovators Box** 的配置核心。它既是一个用于展示设置界面的对话框组件也是一个全局的设置项注册仓库。它允许主程序和外部插件动态地将自定义的设置面板JPanel插入到统一的“设置中心”内。
此外该类还负责处理应用的外观主题、字体、背景图片、性能CUDA 加速)和国际化(语言)的持久化逻辑。
## 2. 核心职责
### 2.1 设置项注册 (Registration)
提供标准的 API允许不同模块注册设置页面
* **内置页面:** 自动初始化“常规设置”、“插件管理”、“主题选择”和“关于我们”四个核心面板。
* **插件扩展:** 插件可以通过 `addSettings()` 方法将自己的配置界面无缝集成到主设置窗口中。
### 2.2 环境外观管理
* **主题切换:**`RegistrationTopic` 配合,实现 LookAndFeel 的动态切换与搜索。
* **字体定制:** 全局修改 UI 字体,包括字体家族和大小。
* **背景特效:** 支持设置主窗口背景图片,并提供实时的**高斯模糊/毛玻璃**特效预览与应用。
### 2.3 配置持久化
使用 `StateManager`(关联文件 `app_settings`)将用户的个性化选择保存到磁盘:
* `theme.color`: 界面主题主色调。
* `ui.font`: 用户选择的字体。
* `background.path` & `background.blur`: 背景图片路径及其模糊程度。
* `ui.language`: 选定的语言环境。
* `ai.cuda.enabled`: AI 推理的 CUDA 加速开关。
## 3. 关键功能模块解析
### 3.1 动态背景模糊系统
该类内置了复杂的图像处理算法用于背景预览:
* **`applyFastBlur`**: 快速盒式模糊,适用于小半径预览。
* **`applyScaledBlur`**: 缩放模糊算法,通过降低采样率再放大的方式,在大半径模糊下保持极高的性能。
* **`applyGaussianBlur`**: 标准高斯模糊,通过一维卷积核两次传递(水平+垂直)实现高质量效果。
### 3.2 插件管理面板 (`createPluginSettingsPanel`)
实时统计并展示系统中已加载的所有插件信息:
* 区分 **Java 插件** 和 **Python 插件**
* 支持双击查看详细信息包括插件图标、物理位置JAR 路径)、主类名及转换器信息。
### 3.3 全局应用逻辑 (`applyAllSettings`)
这是一个静态方法,通常在 `AxisInnovatorsBox` 启动时调用。它会按顺序读取 `StateManager` 中的所有记录,并一次性应用到当前 JVM 环境中,确保用户每次打开应用时都能获得一致的体验。
## 4. API 接口说明
### 4.1 注册设置项
```java
public void addSettings(JPanel panel, String title, Icon icon, String tip, String registeredName)
```
* `panel`: 要显示的设置 UI 面板。
* `title`: 侧边栏或标签页显示的标题。
* `registeredName`: 唯一标识符(建议格式 `pluginId:itemName`)。
### 4.2 设置项管理
| 方法 | 描述 |
| :--- | :--- |
| `static void overloading()` | 重新初始化设置列表,常用于切换语言后刷新 UI 文本。 |
| `static void applyAllSettings()` | 从磁盘加载并应用所有已保存的配置。 |
| `void registration(JTabbedPane tp)` | 将所有已注册的设置项填充到指定的选项卡组件中。 |
## 5. 交互特性
1. **主题搜索:** 在主题面板按 `Ctrl + F` 可调出搜索栏,快速定位已安装的主题。
2. **实时预览:** 调整模糊滑块或选择颜色时,设置界面内的预览组件会立即更新。
3. **热重载:** 切换主题或语言后,会触发 `AxisInnovatorsBox.getMain().reloadAllWindow()`,无需重启即可看到全局变化。
## 6. 设计细节
* **隔离性:** 使用 `UUID` 内部管理设置项,确保即使注册名相似也不会发生引用冲突。
* **健壮性:** 在加载背景图片或字体时,会自动检查物理文件是否存在及字体在当前系统中是否可用,防止因配置损坏导致启动崩溃。
---
*文档生成时间: 2026-01-02*