From b4e38e866c7d614a5466c1f994902debfac14509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sat, 23 Sep 2023 22:49:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/pluginstage/PluginManagementPane.java | 45 +++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java b/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java index 5de9a40..5395c82 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java +++ b/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java @@ -3,12 +3,14 @@ package org.jcnc.jnotepad.ui.pluginstage; import atlantafx.base.controls.Tile; import atlantafx.base.controls.ToggleSwitch; import atlantafx.base.theme.Styles; +import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; +import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; @@ -45,6 +47,9 @@ import java.util.Map; */ public class PluginManagementPane extends BorderPane { + boolean isInstall = false; + + /** * 图标大小常量 */ @@ -199,6 +204,11 @@ public class PluginManagementPane extends BorderPane { // 创建一个按钮 var tgl = new ToggleSwitch(); + tgl.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> { + // 在这里编写单击 ToggleSwitch 后执行的代码 + isInstall = true; + + }); // 创建一个图标 ImageView icon = new ImageView(image); // 指定要缩放的固定像素大小 @@ -245,9 +255,38 @@ public class PluginManagementPane extends BorderPane { authorBox.getChildren().addAll(author, authorLink); - var uninstall = new MenuItem("卸载"); - var state = new SplitMenuButton(uninstall); - state.setText("禁用"); + var isInstallItem = new MenuItem(); + var state = new SplitMenuButton(isInstallItem); + + state.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> { + // 切换isInstall的值 + isInstall = !isInstall; + if (!isInstall) { + isInstallItem.setText("安装"); + isInstallItem.setOnAction(event1 -> { + /// TODO: 2023/9/23 插件安装的操作 + + }); + state.setText("启用"); + state.setOnAction(event1 -> { + // TODO: 2023/9/23 插件启动的操作 + + }); + + } else { + isInstallItem.setText("卸载"); + isInstallItem.setOnAction(event1 -> { + // TODO: 2023/9/23 插件卸载的操作 + + }); + state.setText("停用"); + state.setOnAction(event1 -> { + // TODO: 2023/9/23 插件停用的操作 + + }); + } + }); + state.getStyleClass().addAll(Styles.ACCENT); state.setPrefWidth(80); var main = new VBox(10); From b66a5d96475502179efa9fb0989b5919b10525ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sat, 23 Sep 2023 23:01:22 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0ui=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java b/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java index 5395c82..5d8a9c7 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java +++ b/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java @@ -205,8 +205,8 @@ public class PluginManagementPane extends BorderPane { var tgl = new ToggleSwitch(); tgl.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> { - // 在这里编写单击 ToggleSwitch 后执行的代码 - isInstall = true; + // 单击 ToggleSwitch 后执行的代码 + isInstall = !isInstall; }); // 创建一个图标 @@ -264,7 +264,7 @@ public class PluginManagementPane extends BorderPane { if (!isInstall) { isInstallItem.setText("安装"); isInstallItem.setOnAction(event1 -> { - /// TODO: 2023/9/23 插件安装的操作 + // TODO: 2023/9/23 插件安装的操作 }); state.setText("启用"); From 15be8c44f2496a40beddb495f7d62c70a5108c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sat, 23 Sep 2023 23:10:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/pluginstage/PluginManagementPane.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java b/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java index 5d8a9c7..3a80f12 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java +++ b/src/main/java/org/jcnc/jnotepad/ui/pluginstage/PluginManagementPane.java @@ -31,6 +31,7 @@ import org.slf4j.Logger; import java.awt.*; import java.awt.MenuBar; +import java.io.File; import java.io.IOException; import java.net.URI; import java.nio.file.Files; @@ -108,7 +109,28 @@ public class PluginManagementPane extends BorderPane { // 创建示例按钮并添加到已安装和设置选项卡中 marketTabContent.setCenter(new Button("市场")); - myTabContent.setCenter(new Button("设置")); + + var myTabPane = new BorderPane(); + var mainMyTabPane = new VBox(); + var manageStorage = new Button("管理插件仓库"); + manageStorage.setOnAction(event -> { + try { + // 获取当前软件运行根目录 + String rootPath = System.getProperty("user.dir"); + File rootDir = new File(rootPath); + + // 打开文件资源管理器并选中运行根目录 + Desktop desktop = Desktop.getDesktop(); + desktop.open(rootDir); + } catch (Exception e) { + logger.info("打开了" + System.getProperty("user.dir") + "文件夹"); + + } + }); + mainMyTabPane.getChildren().addAll(manageStorage); + myTabPane.setCenter(mainMyTabPane); + myTabContent.setCenter(myTabPane); + // 将选项卡内容设置到选项卡中 installedTab.setContent(installedTabContent);