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..3a80f12 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; @@ -29,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; @@ -45,6 +48,9 @@ import java.util.Map; */ public class PluginManagementPane extends BorderPane { + boolean isInstall = false; + + /** * 图标大小常量 */ @@ -103,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); @@ -199,6 +226,11 @@ public class PluginManagementPane extends BorderPane { // 创建一个按钮 var tgl = new ToggleSwitch(); + tgl.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> { + // 单击 ToggleSwitch 后执行的代码 + isInstall = !isInstall; + + }); // 创建一个图标 ImageView icon = new ImageView(image); // 指定要缩放的固定像素大小 @@ -245,9 +277,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);