2c23679ebb
- 移除旧 aitest 与 mobile-ui-auto 插件及其资源、测试 - 新增纯 Java 微信 AI 助手插件(ADB 驱动 + AI 回复) - 同步更新主界面图标映射、主题样式与插件配置
10 KiB
10 KiB
name, overview, design, todos
| name | overview | design | todos | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 系统设置重构-直接打开配置文件 | 重构系统设置窗口,去掉繁琐的表单填写,改为每个 Tab 直接打开 data 目录下对应配置文件,用系统默认编辑器快速配置,每个 Tab 只管理自己栏目的配置。 |
|
|
产品概述
重构系统设置窗口,去掉繁琐的 JavaFX 表单填写体验,改为每个 Tab 直接打开 data 目录下对应的配置文件,用系统默认编辑器(记事本/IDE)快速配置。每个 Tab 只管理自己栏目的配置,各配置文件独立管理。
核心功能
- 系统路径 Tab:显示
data/workutils.config文件路径,提供「用记事本打开」按钮直接编辑系统路径和字体设置 - MyBatis 数据库 Tab:显示
data/mybatis-generator.properties文件路径,提供「用记事本打开」按钮直接编辑数据库连接和包路径配置 - 项目路径 Tab:显示
data/project_paths.txt文件路径,提供「用记事本打开」按钮直接编辑项目路径列表 - 多数据源 Tab:显示
data/datasources.json文件路径,提供「用记事本打开」按钮直接编辑多数据源配置 - 损坏缓存 Tab:显示
data/damaged_repos.cache文件路径,标记为只读,提供「用记事本打开」按钮查看,保留「清理缓存」按钮 - 重新加载:每个 Tab 提供「重新加载」按钮,让程序重新读取文件使配置生效
- ExternalConfigManager 精简:移除
SECTIONS中的 MyBatis 相关配置节,只保留系统路径、数据文件路径和字体大小
技术栈
- JavaFX(原有技术栈,保持一致的 UI 风格)
- Desktop.getDesktop().edit() 打开配置文件(Windows 下用默认编辑器打开)
实施方案
架构设计
重构后的设置窗口每个 Tab 统一结构:
┌─────────────────────────────────────────────────────────┐
│ Tab 标题(如:系统路径) │
│ │
│ 配置文件: C:\xxx\data\workutils.config │
│ │
│ [用记事本打开] [重新加载] │
│ │
│ 说明文字:编辑后点击「重新加载」生效,无需重启。 │
└─────────────────────────────────────────────────────────┘
关键修改点
1. SettingsWindow.java — 重构各 Tab
createPathTab()(系统路径 Tab):
- 移除所有 GridPane 表单行(tfBaseDir、tfExportDir 等 TextField)
- 显示
properties.getWorkutilsConfigFilePath()绝对路径 - 保留「用记事本打开」按钮(调用
Desktop.getDesktop().edit(file)) - 保留「重新加载」按钮(调用
properties.mergeExternal(configManager.load())) - 保留字体大小设置说明(字体设置仍在 workutils.config 中)
createMyBatisTab()(MyBatis 数据库 Tab):
- 完全移除 GridPane 表单(tfDbDriver、tfDbUrl 等)
- 显示
properties.getMybatisGeneratorFilePath()绝对路径 - 「用记事本打开」按钮打开
data/mybatis-generator.properties - 「重新加载」按钮调用已有逻辑重新加载 MyBatis 配置
- 移除「从内置配置加载」按钮(用户直接编辑文件即可)
createProjectTab()(项目路径 Tab):
- 移除 TextArea + 加载/保存按钮的复杂结构
- 显示
properties.getProjectPathsFilePath()绝对路径 - 「用记事本打开」按钮打开
data/project_paths.txt - 保留「重新加载」按钮刷新项目路径列表
- 保留批量替换工具(这是用户之前明确需求的功能,在 memory ID 70362697 中有记录)
createDatasourceTab()(新增 Tab — 多数据源):
- 显示
properties.getDatasourcesFilePath()绝对路径 - 「用记事本打开」按钮打开
data/datasources.json - 「重新加载」按钮调用
datasourceConfigManager.reload()
createDamagedCacheTab()(损坏缓存 Tab,替代原项目管理 Tab 中的子 Tab):
- 显示
properties.getDamagedReposFilePath()绝对路径 - 标记为只读(加提示文字)
- 「用记事本打开」按钮打开
data/damaged_repos.cache - 保留「清理缓存」按钮
createDisplayTab()(显示设置 Tab):
- 字体设置仍在
workutils.config中,所以此 Tab 内容与系统路径 Tab 操作的是同一个文件 - 可以简化为一个提示:「字体设置请在 workutils.config 中修改 font.size.* 属性」+ 「重新加载」按钮
- 或者保留现有的滑块预览(用户可能喜欢实时预览字体效果),但保存时改为提示用户去文件编辑
建议:显示设置 Tab 保留现有滑块预览功能(用户体验好),但「保存」按钮改为提示用户手动编辑 workutils.config,或仍通过 ExternalConfigManager.saveSectioned() 保存字体设置(因为字体设置是系统级的,适合集中管理)。
2. ExternalConfigManager.java — 移除 MyBatis 配置节
修改 SECTIONS 静态初始化块,移除:
"===== MyBatis 数据库连接(覆盖内置 mybatis-generator.properties)=====""===== MyBatis 代码生成包路径 ====="
只保留:
"===== 系统路径 =====""===== 数据文件路径 =====""===== 字体大小(显示设置) ====="
同步移除对应的 KEY 常量(或修改注释说明这些 KEY 仅用于 workutils.config)。
3. 打开文件工具方法
在 SettingsWindow 中新增工具方法:
private void openFileInEditor(Path file) {
try {
if (!Files.exists(file)) {
Files.createDirectories(file.getParent());
Files.createFile(file);
}
// Windows: Desktop.edit 用关联程序打开并允许编辑
// 如果 Desktop 不可用,fallback 到 Runtime.exec("notepad")
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().edit(file.toFile());
} else {
// Windows fallback
Runtime.getRuntime().exec(new String[]{"notepad", file.toAbsolutePath().toString()});
}
} catch (Exception e) {
showAlert(AlertType.ERROR, "打开文件失败: " + e.getMessage());
}
}
实施注意事项
- Desktop.getDesktop().edit() 在 Windows 上需要文件有关联的编辑器,且文件必须存在
- 批量替换工具保留:用户的 memory 中明确提到需要保留项目路径批量替换功能,不能删除
- 向后兼容:workutils.config 中如果仍有旧的 MyBatis 配置项,程序应能忽略(不报错)
- 文件不存在处理:打开前检查文件是否存在,不存在则创建空文件或从模板复制
目录结构变更
src/main/java/com/example/workutils/system/config/
├── SettingsWindow.java [MODIFY] 重构所有 Tab 内容
├── ExternalConfigManager.java [MODIFY] 移除 MyBatis 配置节
├── WorkUtilsProperties.java [NO CHANGE] 无需修改
├── DatasourceConfigManager.java [NO CHANGE] 无需修改
└── ConfigInitializer.java [NO CHANGE] 无需修改
无需新增文件,只需修改现有两个文件。
设计风格
保持现有 JavaFX 窗口的简洁风格,每个 Tab 内容统一为:
- 顶部:标题(加粗,字号稍大)
- 中部:配置文件路径(等宽字体,可选择性可复制)
- 按钮区:[]用记事本打开] []重新加载](对齐,间距合理)
- 底部:说明文字(灰色,小字号)
布局说明
每个 Tab 使用 VBox 垂直布局,内容居中偏左对齐,整体留白适中(Insets 12px)。 按钮使用 HBox 水平排列,间距 10px。 路径 Label 使用等宽字体(Consolas),背景浅灰,增加可读性。