commit
5d75c79477
@ -3,12 +3,14 @@ package org.jcnc.jnotepad.ui.pluginstage;
|
|||||||
import atlantafx.base.controls.Tile;
|
import atlantafx.base.controls.Tile;
|
||||||
import atlantafx.base.controls.ToggleSwitch;
|
import atlantafx.base.controls.ToggleSwitch;
|
||||||
import atlantafx.base.theme.Styles;
|
import atlantafx.base.theme.Styles;
|
||||||
|
import javafx.event.EventHandler;
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Menu;
|
import javafx.scene.control.Menu;
|
||||||
import javafx.scene.control.MenuItem;
|
import javafx.scene.control.MenuItem;
|
||||||
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.web.WebEngine;
|
import javafx.scene.web.WebEngine;
|
||||||
import javafx.scene.web.WebView;
|
import javafx.scene.web.WebView;
|
||||||
@ -29,6 +31,7 @@ import org.slf4j.Logger;
|
|||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.MenuBar;
|
import java.awt.MenuBar;
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@ -45,6 +48,9 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class PluginManagementPane extends BorderPane {
|
public class PluginManagementPane extends BorderPane {
|
||||||
|
|
||||||
|
boolean isInstall = false;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 图标大小常量
|
* 图标大小常量
|
||||||
*/
|
*/
|
||||||
@ -103,7 +109,28 @@ public class PluginManagementPane extends BorderPane {
|
|||||||
|
|
||||||
// 创建示例按钮并添加到已安装和设置选项卡中
|
// 创建示例按钮并添加到已安装和设置选项卡中
|
||||||
marketTabContent.setCenter(new Button("市场"));
|
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);
|
installedTab.setContent(installedTabContent);
|
||||||
@ -199,6 +226,11 @@ public class PluginManagementPane extends BorderPane {
|
|||||||
// 创建一个按钮
|
// 创建一个按钮
|
||||||
var tgl = new ToggleSwitch();
|
var tgl = new ToggleSwitch();
|
||||||
|
|
||||||
|
tgl.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
|
||||||
|
// 单击 ToggleSwitch 后执行的代码
|
||||||
|
isInstall = !isInstall;
|
||||||
|
|
||||||
|
});
|
||||||
// 创建一个图标
|
// 创建一个图标
|
||||||
ImageView icon = new ImageView(image);
|
ImageView icon = new ImageView(image);
|
||||||
// 指定要缩放的固定像素大小
|
// 指定要缩放的固定像素大小
|
||||||
@ -245,9 +277,38 @@ public class PluginManagementPane extends BorderPane {
|
|||||||
authorBox.getChildren().addAll(author, authorLink);
|
authorBox.getChildren().addAll(author, authorLink);
|
||||||
|
|
||||||
|
|
||||||
var uninstall = new MenuItem("卸载");
|
var isInstallItem = new MenuItem();
|
||||||
var state = new SplitMenuButton(uninstall);
|
var state = new SplitMenuButton(isInstallItem);
|
||||||
state.setText("禁用");
|
|
||||||
|
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.getStyleClass().addAll(Styles.ACCENT);
|
||||||
state.setPrefWidth(80);
|
state.setPrefWidth(80);
|
||||||
var main = new VBox(10);
|
var main = new VBox(10);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user