diff --git a/.gitignore b/.gitignore
index 1be5131b1bc726ba4e03a73f6fa61fc3fc13458b..0aacdeaa12de0d0cf0497a75f078f301d71e7103 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,7 +10,7 @@ devLibs
system_plugin_list.json
RUNNING_PID
-gradle
+#gradle
.gradle
build
out
diff --git a/README.md b/README.md
index 1872cd1c8bfaa4f52c33a739d33caaa5a5164343..93ed6f413b6962a351090fd681dc0387e4e78a79 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ xJavaFxTool是使用javaFx开发的实用小工具集,利用业余时间把工
- [相关小游戏](https://gitee.com/xwintop/xJavaFxTool-Games)
#### 环境搭建说明:
-- 开发环境为jdk17,基于maven3.6.3构建
+- 开发环境为jdk17,基于gradle8.5构建
- 使用eclipase或Intellij Idea开发,推荐使用[Intellij Idea](https://www.jetbrains.com/idea/?from=xJavaFxTool)
- 本项目使用了[lombok](https://projectlombok.org/),在查看本项目时如果您没有下载lombok 插件,请先安装,不然找不到get/set等方法
- 依赖的[xcore包](https://gitee.com/xwintop/xcore)已上传至git托管的maven平台,git托管maven可参考教程(若无法下载请拉取项目自行编译)。[教程地址:点击进入](http://blog.csdn.net/u011747754/article/details/78574026)
diff --git a/build.gradle b/build.gradle
index d1d0c8965e5cbe2ad7095c18feb95b8013e64539..165e866d5d36916a670f5a5f13a52ccf45559cfd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,26 +1,24 @@
-buildscript {
- repositories {
- mavenCentral()
- maven {
- allowInsecureProtocol = true
- url "https://plugins.gradle.org/m2/"
- }
- }
+//buildscript {
+// repositories {
+// mavenCentral()
+// maven {
+// allowInsecureProtocol = true
+// url "https://plugins.gradle.org/m2/"
+// }
+// }
// dependencies {
// classpath 'org.openjfx:javafx-plugin:0.1.0'
// }
-}
+//}
plugins {
id "org.gradlex.extra-java-module-info" version "1.7"
-// id "org.beryx.jlink" version "2.26.0"
id "org.openjfx.javafxplugin" version "0.1.0"
- id "com.gluonhq.gluonfx-gradle-plugin" version "1.0.22"
id 'idea'
id 'application'
id 'maven-publish'
}
-allprojects {
+subprojects {
ext {
springBootVersion = "2.7.18"
}
@@ -30,7 +28,7 @@ allprojects {
apply plugin: 'application'
apply plugin: 'maven-publish' // 引入maven插件
apply plugin: 'org.openjfx.javafxplugin'
- sourceCompatibility = 17
+// sourceCompatibility = 17
test {//跳过测试
enabled = false
}
@@ -58,16 +56,16 @@ allprojects {
annotationProcessor 'org.projectlombok:lombok:1.18.30'
testCompileOnly 'org.projectlombok:lombok:1.18.30'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.30'
-// api 'org.openjfx:javafx-controls:21.0.1'
-// api 'org.openjfx:javafx-base:21.0.1'
-// api 'org.openjfx:javafx-graphics:21.0.1'
-// api 'org.openjfx:javafx-fxml:21.0.1'
-// api 'org.openjfx:javafx-swing:21.0.1'
-// api 'org.openjfx:javafx-media:21.0.1'
-// api 'org.openjfx:javafx-web:21.0.1'
+// api 'org.openjfx:javafx-controls:21.0.2'
+// api 'org.openjfx:javafx-base:21.0.2'
+// api 'org.openjfx:javafx-graphics:21.0.2'
+// api 'org.openjfx:javafx-fxml:21.0.2'
+// api 'org.openjfx:javafx-swing:21.0.2'
+// api 'org.openjfx:javafx-media:21.0.2'
+// api 'org.openjfx:javafx-web:21.0.2'
}
javafx {
- version = "21.0.1"
+ version = "21.0.2"
modules = ['javafx.controls', "javafx.graphics", 'javafx.fxml', 'javafx.media', 'javafx.swing', 'javafx.web']
// configuration = 'compileOnly'
}
diff --git a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/RedisToolMain.java b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/RedisToolMain.java
index 3a9de9e6e9d5b3036ab856512ddf1807af6132e0..81ad58de1f81efb2763c04d2dc144ca4a8853735 100644
--- a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/RedisToolMain.java
+++ b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/RedisToolMain.java
@@ -1,6 +1,6 @@
package com.xwintop.xJavaFxTool;
-import com.xwintop.xJavaFxTool.utils.VersionChecker;
+import com.xwintop.xcore.util.VersionChecker;
import com.xwintop.xcore.util.javafx.JavaFxSystemUtil;
import javafx.application.Application;
import javafx.event.EventHandler;
diff --git a/debugTools/x-ZookeeperTool/src/test/java/com/xwintop/xJavaFxPlugIn/AppTest.java b/debugTools/x-ZookeeperTool/src/test/java/com/xwintop/xJavaFxPlugIn/AppTest.java
deleted file mode 100644
index b29f6bc75877b88abdbd644d2597569eaf437ca6..0000000000000000000000000000000000000000
--- a/debugTools/x-ZookeeperTool/src/test/java/com/xwintop/xJavaFxPlugIn/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.xwintop.xJavaFxPlugIn;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/developTools/x-PathWatchTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/PathWatchToolService.java b/developTools/x-PathWatchTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/PathWatchToolService.java
index c8d57ffce4b6318e10515e52b765e55c9fe2c8be..8e861195e1cbc87ee156e7f5c10a5e2f055d60e8 100644
--- a/developTools/x-PathWatchTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/PathWatchToolService.java
+++ b/developTools/x-PathWatchTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/PathWatchToolService.java
@@ -47,7 +47,7 @@ public class PathWatchToolService {
return;
}
if (thread != null) {
- thread.stop();
+ thread.interrupt();
}
boolean fileNameSRegex = pathWatchToolController.getFileNameSupportRegexCheckBox().isSelected();
String fileNameContains = pathWatchToolController.getFileNameContainsTextField().getText();
@@ -138,7 +138,7 @@ public class PathWatchToolService {
public void stopWatchAction() {
if (thread != null) {
- thread.stop();
+ thread.interrupt();
thread = null;
}
}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000000000000000000000000000000000..1af9e0930b89b3294ea6a195f0808aafd36fafe8
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/javaFxTools/x-JavaFxXmlToObjectCode/src/test/java/com/xwintop/xJavaFxTool/javafx/tool/TableBeanTool.java b/javaFxTools/x-JavaFxXmlToObjectCode/src/test/java/com/xwintop/xJavaFxTool/javafx/tool/TableBeanTool.java
index 038af88ab71cf9d3e55d8390092b10cc963681f9..ef219273a7d083b6b85dadb5d18de358d15e5d46 100644
--- a/javaFxTools/x-JavaFxXmlToObjectCode/src/test/java/com/xwintop/xJavaFxTool/javafx/tool/TableBeanTool.java
+++ b/javaFxTools/x-JavaFxXmlToObjectCode/src/test/java/com/xwintop/xJavaFxTool/javafx/tool/TableBeanTool.java
@@ -1,8 +1,8 @@
package com.xwintop.xJavaFxTool.javafx.tool;
-import com.xwintop.xcore.util.StrUtil;
+import cn.hutool.core.util.StrUtil;
import org.apache.commons.lang3.reflect.FieldUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.lang.reflect.Field;
@@ -27,7 +27,7 @@ public class TableBeanTool {
String typeName = field.getType().getSimpleName();
String typeSimpleName = typeName.substring(6, typeName.indexOf("Property"));
String typeClassName = typeName.substring(6);
- String UpFieldName = StrUtil.firstToUpCase(fieldName);
+ String UpFieldName = StrUtil.upperFirst(fieldName);
stringBuffer.append(typeSimpleName).append(" "+fieldName+",");
stringBuffer2.append("this."+fieldName+" = new "+typeName+"("+fieldName+");\n");
diff --git a/littleTools/x-BookManageSystem/src/test/java/com/xwintop/xJavaFxPlugIn/AppTest.java b/littleTools/x-BookManageSystem/src/test/java/com/xwintop/xJavaFxPlugIn/AppTest.java
deleted file mode 100644
index b29f6bc75877b88abdbd644d2597569eaf437ca6..0000000000000000000000000000000000000000
--- a/littleTools/x-BookManageSystem/src/test/java/com/xwintop/xJavaFxPlugIn/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.xwintop.xJavaFxPlugIn;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/littleTools/x-ImageTool/src/main/resources/config/toolFxmlLoaderConfiguration.xml b/littleTools/x-ImageTool/src/main/resources/config/toolFxmlLoaderConfiguration.xml
index 835052ac9f9913f65cd60fc3320e0ce3f5c8a69e..d557c1b0bf169e69fcf9530b120aa0afaeb04160 100644
--- a/littleTools/x-ImageTool/src/main/resources/config/toolFxmlLoaderConfiguration.xml
+++ b/littleTools/x-ImageTool/src/main/resources/config/toolFxmlLoaderConfiguration.xml
@@ -6,7 +6,7 @@
locale.ImageTool
Title
- /images/ImageToolIcon.png
+ /images/ImageToolIcon.png
p-littleTools
diff --git a/netWorkTools/x-WebCronExpBuilder/src/test/java/com/xwintop/xJavaFxTool/AppTest.java b/netWorkTools/x-WebCronExpBuilder/src/test/java/com/xwintop/xJavaFxTool/AppTest.java
deleted file mode 100644
index a56354694f619b61227337ce23fa33137468a85d..0000000000000000000000000000000000000000
--- a/netWorkTools/x-WebCronExpBuilder/src/test/java/com/xwintop/xJavaFxTool/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.xwintop.xJavaFxTool;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/netWorkTools/x-WebJsonEditor/src/test/java/com/xwintop/xJavaFxTool/AppTest.java b/netWorkTools/x-WebJsonEditor/src/test/java/com/xwintop/xJavaFxTool/AppTest.java
deleted file mode 100644
index a56354694f619b61227337ce23fa33137468a85d..0000000000000000000000000000000000000000
--- a/netWorkTools/x-WebJsonEditor/src/test/java/com/xwintop/xJavaFxTool/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.xwintop.xJavaFxTool;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/settings.gradle b/settings.gradle
index 4b8cbb6f40dfc69e256fba6f4ede88aa8749f47a..df0deba513bbd9fe28d3d8f1fbe03b8193833dca 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -41,7 +41,7 @@ include("debugTools:x-FtpServer")
include("debugTools:x-HbaseTool")
include("debugTools:x-HttpTool")
include("debugTools:x-KafkaTool")
-include("debugTools:x-KeyTool")
+//include("debugTools:x-KeyTool")
include("debugTools:x-RedisTool")
include("debugTools:x-ScriptEngineTool")
include("debugTools:x-ZookeeperTool")
diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle
index a48120547c14d683d2cb36150d4c5b10ffe4c5a8..c9cd67bcfd36360725203803b19b4bb09f31892f 100644
--- a/xJavaFxTool/build.gradle
+++ b/xJavaFxTool/build.gradle
@@ -1,85 +1,100 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ maven {
+ allowInsecureProtocol = true
+ url "https://sandec.jfrog.io/artifactory/repo"
+ }
+ }
+
+ dependencies {
+ classpath "one.jpro:jpro-gradle-plugin:2024.1.0"
+ }
+}
plugins {
// id "org.beryx.jlink" version "2.26.0"
id 'org.beryx.runtime' version '1.12.7'
- id "org.openjfx.javafxplugin" version "0.1.0"
id "com.gluonhq.gluonfx-gradle-plugin" version "1.0.22"
}
+apply plugin: 'jpro-gradle-plugin'
+
dependencies {
api project(':xcore')
+ implementation "com.sandec.jpro:jpro-webapi:2024.1.0"
api project(":littleTools:x-EncryptAndDecrypt")
- api project(":littleTools:x-ZHConverter")
- api project(":littleTools:x-ImageTool")
- api project(":littleTools:x-IconTool")
- api project(":littleTools:x-PdfConvertTool")
- api project(":littleTools:x-QRCodeBuilder")
- api project(":littleTools:x-FileCopy")
- api project(":littleTools:x-FileMergeTool")
- api project(":littleTools:x-TimeTool")
- api project(":littleTools:x-CharacterConverter")
- api project(":littleTools:x-BookManageSystem")
- api project(":littleTools:x-CoordinateTransformTool")
- api project(":littleTools:x-ElementaryArithmeticProblemTool")
- api project(":littleTools:x-CronExpBuilder")
- api project(":littleTools:x-EmailTool")
- api project(":littleTools:x-ExcelSplitTool")
- api project(":littleTools:x-FileBuildTool")
- api project(":littleTools:x-FileCompressTool")
- api project(":littleTools:x-FileRenameTool")
- api project(":littleTools:x-FileSearchTool")
- api project(":littleTools:x-HdfsTool")
- api project(":littleTools:x-ImageAnalysisTool")
- api project(":littleTools:x-JavaService")
- api project(":littleTools:x-LinuxPathToWindowsPath")
- api project(":littleTools:x-Mp3ConvertTool")
- api project(":littleTools:x-RelationshipCalculator")
- api project(":littleTools:x-SealBuilderTool")
- api project(":littleTools:x-SedentaryReminderTool")
- api project(":littleTools:x-SmsTool")
- api project(":debugTools:x-CmdTool")
- api project(":debugTools:x-ScanPortTool")
- api project(":debugTools:x-SwitchHostsTool")
- api project(":debugTools:x-SocketTool")
- api project(":debugTools:x-ActiveMqTool")
- api project(":debugTools:x-ExpressionParserTool")
- api project(":debugTools:x-FtpClientTool")
- api project(":debugTools:x-FtpServer")
- api project(":debugTools:x-HbaseTool")
- api project(":debugTools:x-HttpTool")
- api project(":debugTools:x-KafkaTool")
-// api project(":debugTools:x-KeyTool")
- api project(":debugTools:x-RedisTool")
- api project(":debugTools:x-ScriptEngineTool")
- api project(":debugTools:x-ZookeeperTool")
- api project(":codeTools:x-RegexTester")
- api project(":codeTools:x-RandomGeneratorTool")
- api project(":codeTools:x-IdCardGenerator")
- api project(":codeTools:x-CharsetDetectTool")
- api project(":codeTools:x-ColorCodeConverterTool")
- api project(":codeTools:x-EscapeCharacter")
- api project(":codeTools:x-FileUnicodeTransformationTool")
- api project(":codeTools:x-WebSourcesTool")
- api project(":developTools:x-AsciiPicTool")
- api project(":developTools:x-JsonConvertTool")
- api project(":developTools:x-ClipboardHistoryTool")
- api project(":developTools:x-DirectoryTreeTool")
- api project(":developTools:x-LuytenTool")
- api project(":developTools:x-PathWatchTool")
- api project(":assistTools:x-TextToSpeechTool")
- api project(":assistTools:x-DecompilerWxApkgTool")
- api project(":assistTools:x-IdiomDataTool")
- api project(":assistTools:x-WechatJumpGameTool")
- api project(":games:x-X2048")
- api project(":games:x-BullsAndCowsGame")
- api project(":games:x-Sudoku")
- api project(":games:x-ChineseChess")
- api project(":games:x-SnakeJavaFx")
- api project(":games:x-pet")
- api project(":javaFxTools:x-JavaFxXmlToObjectCode")
- api project(":javaFxTools:x-ShowSystemInfo")
- api project(":webTools:x-ShortURL")
- api project(":netWorkTools:x-WebCronExpBuilder")
- api project(":netWorkTools:x-WebJsonEditor")
+// api project(":littleTools:x-ZHConverter")
+// api project(":littleTools:x-ImageTool")
+// api project(":littleTools:x-IconTool")
+// api project(":littleTools:x-PdfConvertTool")
+// api project(":littleTools:x-QRCodeBuilder")
+// api project(":littleTools:x-FileCopy")
+// api project(":littleTools:x-FileMergeTool")
+// api project(":littleTools:x-TimeTool")
+// api project(":littleTools:x-CharacterConverter")
+// api project(":littleTools:x-BookManageSystem")
+// api project(":littleTools:x-CoordinateTransformTool")
+// api project(":littleTools:x-ElementaryArithmeticProblemTool")
+// api project(":littleTools:x-CronExpBuilder")
+// api project(":littleTools:x-EmailTool")
+// api project(":littleTools:x-ExcelSplitTool")
+// api project(":littleTools:x-FileBuildTool")
+// api project(":littleTools:x-FileCompressTool")
+// api project(":littleTools:x-FileRenameTool")
+// api project(":littleTools:x-FileSearchTool")
+// api project(":littleTools:x-HdfsTool")
+// api project(":littleTools:x-ImageAnalysisTool")
+// api project(":littleTools:x-JavaService")
+// api project(":littleTools:x-LinuxPathToWindowsPath")
+// api project(":littleTools:x-Mp3ConvertTool")
+// api project(":littleTools:x-RelationshipCalculator")
+// api project(":littleTools:x-SealBuilderTool")
+// api project(":littleTools:x-SedentaryReminderTool")
+// api project(":littleTools:x-SmsTool")
+// api project(":debugTools:x-CmdTool")
+// api project(":debugTools:x-ScanPortTool")
+// api project(":debugTools:x-SwitchHostsTool")
+// api project(":debugTools:x-SocketTool")
+// api project(":debugTools:x-ActiveMqTool")
+// api project(":debugTools:x-ExpressionParserTool")
+// api project(":debugTools:x-FtpClientTool")
+// api project(":debugTools:x-FtpServer")
+// api project(":debugTools:x-HbaseTool")
+// api project(":debugTools:x-HttpTool")
+// api project(":debugTools:x-KafkaTool")
+//// api project(":debugTools:x-KeyTool")
+// api project(":debugTools:x-RedisTool")
+// api project(":debugTools:x-ScriptEngineTool")
+// api project(":debugTools:x-ZookeeperTool")
+// api project(":codeTools:x-RegexTester")
+// api project(":codeTools:x-RandomGeneratorTool")
+// api project(":codeTools:x-IdCardGenerator")
+// api project(":codeTools:x-CharsetDetectTool")
+// api project(":codeTools:x-ColorCodeConverterTool")
+// api project(":codeTools:x-EscapeCharacter")
+// api project(":codeTools:x-FileUnicodeTransformationTool")
+// api project(":codeTools:x-WebSourcesTool")
+// api project(":developTools:x-AsciiPicTool")
+// api project(":developTools:x-JsonConvertTool")
+// api project(":developTools:x-ClipboardHistoryTool")
+// api project(":developTools:x-DirectoryTreeTool")
+// api project(":developTools:x-LuytenTool")
+// api project(":developTools:x-PathWatchTool")
+// api project(":assistTools:x-TextToSpeechTool")
+// api project(":assistTools:x-DecompilerWxApkgTool")
+// api project(":assistTools:x-IdiomDataTool")
+// api project(":assistTools:x-WechatJumpGameTool")
+// api project(":games:x-X2048")
+// api project(":games:x-BullsAndCowsGame")
+// api project(":games:x-Sudoku")
+// api project(":games:x-ChineseChess")
+// api project(":games:x-SnakeJavaFx")
+// api project(":games:x-pet")
+// api project(":javaFxTools:x-JavaFxXmlToObjectCode")
+// api project(":javaFxTools:x-ShowSystemInfo")
+// api project(":webTools:x-ShortURL")
+// api project(":netWorkTools:x-WebCronExpBuilder")
+// api project(":netWorkTools:x-WebJsonEditor")
}
group = 'com.xwintop'
@@ -87,13 +102,13 @@ version = '1.2.3'
description = 'xJavaFxTool'
compileJava {
- options.compilerArgs += ['--module-path', classpath.asPath]
+// options.compilerArgs += ['--module-path', classpath.asPath]
}
application {
applicationName = "xJavaFxTool"
mainModule.set("com.xwintop.xJavaFxTool")
- mainClass.set("com.xwintop.xJavaFxTool.XJavaFxToolMain")
+ mainClass.set("com.xwintop.xJavaFxTool.XJavaFxToolApplication")
applicationDefaultJvmArgs = [
// ZGC
"-XX:+UseZGC",
@@ -159,4 +174,12 @@ runtime {
// installerName = application.applicationName
// appVersion = version.toString()
// }
-//}
\ No newline at end of file
+//}
+
+gluonfx {
+ mainClassName = "com.xwintop.xJavaFxTool.XJavaFxToolMain"
+}
+
+jpro {
+ port = 8080
+}
\ No newline at end of file
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java
index 13eb18865fcb9f1a45b89f801181a00a27f120d3..9d636be6fc26a1c2b1fb6fc315db9253a5673165 100644
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java
+++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java
@@ -15,10 +15,10 @@ import com.xwintop.xJavaFxTool.controller.IndexController;
import com.xwintop.xJavaFxTool.utils.Config;
import com.xwintop.xJavaFxTool.utils.Config.Keys;
import com.xwintop.xJavaFxTool.utils.StageUtils;
-import com.xwintop.xJavaFxTool.utils.VersionChecker;
import com.xwintop.xJavaFxTool.utils.XJavaFxSystemUtil;
import com.xwintop.xcore.javafx.FxApp;
import com.xwintop.xcore.javafx.dialog.FxAlerts;
+import com.xwintop.xcore.util.VersionChecker;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.Event;
@@ -70,7 +70,7 @@ public class XJavaFxToolApplication extends Application {
loadClassicUI(primaryStage);
StageUtils.loadPrimaryStageBound(primaryStage);
- primaryStage.setOnShown(windowEvent -> VersionChecker.checkNewVersion());
+ primaryStage.setOnShown(windowEvent -> VersionChecker.checkerVersion("https://gitee.com/api/v5/repos/xwintop/xJavaFxTool/releases/latest", "https://gitee.com/xwintop/xJavaFxTool/releases", Config.xJavaFxToolVersions.substring(1)));
primaryStage.show();
}
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java
index a436273816cf93f6b0ef0317484cb3d23558897b..b1214ce0c9148e1055a64cdf65c2e35b29142734 100644
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java
+++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java
@@ -1,5 +1,7 @@
package com.xwintop.xJavaFxTool.controller;
+import com.jpro.webapi.HTMLView;
+import com.jpro.webapi.WebAPI;
import com.xwintop.xJavaFxTool.XJavaFxToolApplication;
import com.xwintop.xJavaFxTool.controller.index.PluginManageController;
import com.xwintop.xJavaFxTool.controller.plugin.PluginCategoryController;
@@ -12,12 +14,12 @@ import com.xwintop.xJavaFxTool.plugin.PluginParser;
import com.xwintop.xJavaFxTool.services.IndexService;
import com.xwintop.xJavaFxTool.services.index.SystemSettingService;
import com.xwintop.xJavaFxTool.utils.Config;
-import com.xwintop.xJavaFxTool.utils.VersionChecker;
import com.xwintop.xJavaFxTool.view.IndexView;
import com.xwintop.xcore.javafx.FxApp;
import com.xwintop.xcore.javafx.dialog.FxAlerts;
import com.xwintop.xcore.javafx.dialog.FxDialog;
import com.xwintop.xcore.util.ConfigureUtil;
+import com.xwintop.xcore.util.VersionChecker;
import com.xwintop.xcore.util.javafx.AlertUtil;
import com.xwintop.xcore.util.javafx.JavaFxSystemUtil;
import javafx.application.Platform;
@@ -29,6 +31,8 @@ import javafx.scene.control.MenuItem;
import javafx.scene.control.Tab;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
+import javafx.scene.web.WebEngine;
+import javafx.scene.web.WebView;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@@ -82,7 +86,15 @@ public class IndexController extends IndexView {
addNodepadAction(null);
}
this.indexService.addWebView(XJavaFxToolApplication.RESOURCE_BUNDLE.getString("feedback"), QQ_URL, null);
- this.tongjiWebView.getEngine().load(STATISTICS_URL);
+ if (WebAPI.isBrowser()) {
+ String contentIframe2 = "";
+ HTMLView browser = new HTMLView(contentIframe2);
+ pluginCategories.getChildren().add(browser);
+ } else {
+ WebView browser = new WebView();
+ WebEngine webEngine = browser.getEngine();
+ webEngine.load(STATISTICS_URL);
+ }
this.tabPaneMain.getSelectionModel().select(0);
}
@@ -93,6 +105,7 @@ public class IndexController extends IndexView {
private void initService() {
PluginManager pluginManager = PluginManager.getInstance();
+ pluginManager.loadDevPluginConfiguration();
pluginManager.loadLocalDevPluginConfiguration();
loadPlugins(); // 加载插件列表到界面上
AppEvents.addEventHandler(PluginEvent.PLUGIN_DOWNLOADED, pluginEvent -> loadPlugins());
@@ -112,6 +125,7 @@ public class IndexController extends IndexView {
pluginManager.loadLocalPlugins();
pluginManager.getEnabledPluginList().forEach(this::loadPlugin);
pluginManager.getDevPluginList().forEach(this::loadPlugin);
+ pluginManager.getLocalDevPluginList().forEach(this::loadPlugin);
}
/**
@@ -135,8 +149,8 @@ public class IndexController extends IndexView {
}
String categoryName = jarInfo.getIsFavorite() ? FAVORITE_CATEGORY_NAME : XJavaFxToolApplication.RESOURCE_BUNDLE.getString(menuParentTitle);
PluginCategoryController category = categoryControllers.computeIfAbsent(
- categoryName, __ -> {
- PluginCategoryController _category = PluginCategoryController.newInstance(categoryName);
+ categoryName, key -> {
+ PluginCategoryController _category = PluginCategoryController.newInstance(key);
addCategory(_category);
return _category;
}
@@ -232,9 +246,7 @@ public class IndexController extends IndexView {
@FXML
private void checkerVersionAction() {
- if (!VersionChecker.checkNewVersion()) {
- FxAlerts.info("提示", "已经是新版本");
- }
+ VersionChecker.checkerVersion("https://gitee.com/api/v5/repos/xwintop/xJavaFxTool/releases/latest","https://gitee.com/xwintop/xJavaFxTool/releases",Config.xJavaFxToolVersions.substring(1));
}
@FXML
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginManager.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginManager.java
index df1dc5ba31de01dd376ab9409d14e085f4ecf2a4..fa14e5f66df98f56ce5e65c1dfb9cea158c23b74 100644
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginManager.java
+++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginManager.java
@@ -5,14 +5,17 @@ import com.xwintop.xJavaFxTool.model.PluginJarInfo;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.IOException;
+import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Enumeration;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -35,6 +38,8 @@ public class PluginManager {
private final List devPluginList = new ArrayList<>(); // dev插件列表
+ private final List localDevPluginList = new ArrayList<>(); // 本地开发插件列表
+
public PluginManager() {
this.loadLocalPluginConfiguration();
}
@@ -68,7 +73,8 @@ public class PluginManager {
}
}
- public void loadLocalDevPluginConfiguration() {
+ //加载开发libs包中插件
+ public void loadDevPluginConfiguration() {
try {
// 系统类库路径
File libPath = new File("devLibs/");
@@ -89,7 +95,34 @@ public class PluginManager {
}
}
} catch (Exception e) {
- log.error("添加libs中jar包到系统中异常:", e);
+ log.error("添加devLibs中jar包到系统中异常:", e);
+ }
+ }
+
+ //加载本地开发插件
+ public void loadLocalDevPluginConfiguration() {
+ try {
+ Enumeration urlEnumeration = getClass().getClassLoader().getResources("config/toolFxmlLoaderConfiguration.xml");
+ while (urlEnumeration.hasMoreElements()) {
+ URL url = urlEnumeration.nextElement();
+ System.out.println(url.getPath());
+// if (!url.getPath().endsWith("x-FileUnicodeTransformationTool/out/production/resources/config/toolFxmlLoaderConfiguration.xml")) {
+// continue;
+// }
+// System.out.println(FileUtils.readFileToString(new File(url.getFile())));
+ try {
+ PluginJarInfo plugin = new PluginJarInfo();
+ plugin.setLocalPath(StringUtils.removeEnd(url.getPath(), "/config/toolFxmlLoaderConfiguration.xml"));
+ plugin.setIsEnable(true);
+ plugin.setIsDownload(true);
+ PluginParser.parse(url, plugin);
+ localDevPluginList.add(plugin);
+ } catch (Exception e) {
+ log.error("解析失败", e);
+ }
+ }
+ } catch (Exception e) {
+ log.error("添加子模块到系统中异常:", e);
}
}
@@ -105,6 +138,7 @@ public class PluginManager {
PluginParser.initParse(pluginFile, plugin);
} catch (Exception e) {
log.error("解析失败", e);
+ removeList.add(plugin);
}
} else {
removeList.add(plugin);
@@ -155,7 +189,7 @@ public class PluginManager {
try {
saveToFile();
} catch (IOException e) {
- log.error("", e);
+ log.error("saveToFile error", e);
}
}
}
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginParser.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginParser.java
index fa1a2bdfabdcaeecc45e2b63437e2d32f3bffea3..fcad78de3fbefc0e8228db2003df13799de01ee9 100644
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginParser.java
+++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/plugin/PluginParser.java
@@ -14,6 +14,7 @@ import org.dom4j.io.SAXReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -90,6 +91,53 @@ public class PluginParser {
}
}
+ public static void parse(URL pluginConfigUrl, PluginJarInfo pluginJarInfo) {
+ try {
+ File pluginConfigFile = new File(pluginConfigUrl.getFile());
+ ClassLoader classLoader = PluginClassLoader.create(pluginConfigFile);
+// FileUtils.readFileToString(new File(url.getFile()));
+ SAXReader saxReader = new SAXReader();
+ Document document = saxReader.read(new File(pluginConfigUrl.getFile()));
+ Element root = document.getRootElement();
+ List menuElements = selectElements(root, "/root/ToolFxmlLoaderConfiguration[@isMenu='true']");
+ Element pluginElement = selectSingleElement(root, "/root/ToolFxmlLoaderConfiguration[not(@isMenu)]");
+
+ Map menuTitles = new HashMap<>();
+ for (Element menuElement : menuElements) {
+ menuTitles.put(menuElement.attributeValue("menuId"), menuElement.attributeValue("title"));
+ }
+
+ String resourceBundleName = getChildNodeText(pluginElement, "resourceBundleName");
+ String title = getTitleFromResourceBundle(new File(pluginJarInfo.getLocalPath()), classLoader, pluginElement, resourceBundleName);
+ String menuId = getChildNodeText(pluginElement, "menuParentId");
+ String url = getChildNodeText(pluginElement, "url");
+ String controllerType = getChildNodeText(pluginElement, "controllerType");
+ String menuTitle = menuTitles.get(menuId);
+
+ pluginJarInfo.setMenuParentId(menuId);
+ pluginJarInfo.setMenuParentTitle(menuTitle);
+ pluginJarInfo.setBundleName(resourceBundleName);
+ pluginJarInfo.setControllerType(controllerType);
+ pluginJarInfo.setTitle(title);
+ pluginJarInfo.setIconPath(pluginElement.elementTextTrim("iconPath"));
+ if (StringUtils.isNotBlank(pluginJarInfo.getIconPath())) {
+// Image iconImage = new Image(new FileInputStream(pluginJarInfo.getLocalPath() + pluginJarInfo.getIconPath()));
+ Image iconImage = new Image(classLoader.getResourceAsStream(StringUtils.removeStart(pluginJarInfo.getIconPath(),"/")));
+ pluginJarInfo.setIconImage(iconImage);
+ }
+
+ if (controllerType.equals("Node")) {
+ pluginJarInfo.setFxmlPath(url);
+ } else if (controllerType.equals("WebView")) {
+ pluginJarInfo.setPagePath(url);
+ }
+
+ pluginJarInfo.setName(StringUtils.defaultString(pluginJarInfo.getName(), title));
+ } catch (Exception e) {
+ throw new AppException(e);
+ }
+ }
+
//简单解析插件信息
public static void initParse(File pluginFile, PluginJarInfo pluginJarInfo) {
try (JarFile jarFile = new JarFile(pluginFile)) {
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java
index 176d386a2cb993193509e11301e3ae19bc08cb78..a27db3dcd76f311c70a2eb95c14f324f85bfba2d 100644
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java
+++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java
@@ -1,5 +1,7 @@
package com.xwintop.xJavaFxTool.services;
+import com.jpro.webapi.HTMLView;
+import com.jpro.webapi.WebAPI;
import com.xwintop.xJavaFxTool.AppException;
import com.xwintop.xJavaFxTool.XJavaFxToolApplication;
import com.xwintop.xJavaFxTool.common.logback.ConsoleLogAppender;
@@ -17,6 +19,7 @@ import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
+import javafx.scene.Parent;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.control.TextArea;
@@ -29,8 +32,10 @@ import javafx.scene.web.WebView;
import javafx.stage.Stage;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -196,24 +201,32 @@ public class IndexService {
}
public static Tab loadWebViewAsTab(PluginJarInfo plugin, TabPane tabPane, boolean singleWindowBoot) {
- WebView browser = new WebView();
- WebEngine webEngine = browser.getEngine();
String url = plugin.getPagePath();
String title = plugin.getTitle();
-
-// HTMLView browser = null;
+ Parent browser = null;
if (url.startsWith("http")) {
- webEngine.load(url);
-// String contentIframe2 = "";
-// browser = new HTMLView(contentIframe2);
+ if (WebAPI.isBrowser()) {
+ String contentIframe2 = "";
+ browser = new HTMLView(contentIframe2);
+ } else {
+ browser = new WebView();
+ WebEngine webEngine = ((WebView)browser).getEngine();
+ webEngine.load(url);
+ }
} else {
PluginContainer pluginContainer = new PluginContainer(plugin);
- webEngine.load(pluginContainer.getResource(url).toExternalForm());
-// try {
-// browser = new HTMLView(IOUtils.toString(pluginContainer.getResource(url).openStream(), "utf-8"));
-// } catch (IOException e) {
-// throw new RuntimeException(e);
-// }
+ if (WebAPI.isBrowser()) {
+ try {
+ browser = new HTMLView(IOUtils.toString(pluginContainer.getResource(url).openStream(), "utf-8"));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ } else {
+ browser = new WebView();
+ WebEngine webEngine = ((WebView)browser).getEngine();
+ webEngine.load(pluginContainer.getResource(url).toExternalForm());
+ }
+
}
if (singleWindowBoot) {
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java
deleted file mode 100644
index fa441819fdc6abda23ecde71edbc1e2cf1decbf9..0000000000000000000000000000000000000000
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.xwintop.xJavaFxTool.utils;
-
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.xwintop.xcore.javafx.dialog.FxAlerts;
-import com.xwintop.xcore.util.javafx.JavaFxSystemUtil;
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * @ClassName: VersionChecker
- * @Description: 新版本检查
- * @author: xufeng
- * @date: 2022/3/28 14:59
- */
-
-@Slf4j
-public class VersionChecker {
- public static boolean checkNewVersion() {
- try {
- String json = HttpUtil.get("https://gitee.com/api/v5/repos/xwintop/xJavaFxTool/releases/latest");
- log.info("检查新版本:" + json);
- JSONObject node = JSON.parseObject(json);
- final String latestVersion = node.getString("tag_name");
- final String features = node.getString("body");
-
- if (latestVersion == null) {
- log.info("检查新版本失败");
- return false;
- }
-
- if (isLargerThanCurrent(latestVersion)) {
- final String content = new StringBuilder()
- .append("版本名:").append(node.getString("name")).append("\r\n")
- .append("更新内容: \r\n").append(features)
- .toString();
- if (FxAlerts.confirmOkCancel("发现新版本 " + latestVersion, content)) {
- JavaFxSystemUtil.openBrowseURLThrowsException("https://gitee.com/xwintop/xJavaFxTool/releases");
- }
- } else {
- return false;
- }
- } catch (Exception e) {
- log.error("检查新版本失败!", e);
- }
- return true;
- }
-
- private static Boolean isLargerThanCurrent(String remoteVersion) {
- final String[] arr = remoteVersion.split("v");
- String r = remoteVersion;
- if (arr.length == 2) {
- r = arr[1];
- }
-
- final String[] localVersionArr = Config.xJavaFxToolVersions.substring(1).split("\\.");
- final String[] remoteVersionArr = r.split("\\.");
- for (int i = 0; i < localVersionArr.length; i++) {
- try {
- final int localVersionSymbol = Integer.parseInt(localVersionArr[i]);
- final int remoteVersionSymbol = Integer.parseInt(remoteVersionArr[i]);
- if (localVersionSymbol < remoteVersionSymbol) {
- return true;
- } else if (localVersionSymbol > remoteVersionSymbol) {
- return false;
- }
- } catch (Exception e) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/view/IndexView.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/view/IndexView.java
index d99872e01fa1d7c7722a6600b51b9e035352d82d..767f357f41d08ad28efe9d0ea42030a0a1923080 100644
--- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/view/IndexView.java
+++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/view/IndexView.java
@@ -1,15 +1,14 @@
package com.xwintop.xJavaFxTool.view;
-import java.util.ResourceBundle;
-
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
-import javafx.scene.web.WebView;
import lombok.Getter;
import lombok.Setter;
+import java.util.ResourceBundle;
+
@Getter
@Setter
public abstract class IndexView implements Initializable {
@@ -38,8 +37,8 @@ public abstract class IndexView implements Initializable {
@FXML
protected Menu helpMenu;
- @FXML
- protected WebView tongjiWebView;
+// @FXML
+// protected WebView tongjiWebView;
@FXML
protected VBox pluginCategories;
diff --git a/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml b/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml
index 38887617367ffe465b3365862fb0de0221bda386..302748c48c7409ad9cafc3253e698bba422aff88 100644
--- a/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml
+++ b/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml
@@ -3,7 +3,6 @@
-
@@ -69,7 +68,6 @@
-
diff --git a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java b/xcore/src/main/java/com/xwintop/xcore/util/VersionChecker.java
similarity index 85%
rename from debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java
rename to xcore/src/main/java/com/xwintop/xcore/util/VersionChecker.java
index 9fdc82efabe46dd68feafb1e54b34118f064726a..f5dde631271aea0848a04115ba1974c050a90693 100644
--- a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java
+++ b/xcore/src/main/java/com/xwintop/xcore/util/VersionChecker.java
@@ -1,9 +1,9 @@
-package com.xwintop.xJavaFxTool.utils;
+package com.xwintop.xcore.util;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
-import com.xwintop.xcore.util.javafx.AlertUtil;
+import com.xwintop.xcore.javafx.dialog.FxAlerts;
import com.xwintop.xcore.util.javafx.JavaFxSystemUtil;
import javafx.application.Platform;
import lombok.extern.slf4j.Slf4j;
@@ -14,23 +14,22 @@ import java.util.function.BiConsumer;
/**
* @ClassName: VersionChecker
- * @Description: 版本检查工具类
+ * @Description: 新版本检查
* @author: xufeng
- * @date: 2021/1/31 22:25
+ * @date: 2022/3/28 14:59
*/
@Slf4j
public class VersionChecker {
-
public static void checkerVersion(String checkUrl, String downloadUrl, String version) {
VersionChecker.hasNewVersion(checkUrl, version, (latestVersion, features) -> {
String title = "发现新版本";
final String content = new StringBuilder()
- .append("最新版本: ").append(latestVersion).append("\r\n")
- .append("当前版本: v").append(version).append("\r\n")
- .append("新特性: \r\n").append(features)
- .toString();
- if (AlertUtil.showConfirmAlert(content)) {
+ .append("最新版本: ").append(latestVersion).append("\r\n")
+ .append("当前版本: v").append(version).append("\r\n")
+ .append("新特性: \r\n").append(features)
+ .toString();
+ if (FxAlerts.confirmOkCancel(title + latestVersion, content)) {
try {
JavaFxSystemUtil.openBrowseURLThrowsException(downloadUrl);
} catch (IOException e) {
diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java
index bdd6d64a68c9c3f380994a82e7a17cd403ba68f1..2fb6ed36733f3082051fbcf47b5f0505e75ad3d7 100644
--- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java
+++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java
@@ -23,11 +23,6 @@ public class FileChooserUtil {
public static final File HOME_DIRECTORY = FileSystemView.getFileSystemView().getHomeDirectory();
- //选择多个文件
- public static List chooseFiles() {
- return chooseFiles(null);
- }
-
public static List chooseFiles(ExtensionFilter... extensionFilter) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("请选择文件");
@@ -39,10 +34,6 @@ public class FileChooserUtil {
return fileChooser.showOpenMultipleDialog(null);
}
- public static File chooseFile() {
- return chooseFile(null);
- }
-
public static File chooseFile(ExtensionFilter... extensionFilter) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("请选择文件");
@@ -55,16 +46,6 @@ public class FileChooserUtil {
return fileChooser.showOpenDialog(null);
}
- ///////////////////////////////////////////////////////////////
-
- public static File chooseSaveFile(ExtensionFilter... extensionFilter) {
- return chooseSaveFile(null, extensionFilter);
- }
-
- public static File chooseSaveFile(String fileName) {
- return chooseSaveFile(fileName, null);
- }
-
public static File chooseSaveFile(String fileName, ExtensionFilter... extensionFilter) {
FileChooser fileChooser = new FileChooser();
fileChooser.setInitialDirectory(HOME_DIRECTORY);