chore(jcef): 更新缓存数据库和会话存储日志文件

- 更新 shared_proto_db/metadata/000003.log 文件内容
- 添加新的元数据条目到 protobuf 数据库日志
- 更新 Session Storage/00012.log 会话存储记录
- 增加新的命名空间和映射ID条目
- 扩展会话存储中的域名命名空间列表
- 重写了MainWindow
This commit is contained in:
2026-01-02 21:22:46 +08:00
parent 752850b936
commit 06f36fc3f0
45 changed files with 938 additions and 1340 deletions

Binary file not shown.

View File

@@ -1,3 +1,3 @@
#Current Loaded Language
#Fri Jan 02 17:46:22 CST 2026
#Fri Jan 02 18:29:21 CST 2026
loadedLanguage=system\:zh_CN

Binary file not shown.

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:55.167 52c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001
2026/01/02-17:46:55.168 52c Recovering log #3
2026/01/02-17:46:55.169 52c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log
2026/01/02-18:36:52.256 2f60 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001
2026/01/02-18:36:52.256 2f60 Recovering log #3
2026/01/02-18:36:52.257 2f60 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:54.309 d58 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001
2025/12/28-14:50:54.309 d58 Recovering log #3
2025/12/28-14:50:54.312 d58 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log
2026/01/02-17:54:54.886 5f78 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/MANIFEST-000001
2026/01/02-17:54:54.886 5f78 Recovering log #3
2026/01/02-17:54:54.887 5f78 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Extension State/000003.log

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:58.729 3d98 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001
2026/01/02-17:46:58.730 3d98 Recovering log #3
2026/01/02-17:46:58.730 3d98 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log
2026/01/02-18:36:54.760 54c0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001
2026/01/02-18:36:54.761 54c0 Recovering log #3
2026/01/02-18:36:54.762 54c0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:57.787 24fc Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001
2025/12/28-14:50:57.787 24fc Recovering log #3
2025/12/28-14:50:57.788 24fc Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log
2026/01/02-17:54:57.521 5e1c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/MANIFEST-000001
2026/01/02-17:54:57.522 5e1c Recovering log #3
2026/01/02-17:54:57.523 5e1c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\GCM Store\Encryption/000003.log

Binary file not shown.

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:55.667 31c0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001
2026/01/02-17:46:55.683 31c0 Recovering log #44
2026/01/02-17:46:55.687 31c0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log
2026/01/02-18:36:52.369 3ac8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001
2026/01/02-18:36:52.383 3ac8 Recovering log #44
2026/01/02-18:36:52.390 3ac8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:54.386 2b54 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001
2025/12/28-14:50:54.399 2b54 Recovering log #44
2025/12/28-14:50:54.404 2b54 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log
2026/01/02-17:54:54.973 29f8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/MANIFEST-000001
2026/01/02-17:54:54.984 29f8 Recovering log #44
2026/01/02-17:54:54.990 29f8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Local Storage\leveldb/000044.log

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
2026/01/02-17:48:16.445 31c0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001
2026/01/02-17:48:16.446 31c0 Recovering log #12
2026/01/02-17:48:16.449 31c0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log
2026/01/02-18:37:25.516 3ac8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001
2026/01/02-18:37:25.517 3ac8 Recovering log #12
2026/01/02-18:37:25.520 3ac8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:51:01.393 2160 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001
2025/12/28-14:51:01.395 2160 Recovering log #12
2025/12/28-14:51:01.401 2160 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log
2026/01/02-17:55:03.089 29f8 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/MANIFEST-000001
2026/01/02-17:55:03.091 29f8 Recovering log #12
2026/01/02-17:55:03.094 29f8 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Session Storage/000012.log

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:55.084 3b7c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001
2026/01/02-17:46:55.114 3b7c Recovering log #3
2026/01/02-17:46:55.115 3b7c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log
2026/01/02-18:36:52.245 517c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001
2026/01/02-18:36:52.246 517c Recovering log #3
2026/01/02-18:36:52.247 517c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:54.257 186c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001
2025/12/28-14:50:54.263 186c Recovering log #3
2025/12/28-14:50:54.264 186c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log
2026/01/02-17:54:54.823 5188 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/MANIFEST-000001
2026/01/02-17:54:54.841 5188 Recovering log #3
2026/01/02-17:54:54.842 5188 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Site Characteristics Database/000003.log

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:55.071 52c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001
2026/01/02-17:46:55.115 52c Recovering log #3
2026/01/02-17:46:55.115 52c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log
2026/01/02-18:36:52.237 e8c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001
2026/01/02-18:36:52.245 e8c Recovering log #3
2026/01/02-18:36:52.246 e8c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:54.253 37d4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001
2025/12/28-14:50:54.263 37d4 Recovering log #3
2025/12/28-14:50:54.264 37d4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log
2026/01/02-17:54:54.822 4be0 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/MANIFEST-000001
2026/01/02-17:54:54.840 4be0 Recovering log #3
2026/01/02-17:54:54.841 4be0 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\Sync Data\LevelDB/000003.log

