Skip to content

Commit dcb11ba

Browse files
committed
newui: WIP: 插件项目脚手架工具
1 parent 3c2b6c1 commit dcb11ba

4 files changed

Lines changed: 70 additions & 0 deletions

File tree

src/main/java/com/xwintop/xJavaFxTool/newui/NewLauncherController.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import com.xwintop.xJavaFxTool.model.PluginJarInfo;
77
import com.xwintop.xJavaFxTool.plugin.PluginManager;
88
import com.xwintop.xJavaFxTool.services.index.SystemSettingService;
9+
import com.xwintop.xcore.javafx.FxApp;
910
import com.xwintop.xcore.javafx.dialog.FxAlerts;
11+
import com.xwintop.xcore.javafx.dialog.FxDialog;
1012
import com.xwintop.xcore.util.javafx.JavaFxViewUtil;
1113
import java.awt.Desktop;
1214
import java.io.IOException;
@@ -19,8 +21,10 @@
1921
import javafx.beans.Observable;
2022
import javafx.fxml.FXMLLoader;
2123
import javafx.scene.Parent;
24+
import javafx.scene.control.ButtonType;
2225
import javafx.scene.control.CheckMenuItem;
2326
import javafx.scene.control.ContextMenu;
27+
import javafx.scene.control.Hyperlink;
2428
import javafx.scene.control.TabPane;
2529
import javafx.scene.control.TextField;
2630
import javafx.scene.layout.VBox;
@@ -41,6 +45,8 @@ public class NewLauncherController {
4145

4246
public TextField txtSearch;
4347

48+
public Hyperlink lnkCreatePlugin;
49+
4450
private ContextMenu itemContextMenu;
4551

4652
// 实现搜索用
@@ -52,6 +58,7 @@ public void initialize() {
5258
initContextMenu();
5359
loadPlugins(); // 加载插件列表到界面上
5460
startWebView.getEngine().load(IndexController.QQ_URL); // 额外再打开一个反馈页面,可关闭
61+
lnkCreatePlugin.setVisible(Boolean.parseBoolean(System.getProperty("create", "false")));
5562
}
5663

5764
private void initContextMenu() {
@@ -158,4 +165,20 @@ public void openProjectUrl() {
158165
log.error("打开项目地址失败", e);
159166
}
160167
}
168+
169+
public void openPluginCreator() {
170+
171+
FxDialog<PluginCreatorController> dialog = new FxDialog<PluginCreatorController>()
172+
.setTitle("创建自己的插件")
173+
.setBodyFxml("/com/xwintop/xJavaFxTool/fxmlView/newui/plugin-creator.fxml")
174+
.setOwner(FxApp.primaryStage)
175+
.setResizable(true)
176+
.setButtonTypes(ButtonType.OK, ButtonType.CANCEL);
177+
178+
PluginCreatorController controller = dialog.show();
179+
180+
dialog
181+
.setButtonHandler(ButtonType.OK, (actionEvent, stage) -> stage.close())
182+
.setButtonHandler(ButtonType.CANCEL, (actionEvent, stage) -> stage.close());
183+
}
161184
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.xwintop.xJavaFxTool.newui;
2+
3+
import javafx.scene.control.Label;
4+
import javafx.scene.layout.StackPane;
5+
6+
public class PluginCreatorController {
7+
8+
public static final String WELCOME = "你想创建自己的插件项目吗?\n\n"
9+
+ "这个工具帮你搭建一个插件的脚手架项目,帮助你尽快开始功能开发。\n\n"
10+
+ "完成插件开发需要以下知识:"
11+
+ "\n1、会使用 Java 开发工具;"
12+
+ "\n2、会使用 Maven;"
13+
+ "\n3、熟悉 JavaFX 桌面框架。\n\n"
14+
+ "若想开始创建插件项目,请点击“下一步”。";
15+
16+
public StackPane stackPane;
17+
18+
public Label txtWelcome;
19+
20+
public void initialize() {
21+
this.txtWelcome.setText(WELCOME);
22+
}
23+
}

src/main/resources/com/xwintop/xJavaFxTool/fxmlView/newui/main.fxml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
text="https://gitee.com/xwintop/xJavaFxTool"/>
3636
<Hyperlink onAction="#openConfigDialog" text="设置"/>
3737
<Hyperlink onAction="#openPluginManager" text="插件管理"/>
38+
<Hyperlink onAction="#openPluginCreator" text="新建" fx:id="lnkCreatePlugin"/>
3839
</HBox>
3940
<VBox fx:id="pluginCategories" alignment="TOP_CENTER">
4041
</VBox>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?import javafx.geometry.Insets?>
2+
<?import javafx.scene.control.Hyperlink?>
3+
<?import javafx.scene.control.Label?>
4+
<?import javafx.scene.layout.StackPane?>
5+
<?import javafx.scene.layout.VBox?>
6+
<VBox spacing="5" prefWidth="500" prefHeight="300"
7+
xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/10.0.2-internal"
8+
fx:controller="com.xwintop.xJavaFxTool.newui.PluginCreatorController">
9+
<StackPane fx:id="stackPane" VBox.vgrow="ALWAYS">
10+
11+
<VBox visible="true" spacing="15">
12+
<padding>
13+
<Insets topRightBottomLeft="35"/>
14+
</padding>
15+
<Label fx:id="txtWelcome"/>
16+
<Hyperlink text="下一步"/>
17+
</VBox>
18+
19+
<VBox alignment="CENTER" visible="false">
20+
</VBox>
21+
22+
</StackPane>
23+
</VBox>

0 commit comments

Comments
 (0)