Binary file not shown.

Binary file not shown.

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:55.164 109c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001
2026/01/02-17:46:55.164 109c Recovering log #19
2026/01/02-17:46:55.169 109c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log
2026/01/02-18:36:52.280 57e4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001
2026/01/02-18:36:52.281 57e4 Recovering log #19
2026/01/02-18:36:52.283 57e4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:54.299 22b4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001
2025/12/28-14:50:54.299 22b4 Recovering log #19
2025/12/28-14:50:54.301 22b4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log
2026/01/02-17:54:54.907 2150 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/MANIFEST-000001
2026/01/02-17:54:54.913 2150 Recovering log #19
2026/01/02-17:54:54.922 2150 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db/000019.log

View File

@@ -1,3 +1,3 @@
2026/01/02-17:46:55.156 109c Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001
2026/01/02-17:46:55.156 109c Recovering log #3
2026/01/02-17:46:55.157 109c Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log
2026/01/02-18:36:52.264 57e4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001
2026/01/02-18:36:52.265 57e4 Recovering log #3
2026/01/02-18:36:52.265 57e4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log

View File

@@ -1,3 +1,3 @@
2025/12/28-14:50:54.290 22b4 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001
2025/12/28-14:50:54.291 22b4 Recovering log #3
2025/12/28-14:50:54.291 22b4 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log
2026/01/02-17:54:54.894 2150 Reusing MANIFEST C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/MANIFEST-000001
2026/01/02-17:54:54.895 2150 Recovering log #3
2026/01/02-17:54:54.896 2150 Reusing old log C:\Users\Administrator\MCreatorWorkspaces\AxisInnovatorsBox\library\jcef\cache\Default\shared_proto_db\metadata/000003.log

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"user_experience_metrics.stability.exited_cleanly":false,"variations_crash_streak":595}
{"user_experience_metrics.stability.exited_cleanly":false,"variations_crash_streak":597}

View File

@@ -1,4 +1,3 @@
[4944:21460:0102/174655.052:WARNING:account_consistency_mode_manager.cc(77)] Desktop Identity Consistency cannot be enabled as no OAuth client ID and client secret have been configured.
[4944:21460:0102/174655.144:WARNING:extension_service.cc(2065)] Found external version of extension ncennffkjdiamlpmcbajkmaiiiddgioothat is older than current version. Current version is: 3.52.14. New version is: 3.52.5. Keeping current version.
[5764:9508:0102/174655.913:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[5060:21232:0102/174855.188:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[21000:23644:0102/183652.188:WARNING:account_consistency_mode_manager.cc(77)] Desktop Identity Consistency cannot be enabled as no OAuth client ID and client secret have been configured.
[21000:23644:0102/183652.220:WARNING:extension_service.cc(2065)] Found external version of extension ncennffkjdiamlpmcbajkmaiiiddgioothat is older than current version. Current version is: 3.52.14. New version is: 3.52.5. Keeping current version.
[16896:6088:0102/183652.521:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
#FileLock
#Fri Jan 02 17:46:53 CST 2026
#Fri Jan 02 18:36:51 CST 2026
hostName=192.168.116.1
id=19b7e1a4b3ed8755d1cb7723021bb5b3ae83bb80d46
id=19b7e480ce06e1cbe3dba3b505e2cafb4d7d6da1e3d
method=file
server=192.168.116.1\:64658
server=192.168.116.1\:52019

View File

@@ -198,3 +198,21 @@ DELETE TABLE add [42001-220]
2025-12-15 10:39:48 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "DELETE [*]/?"; expected "identifier"; SQL statement:
DELETE /? [42001-220]
2026-01-02 17:47:29 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]dec"; expected "DELETE, DROP, DECLARE, DEALLOCATE"; SQL statement:
dec [42001-220]
2026-01-02 17:47:36 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]DISTINCT"; SQL statement:
DISTINCT [42000-220]
2026-01-02 17:47:44 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]DISTINCT INFORMATION_SCHEMA"; SQL statement:
DISTINCT INFORMATION_SCHEMA [42000-220]
2026-01-02 17:48:07 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "Structure[*] "; SQL statement:
Structure [42000-220]
2026-01-02 17:48:10 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]Structure"; expected "SAVEPOINT, SCRIPT, SHUTDOWN, SHOW"; SQL statement:
Structure [42001-220]
2026-01-02 18:37:21 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]ues PUBLIC"; expected "UPDATE, USE"; SQL statement:
ues PUBLIC [42001-220]

View File

@@ -3,6 +3,8 @@ package com.axis.innovators.box.python;
import com.axis.innovators.box.AxisInnovatorsBox;
import com.axis.innovators.box.window.MainWindow;
import com.axis.innovators.box.register.LanguageManager;
import com.axis.innovators.box.window.util.ToolCategory;
import com.axis.innovators.box.window.util.ToolItem;
import javax.swing.*;
import java.awt.event.ActionEvent;
@@ -22,11 +24,11 @@ public class PyLocalSide {
);
LanguageManager.addLanguage(language);
}
public static MainWindow.ToolCategory getToolCategory(String name,
public static ToolCategory getToolCategory(String name,
String icon,
String description) {
return new MainWindow.ToolCategory(name, icon, description);
return new ToolCategory(name, icon, description);
}
public static Action getAction(Runnable runnable){
@@ -37,16 +39,16 @@ public class PyLocalSide {
}
};
}
public static MainWindow.ToolItem getToolItem(String title,
public static ToolItem getToolItem(String title,
String icon,
String description,
int id,
Action action){
System.out.println(action);
return new MainWindow.ToolItem(title, icon, description, id, action);
return new ToolItem(title, icon, description, id, action);
}
public static void addToolCategory(MainWindow.ToolCategory category, String registeredName){
public static void addToolCategory(ToolCategory category, String registeredName){
AxisInnovatorsBox.getMain().
getRegistrationTool().addToolCategory(category, registeredName);
}

View File

@@ -10,6 +10,8 @@ import com.axis.innovators.box.window.JarApiProfilingWindow;
import com.axis.innovators.box.window.MainWindow;
import com.axis.innovators.box.plugins.PluginDescriptor;
import com.axis.innovators.box.window.TaskbarAppearanceWindow;
import com.axis.innovators.box.window.util.ToolCategory;
import com.axis.innovators.box.window.util.ToolItem;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.tzd.lm.LM;
@@ -27,7 +29,7 @@ import java.util.UUID;
*/
public class RegistrationTool {
private static final Logger logger = LogManager.getLogger(RegistrationTool.class);
private final List<MainWindow.ToolCategory> toolCategories = new ArrayList<>();
private final List<ToolCategory> toolCategories = new ArrayList<>();
private final AxisInnovatorsBox main;
private final List<UUID> uuidList = new ArrayList<>();
private final List<String> registeredNameList = new ArrayList<>();
@@ -39,11 +41,11 @@ public class RegistrationTool {
// 判断系统是否支持
if (BuildInformation.isMatchSystem(BuildSystem.WINDOWS)
|| BuildInformation.isMatchSystem(BuildSystem.UNKNOWN)) {
MainWindow.ToolCategory debugCategory = new MainWindow.ToolCategory("调试工具",
ToolCategory debugCategory = new ToolCategory("调试工具",
"debug/debug.png",
"用于调试指定Windows工具的一个分类");
debugCategory.addTool(new MainWindow.ToolItem("Frida注入工具", "debug/frida/frida_main.png",
debugCategory.addTool(new ToolItem("Frida注入工具", "debug/frida/frida_main.png",
"使用frida注入目标进程的脚本程序 " +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -54,10 +56,10 @@ public class RegistrationTool {
}
}));
MainWindow.ToolCategory programmingToolsCategory = new MainWindow.ToolCategory("编程工具",
ToolCategory programmingToolsCategory = new ToolCategory("编程工具",
"programming/programming.png",
"编程工具");
programmingToolsCategory.addTool(new MainWindow.ToolItem("JarApi查看器", "programming/JarApiViewer/JarApi_Viewer.png",
programmingToolsCategory.addTool(new ToolItem("JarApi查看器", "programming/JarApiViewer/JarApi_Viewer.png",
"查看Jar内的方法以及其注解" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -68,7 +70,7 @@ public class RegistrationTool {
}
}));
programmingToolsCategory.addTool(new MainWindow.ToolItem("C语言编辑器", "programming/LanguageEditor/file-editing.png",
programmingToolsCategory.addTool(new ToolItem("C语言编辑器", "programming/LanguageEditor/file-editing.png",
"C语言编译器智能化的idea" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -78,7 +80,7 @@ public class RegistrationTool {
}
}));
programmingToolsCategory.addTool(new MainWindow.ToolItem("多语言在线执行(当遇到无限循环时会抛出错误)", "programming/LanguageEditor/file-editing.png",
programmingToolsCategory.addTool(new ToolItem("多语言在线执行(当遇到无限循环时会抛出错误)", "programming/LanguageEditor/file-editing.png",
"多语言在线执行,当遇到无限循环时会抛出错误" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -88,7 +90,7 @@ public class RegistrationTool {
}
}));
programmingToolsCategory.addTool(new MainWindow.ToolItem("数据库管理工具", "programming/programming_dark.png",
programmingToolsCategory.addTool(new ToolItem("数据库管理工具", "programming/programming_dark.png",
"用于管理数据库" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -98,7 +100,7 @@ public class RegistrationTool {
}
}));
programmingToolsCategory.addTool(new MainWindow.ToolItem("Linux终端工具", "programming/linux.png",
programmingToolsCategory.addTool(new ToolItem("Linux终端工具", "programming/linux.png",
"用于启动一个Linux终端" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -108,7 +110,7 @@ public class RegistrationTool {
}
}));
programmingToolsCategory.addTool(new MainWindow.ToolItem("MySql控制台", "programming/mysql.png",
programmingToolsCategory.addTool(new ToolItem("MySql控制台", "programming/mysql.png",
"用于启动一个MySql控制台" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -118,11 +120,11 @@ public class RegistrationTool {
}
}));
MainWindow.ToolCategory aICategory = new MainWindow.ToolCategory("AI工具",
ToolCategory aICategory = new ToolCategory("AI工具",
"ai/ai.png",
"人工智能/大语言模型");
aICategory.addTool(new MainWindow.ToolItem("本地AI执行工具", "ai/local/local_main.png",
aICategory.addTool(new ToolItem("本地AI执行工具", "ai/local/local_main.png",
"在本机对开源大语言模型进行推理" +
"\n作者tzdwindows 7", ++id, new AbstractAction() {
@Override
@@ -144,12 +146,12 @@ public class RegistrationTool {
}
}));
MainWindow.ToolCategory hahahah = new MainWindow.ToolCategory(
ToolCategory hahahah = new ToolCategory(
"good工具",
"haha/ok.png",
"good "
);
hahahah.addTool(new MainWindow.ToolItem("123", "ai/local/local_main.png",
hahahah.addTool(new ToolItem("123", "ai/local/local_main.png",
"456789" +
"\n作者Vinfya", ++id, new AbstractAction() {
@Override
@@ -162,10 +164,10 @@ public class RegistrationTool {
}));
MainWindow.ToolCategory systemCategory = new MainWindow.ToolCategory("系统工具",
ToolCategory systemCategory = new ToolCategory("系统工具",
"windows/windows.png",
"系统工具");
systemCategory.addTool(new MainWindow.ToolItem("任务栏主题设置", "windows/windowsOptimization/windowsOptimization.png",
systemCategory.addTool(new ToolItem("任务栏主题设置", "windows/windowsOptimization/windowsOptimization.png",
"可以设置Windows任务栏的颜色等各种信息", ++id, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
@@ -187,7 +189,7 @@ public class RegistrationTool {
* 注册ToolCategory
* @param toolCategory ToolCategory
*/
private boolean addSystemToolCategory(MainWindow.ToolCategory toolCategory,
private boolean addSystemToolCategory(ToolCategory toolCategory,
String registeredName) {
registeredName = "system:" + registeredName;
if (!main.isWindow()) {
@@ -208,7 +210,7 @@ public class RegistrationTool {
* 注册ToolCategory
* @param toolCategory ToolCategory
*/
public boolean addToolCategory(MainWindow.ToolCategory toolCategory,
public boolean addToolCategory(ToolCategory toolCategory,
String registeredName) {
if (!main.isWindow()) {
if (registeredNameList.contains(registeredName)) {
@@ -228,7 +230,7 @@ public class RegistrationTool {
* 注册ToolCategory
* @param toolCategory ToolCategory
*/
public void addToolCategory(MainWindow.ToolCategory toolCategory,
public void addToolCategory(ToolCategory toolCategory,
PluginDescriptor pluginDescriptor,
String registeredName) {
if (addToolCategory(toolCategory,
@@ -243,9 +245,9 @@ public class RegistrationTool {
* @param id UUID
* @return ToolCategory对象
*/
public MainWindow.ToolCategory getToolCategory(UUID id) {
public ToolCategory getToolCategory(UUID id) {
if (!main.isWindow()) {
for (MainWindow.ToolCategory toolCategory : toolCategories) {
for (ToolCategory toolCategory : toolCategories) {
if (toolCategory.getId().equals(id)) {
return toolCategory;
}
@@ -274,7 +276,7 @@ public class RegistrationTool {
return null;
}
public List<MainWindow.ToolCategory> getToolCategories() {
public List<ToolCategory> getToolCategories() {
return toolCategories;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
package com.axis.innovators.box.window.util;
import javax.swing.*;
import javax.swing.plaf.basic.BasicScrollBarUI;
import java.awt.*;
public class CustomScrollBarUI extends BasicScrollBarUI {
@Override protected void configureScrollBarColors() {
this.thumbColor = UIManager.getColor("ScrollBar.thumb");
if (thumbColor == null) thumbColor = new Color(160, 160, 180);
this.trackColor = UIManager.getColor("ScrollBar.track");
if (trackColor == null) trackColor = new Color(245, 245, 248);
}
@Override protected JButton createDecreaseButton(int orientation) { return createInvisibleButton(); }
@Override protected JButton createIncreaseButton(int orientation) { return createInvisibleButton(); }
private JButton createInvisibleButton() {
JButton btn = new JButton(); btn.setPreferredSize(new Dimension(0,0)); btn.setBorder(null); return btn;
}
@Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(thumbColor);
g2.fillRoundRect(thumbBounds.x + 2, thumbBounds.y + 2, Math.max(6, thumbBounds.width - 4), Math.max(10, thumbBounds.height - 4), 8, 8);
g2.dispose();
}
}

View File

@@ -0,0 +1,163 @@
package com.axis.innovators.box.window.util;
import javax.swing.*;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Point2D;
public class RoundedSearchField extends JPanel {
private final JTextField textField;
private int targetWidth;
private float animProgress = 0f;
private Timer animTimer;
private final int baseWidth;
private final int heightPx;
// 动画相关变量
private float glowPosition = 0f;
private final Timer glowTimer;
public Color defaultBorderColor;
private boolean focused = false;
public RoundedSearchField(int baseWidth, int heightPx) {
this.baseWidth = baseWidth;
this.heightPx = heightPx;
this.targetWidth = baseWidth;
setOpaque(false);
setLayout(new BorderLayout());
// 获取系统默认边框色
defaultBorderColor = UIManager.getColor("TextField.borderColor");
if (defaultBorderColor == null) {
defaultBorderColor = new Color(180, 180, 180); // 备用默认色
}
textField = new JTextField();
textField.setBorder(BorderFactory.createEmptyBorder(6, 10, 6, 10));
textField.setOpaque(false);
textField.setFont(UIManager.getFont("TextField.font"));
setPreferredSize(new Dimension(baseWidth, heightPx));
add(textField, BorderLayout.CENTER);
// 焦点监听器
textField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
focused = true;
animateTo(baseWidth + 80);
glowTimer.start();
}
@Override
public void focusLost(FocusEvent e) {
focused = false;
animateTo(baseWidth);
glowTimer.stop();
repaint();
}
});
// 点击面板聚焦文本框
addMouseListener(new MouseAdapter() {
@Override public void mouseClicked(MouseEvent e) {
textField.requestFocusInWindow();
}
});
// 尺寸动画定时器
animTimer = new Timer(16, ae -> {
int curW = getWidth();
int diff = targetWidth - curW;
if (Math.abs(diff) <= 1) {
setPreferredSize(new Dimension(targetWidth, heightPx));
revalidate();
repaint();
animTimer.stop();
} else {
int step = Math.max(1, Math.abs(diff) / 6);
int newW = curW + (diff > 0 ? step : -step);
setPreferredSize(new Dimension(newW, heightPx));
revalidate();
repaint();
}
});
// 发光动画定时器
glowTimer = new Timer(30, e -> {
glowPosition = (glowPosition + 0.03f) % 1f;
repaint();
});
}
public void updateThemeColors() {
defaultBorderColor = UIManager.getColor("TextField.borderColor");
if (defaultBorderColor == null) {
defaultBorderColor = new Color(180, 180, 180);
}
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
int arc = heightPx / 2; // 圆角半径
int borderThickness = focused ? 2 : 1;
// 绘制背景
g2d.setColor(getBackground());
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), arc, arc);
// 绘制边框
if (focused) {
// 流动彩虹渐变
float[] fractions = {0f, 0.25f, 0.5f, 0.75f, 1f};
Color[] colors = {
new Color(255, 0, 0, 200), // 红
new Color(255, 165, 0, 200), // 橙
new Color(0, 255, 0, 200), // 绿
new Color(0, 191, 255, 200), // 蓝
new Color(148, 0, 211, 200) // 紫
};
// 创建循环渐变
Point2D start = new Point2D.Float(getWidth() * glowPosition, 0);
Point2D end = new Point2D.Float(getWidth() * glowPosition + getWidth(), 0);
LinearGradientPaint gradient = new LinearGradientPaint(
start, end, fractions, colors
);
g2d.setPaint(gradient);
g2d.setStroke(new BasicStroke(2.5f));
} else {
g2d.setColor(defaultBorderColor);
g2d.setStroke(new BasicStroke(1f));
}
g2d.drawRoundRect(borderThickness/2, borderThickness/2,
getWidth() - borderThickness, getHeight() - borderThickness,
arc, arc);
// 添加发光效果
if (focused) {
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f));
g2d.setStroke(new BasicStroke(4f));
g2d.drawRoundRect(0, 0, getWidth(), getHeight(), arc, arc);
}
g2d.dispose();
}
void animateTo(int w) {
this.targetWidth = w;
if (!animTimer.isRunning()) animTimer.start();
}
public String getText() { return textField.getText(); }
public void setText(String t) { textField.setText(t); }
public void addActionListener(ActionListener l) { textField.addActionListener(l); }
public void addDocumentListener(DocumentListener dl) { textField.getDocument().addDocumentListener(dl); }
}

View File

@@ -0,0 +1,47 @@
package com.axis.innovators.box.window.util;
import com.axis.innovators.box.AxisInnovatorsBox;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class ToolCategory {
private final String name;
private final String icon;
private final ImageIcon iconImage;
private final String description;
private final UUID id = UUID.randomUUID();
private final List<ToolItem> tools = new ArrayList<>();
/**
* 分类
* @param name 分类名称
* @param icon 分类的图标
* @param description 分类的描述
*/
public ToolCategory(String name, String icon, String description) {
this.name = name; this.icon = icon; this.description = description; this.iconImage = null;
}
public ToolCategory(String name, ImageIcon icon, String description) {
this.name = name; this.iconImage = icon; this.description = description; this.icon = null;
}
/**
* 在当前分类中创建一个新的工具卡片
* @param tool 工具卡片
*/
public void addTool(ToolItem tool) { tools.add(tool); }
public String getDescription() { return description; }
public String getIcon() {
if (AxisInnovatorsBox.getMain().getRegistrationTopic().isDarkMode()) {
return icon.replace(".png", "_dark.png");
}
return icon;
}
public String getName() { return name; }
public List<ToolItem> getTools() { return tools; }
public ImageIcon getIconImage() { return iconImage; }
public UUID getId() { return id; }
}

View File

@@ -0,0 +1,35 @@
package com.axis.innovators.box.window.util;
import javax.swing.*;
public class ToolItem {
private final ImageIcon imageIcon;
private final String title;
private final String icon;
private final String description;
private final int id;
private final Action action;
/**
* 创建一个新的工具
* @param title 工具的标题
* @param icon 工具的图标
* @param description 工具的介绍
* @param id 工具的id不要重复即可
* @param action 点击工具卡片后触发的事件
*/
public ToolItem(String title, String icon, String description, int id, Action action) {
this.title = title; this.icon = icon; this.description = description; this.id = id; this.action = action; this.imageIcon = null;
}
public ToolItem(String title, ImageIcon icon, String description, int id, Action action) {
this.title = title; this.imageIcon = icon; this.description = description; this.id = id; this.action = action; this.icon = null;
}
public String getTitle() { return title; }
public ImageIcon icon() { return imageIcon; }
public String getIcon() { return icon; }
public Action getAction() { return action; }
public ImageIcon getImageIcon() { return imageIcon; }
public int getId() { return id; }
public String getDescription() { return description; }
public String getName() { return title; }
}

View File

@@ -0,0 +1,85 @@
package com.axis.innovators.box.window.util;
import javax.swing.*;
import java.awt.*;
public class WrapLayout extends FlowLayout {
public WrapLayout(int align, int hgap, int vgap) {
super(align, hgap, vgap);
}
@Override
public Dimension preferredLayoutSize(Container target) {
return layoutSize(target, true);
}
@Override
public Dimension minimumLayoutSize(Container target) {
Dimension minimum = layoutSize(target, false);
minimum.width -= (getHgap() + 1);
return minimum;
}
private Dimension layoutSize(Container target, boolean preferred) {
synchronized (target.getTreeLock()) {
int targetWidth = target.getWidth();
if (targetWidth == 0)
targetWidth = Integer.MAX_VALUE;
int hgap = getHgap();
int vgap = getVgap();
Insets insets = target.getInsets();
int horizontalInsetsAndGap = insets.left + insets.right + (hgap * 2);
int maxWidth = targetWidth - horizontalInsetsAndGap;
Dimension dim = new Dimension(0, 0);
int rowWidth = 0;
int rowHeight = 0;
int nmembers = target.getComponentCount();
for (int i = 0; i < nmembers; i++) {
Component m = target.getComponent(i);
if (m.isVisible()) {
Dimension d = preferred ? m.getPreferredSize() : m.getMinimumSize();
if (rowWidth + d.width > maxWidth) {
addRow(dim, rowWidth, rowHeight);
rowWidth = 0;
rowHeight = 0;
}
if (rowWidth != 0) {
rowWidth += hgap;
}
rowWidth += d.width;
rowHeight = Math.max(rowHeight, d.height);
}
}
addRow(dim, rowWidth, rowHeight);
dim.width += horizontalInsetsAndGap;
dim.height += insets.top + insets.bottom + vgap * 2;
// 确保容器至少有这点大小
Container parent = target.getParent();
if (parent instanceof JScrollPane) {
dim.width = targetWidth; // 强制宽度匹配
}
return dim;
}
}
private void addRow(Dimension dim, int rowWidth, int rowHeight) {
dim.width = Math.max(dim.width, rowWidth);
if (dim.height > 0) {
dim.height += getVgap();
}
dim.height += rowHeight;
}
}

View File

@@ -1,4 +1,4 @@
# Auto-generated build information
version=0.0.1
buildTimestamp=2026-01-02T17:46:06.8226378
buildTimestamp=2026-01-02T18:36:04.5818254
buildSystem=WINDOWS

View File

@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- packages 属性必须指向你存放 CommandPanelAppender 的包名 -->
<Configuration status="WARN" packages="com.chuangzhou.vivid2D.log">
<Configuration status="WARN">
<Appenders>
<!-- 1. 定义你的自定义 UI Appender -->
<CommandPanelAppender name="GuiAppender">
<PatternLayout pattern="[%t] [%d{yyyy-MM-dd HH:mm:ss}] [%level] [%logger-%method()] %msg%n"/>
</CommandPanelAppender>
<!-- 已删除 CommandPanelAppender -->
<!-- 固定日志文件 -->
<RollingFile name="MainFileAppender"
@@ -34,7 +30,7 @@
</Policies>
</RollingFile>
<!-- 控制台输出 (IDE使用),添加 follow="true" 确保拦截 -->
<!-- 控制台输出 (IDE使用),添加 follow="true" 确保拦截 System.out -->
<Console name="Console" target="SYSTEM_OUT" follow="true">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%t] [%d{yyyy-MM-dd HH:mm:ss}] [%level] [%logger-%method()] %msg%n%throwable"/>
@@ -43,8 +39,7 @@
<Loggers>
<Root level="debug">
<!-- 2. 必须在这里引用 GuiAppender 才能生效 -->
<AppenderRef ref="GuiAppender"/>
<!-- 已删除 GuiAppender 引用 -->
<AppenderRef ref="Console"/>
<AppenderRef ref="MainFileAppender"/>
<AppenderRef ref="SessionFileAppender"/>