diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 6c3451eece134393a254c19a86c947454e55c8e6..e6dfeae086fb84beabb6e9b1d0df7ac8c86ec105 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -45,5 +45,7 @@ module org.jcnc.jnotepad { exports org.jcnc.jnotepad.component.stage.setting; exports org.jcnc.jnotepad.component.module.vbox; exports org.jcnc.jnotepad.component.module.hbox; + exports org.jcnc.jnotepad.component.stage.topmenu.help; + exports org.jcnc.jnotepad.component.stage.topmenu.plugin; } \ No newline at end of file diff --git a/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java b/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java index b3e405ed0368ee7e71eb359bfebb023e9191e39e..107083a5fbeb60bc69ca805aba8caf4271845cfe 100644 --- a/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java +++ b/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java @@ -3,6 +3,7 @@ package org.jcnc.jnotepad.api.core.component.stage; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.layout.BorderPane; +import javafx.stage.Modality; import javafx.stage.Stage; /** @@ -53,6 +54,8 @@ public abstract class AbstractPaneStage extends BorderPane { stage.getIcons().add(getStageIcon()); stage.setTitle(getStageTitle()); stage.setScene(getCustomizationScene()); + // 设置为模态 + stage.initModality(Modality.APPLICATION_MODAL); stage.show(); } } diff --git a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java b/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java index b6ae53a008f0102d7bde228b42699c3d9e11049b..2eb1e06828df7924dbfa98fc183efbb56e4ee491 100644 --- a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java +++ b/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java @@ -27,6 +27,7 @@ public class TextConstants { public static final String ABOUT = "ABOUT"; + public static final String DEVELOPER = "DEVELOPER"; public static final String STATISTICS = "STATISTICS"; public static final String OPEN_CONFIGURATION_FILE = "OPEN_CONFIGURATION_FILE"; public static final String TOP = "TOP"; diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java b/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java deleted file mode 100644 index 8eab1edf929ae948eff5ed1c5f28cae59fc4f521..0000000000000000000000000000000000000000 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/DeveloperDebugStage.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.jcnc.jnotepad.component.stage.setting; - -import javafx.geometry.Insets; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.layout.HBox; -import javafx.scene.layout.VBox; -import javafx.stage.Stage; -import org.jcnc.jnotepad.app.manager.ApplicationManager; -import org.jcnc.jnotepad.util.LogUtil; -import org.jcnc.jnotepad.util.PopUpUtil; -import org.jcnc.jnotepad.util.UiUtil; -import org.slf4j.Logger; - -/** - * @author luke - */ -public class DeveloperDebugStage extends Stage { - Logger logger = LogUtil.getLogger(this.getClass()); - - public void start(Stage primaryStage) { - this.setAlwaysOnTop(true); - // 创建主舞台 - primaryStage.setTitle("开发者调试页面"); - primaryStage.getIcons().add(UiUtil.getAppIcon()); - // 创建一个垂直布局 - VBox root = new VBox(10); - HBox alertBox = new HBox(5); - HBox toolBox = new HBox(5); - - root.setPadding(new Insets(20)); - root.setSpacing(10); - - // 添加一些调试功能按钮和标签 - Label alertLabel = new Label("提示框"); - Label toolLabel = new Label("工具"); - - Button debugButton1 = new Button("错误提示框"); - Button debugButton2 = new Button("信息提示框"); - Button debugButton3 = new Button("警告提示框"); - Button debugButton4 = new Button("疑问提示框"); - Button debugButton5 = new Button("成功提示框"); - - // 按钮点击事件处理 - debugButton1.setOnAction(e -> { - // 在这里执行调试功能1的代码 - logger.debug("开发者调试: {}启动!", debugButton1.getText()); - PopUpUtil.errorAlert("错误", "错误", "这是一个示例错误提示框!", null, null); - - }); - - debugButton2.setOnAction(e -> { - // 在这里执行调试功能2的代码 - logger.debug("开发者调试: {}启动!", debugButton2.getText()); - PopUpUtil.infoAlert("信息", "信息", "这是一个示例信息提示框!", null, null); - }); - - debugButton3.setOnAction(e -> { - // 在这里执行调试功能3的代码 - logger.debug("开发者调试: {}启动!", debugButton3.getText()); - PopUpUtil.warningAlert("警告", "警告", "这是一个示例警告提示框!", null, null); - }); - debugButton4.setOnAction(e -> { - // 在这里执行调试功能4的代码 - logger.debug("开发者调试: {}启动!", debugButton4.getText()); - PopUpUtil.questionAlert("疑问", "疑问", "这是一个示例疑问提示框!", null, null); - }); - debugButton5.setOnAction(e -> { - // 在这里执行调试功能5的代码 - logger.debug("开发者调试: {}启动!", debugButton5.getText()); - PopUpUtil.successAlert("成功", "成功", "这是一个示例成功提示框!", null, null); - }); - - Button debugButton6 = new Button("重启软件"); - debugButton6.setOnAction(event -> { - logger.debug("开发者调试: {}启动!", debugButton6.getText()); - // 执行重启操作 - ApplicationManager.getInstance().restart(); - }); - - alertBox.getChildren().addAll(debugButton1, debugButton2, debugButton3, debugButton4, debugButton5); - toolBox.getChildren().addAll(debugButton6); - // 将组件添加到布局中 - root.getChildren().addAll(alertLabel, alertBox, toolLabel, toolBox); - - // 创建场景 - Scene scene = new Scene(root, 800, 600); - - // 将场景添加到舞台 - primaryStage.setScene(scene); - - // 显示舞台 - primaryStage.show(); - } -} diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java b/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java index a2a417179f8b26a236a20fae71bf0378de386136..5355aec7f7e476aa153792f2dd2273f3d3327288 100644 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java +++ b/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java @@ -14,6 +14,7 @@ import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; +import javafx.stage.Modality; import javafx.stage.Stage; import org.jcnc.jnotepad.app.config.AppConfig; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; @@ -40,7 +41,7 @@ import static org.jcnc.jnotepad.common.constants.AppConstants.SCREEN_WIDTH; * * @author luke */ -public class SetStage extends Stage { +public class SetStage { public static final String GENERAL_SETTING_1 = "常规设置项1"; public static final String GENERAL_SETTING_2 = "常规设置项2"; @@ -50,7 +51,6 @@ public class SetStage extends Stage { public static final String SECURITY_SETTING_1 = "安全设置项1"; public static final String SECURITY_SETTING_2 = "安全设置项2"; - public static final String DEVELOPER_DEBUG_PAGE = "开发者调试页面"; private static SetStage instance; private StackPane contentDisplay; @@ -82,7 +82,7 @@ public class SetStage extends Stage { primaryStage.getIcons().add(UiUtil.getAppIcon()); primaryStage.setTitle("设置窗口"); // 将窗口设置为模态 - //primaryStage.initModality(Modality.APPLICATION_MODAL); + primaryStage.initModality(Modality.APPLICATION_MODAL); contentDisplay = new StackPane(); @@ -159,14 +159,11 @@ public class SetStage extends Stage { securityItem.getChildren().add(securityItem1); securityItem.getChildren().add(securityItem2); - // 开发者调试页面 - TreeItem developerItem = new TreeItem<>(DEVELOPER_DEBUG_PAGE); root.getChildren().add(generalItem); root.getChildren().add(appearanceItem); root.getChildren().add(securityItem); - root.getChildren().add(developerItem); root.getChildren().add(pluginsItem); TreeView treeView = new TreeView<>(root); treeView.setShowRoot(false); @@ -190,8 +187,7 @@ public class SetStage extends Stage { case APPEARANCE_SETTING_2 -> createAppearanceSettingsLayout2(); case SECURITY_SETTING_1 -> createSecuritySettingsLayout1(); case SECURITY_SETTING_2 -> createSecuritySettingsLayout2(); - case DEVELOPER_DEBUG_PAGE -> createDevelopersDebugPageLayouts(); - case PLUGINS -> createPluginsLayout(); +// case PLUGINS -> createPluginsLayout(); default -> null; }; } @@ -206,21 +202,7 @@ public class SetStage extends Stage { return generalLayout; } - private Node createDevelopersDebugPageLayouts() { - VBox generalLayout = new VBox(10); - generalLayout.setPadding(new Insets(25)); - - SetDevBox devBox = new SetDevBox("打开开发者调试页面", DEVELOPER_DEBUG_PAGE); - devBox.setButtonAction(event -> { - // 创建并启动DeveloperDebugPage - DeveloperDebugStage debugPage = new DeveloperDebugStage(); - debugPage.setAlwaysOnTop (true); - debugPage.start(new Stage()); - }); - generalLayout.getChildren().addAll(devBox); - return generalLayout; - } /** * 创建常规设置项1的布局。 diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/builder/StageButtonBuilder.java b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/builder/StageButtonBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..22e022b0b6ee8e8c500129ee7b3108dc14268029 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/builder/StageButtonBuilder.java @@ -0,0 +1,34 @@ +package org.jcnc.jnotepad.component.stage.topmenu.builder; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.scene.control.Button; + +/** + * 舞台按钮建造者 + * + * @author gewuyou + */ +public class StageButtonBuilder { + private final Button button = new Button(); + + private String text; + + private EventHandler eventEventHandler; + + public StageButtonBuilder setText(String text) { + this.text = text; + return this; + } + + public StageButtonBuilder setEventEventHandler(EventHandler eventEventHandler) { + this.eventEventHandler = eventEventHandler; + return this; + } + + public Button build() { + button.setText(text); + button.setOnAction(eventEventHandler); + return button; + } +} diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/DeveloperDebugPaneStage.java b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/DeveloperDebugPaneStage.java new file mode 100644 index 0000000000000000000000000000000000000000..7735781b90b30cdf44b62bc00dbd7626cbab1ac1 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/DeveloperDebugPaneStage.java @@ -0,0 +1,142 @@ +package org.jcnc.jnotepad.component.stage.topmenu.help; + +import javafx.geometry.Insets; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage; +import org.jcnc.jnotepad.app.manager.ApplicationManager; +import org.jcnc.jnotepad.component.stage.topmenu.builder.StageButtonBuilder; +import org.jcnc.jnotepad.util.LogUtil; +import org.jcnc.jnotepad.util.PopUpUtil; +import org.jcnc.jnotepad.util.UiUtil; +import org.slf4j.Logger; + +/** + * 开发者调试页面 + * + * @author gewuyou + */ +public class DeveloperDebugPaneStage extends AbstractPaneStage { + private static final String DEBUG_STR = "开发者调试: {}启动!"; + Logger logger = LogUtil.getLogger(this.getClass()); + + /** + * 获取舞台图标 + * + * @return 舞台图标 + */ + @Override + protected Image getStageIcon() { + return UiUtil.getAppIcon(); + } + + /** + * 获取舞台标题 + * + * @return 舞台标题 + */ + @Override + protected String getStageTitle() { + return "开发者调试页面"; + } + + /** + * 获取自定义舞台 + * + * @return 舞台 + */ + @Override + protected Scene getCustomizationScene() { + return new Scene(createVerticalLayout(), 800, 600); + } + + /** + * 创建垂直布局 + * + * @return 垂直布局 + */ + private VBox createVerticalLayout() { + VBox root = new VBox(10); + root.setPadding(new Insets(20)); + root.setSpacing(10); + HBox alertBox = new HBox(5); + alertBox.getChildren().addAll( + new StageButtonBuilder() + .setText("错误提示框").setEventEventHandler(e -> { + Button button = (Button) e.getSource(); + // 在这里执行调试功能1的代码 + logger.debug(DEBUG_STR, button.getText()); + PopUpUtil.errorAlert("错误", "错误", "这是一个示例错误提示框!", null, null); + }).build(), + new StageButtonBuilder() + .setText("信息提示框").setEventEventHandler(e -> { + Button button = (Button) e.getSource(); + // 在这里执行调试功能2的代码 + logger.debug(DEBUG_STR, button.getText()); + PopUpUtil.infoAlert("信息", "信息", "这是一个示例信息提示框!", null, null); + }).build(), + new StageButtonBuilder() + .setText("警告提示框").setEventEventHandler(e -> { + Button button = (Button) e.getSource(); + // 在这里执行调试功能3的代码 + logger.debug(DEBUG_STR, button.getText()); + PopUpUtil.warningAlert("警告", "警告", "这是一个示例警告提示框!", null, null); + }).build(), + new StageButtonBuilder() + .setText("疑问提示框").setEventEventHandler(e -> { + Button button = (Button) e.getSource(); + // 在这里执行调试功能4的代码 + logger.debug(DEBUG_STR, button.getText()); + PopUpUtil.questionAlert("疑问", "疑问", "这是一个示例疑问提示框!", null, null); + }).build(), + new StageButtonBuilder() + .setText("成功提示框").setEventEventHandler(e -> { + Button button = (Button) e.getSource(); + // 在这里执行调试功能5的代码 + logger.debug(DEBUG_STR, button.getText()); + PopUpUtil.successAlert("成功", "成功", "这是一个示例成功提示框!", null, null); + }).build() + ); + HBox toolBox = new HBox(5); + toolBox.getChildren().addAll( + new StageButtonBuilder() + .setText("重启软件").setEventEventHandler(e -> { + Button button = (Button) e.getSource(); + // 执行重启操作 + logger.debug(DEBUG_STR, button.getText()); + ApplicationManager.getInstance().restart(); + }).build() + ); + // 添加一些调试功能按钮和标签 + Label alertLabel = new Label("提示框"); + Label toolLabel = new Label("工具"); + root.getChildren().addAll(alertLabel, alertBox, toolLabel, toolBox); + return root; + } + + + /** + * 初始化方法 + */ + @Override + protected void initialize() { + // 在此写初始化 + logger.info("开发者调试页面初始化"); + } + + /** + * 自定义启动方法 + * + * @param stage 自定义舞台 + */ + @Override + public void run(Stage stage) { + // 在此添加自定义逻辑 + stage.show(); + } +} diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/HelpPaneStage.java b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/HelpPaneStage.java similarity index 97% rename from src/main/java/org/jcnc/jnotepad/component/stage/setting/HelpPaneStage.java rename to src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/HelpPaneStage.java index 1ada5f0d87a99620481331ee8b60e319a18bf7a5..4f5fb66d8f5ec795b4e3e4e1ea27f0a10a23ae09 100644 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/HelpPaneStage.java +++ b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/HelpPaneStage.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.component.stage.setting; +package org.jcnc.jnotepad.component.stage.topmenu.help; import atlantafx.base.controls.Notification; import atlantafx.base.theme.Styles; @@ -16,6 +16,7 @@ import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; +import javafx.stage.Modality; import javafx.stage.Stage; import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage; import org.jcnc.jnotepad.util.LogUtil; @@ -193,6 +194,8 @@ public class HelpPaneStage extends AbstractPaneStage { stage.setTitle(getStageTitle()); stage.setScene(getCustomizationScene()); stage.setResizable(false); + // 设置为模态 + stage.initModality(Modality.APPLICATION_MODAL); stage.show(); } diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/plugin/CustomSplitPane.java b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/CustomSplitPane.java similarity index 96% rename from src/main/java/org/jcnc/jnotepad/component/stage/setting/plugin/CustomSplitPane.java rename to src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/CustomSplitPane.java index fb2b7beb710818d256c17e60b4e86b01e5e7de0a..42a6e360f3a7a8b286f3ebb6171e5e0800995eab 100644 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/plugin/CustomSplitPane.java +++ b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/CustomSplitPane.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.component.stage.setting.plugin; +package org.jcnc.jnotepad.component.stage.topmenu.plugin; import javafx.geometry.Orientation; import javafx.scene.control.SplitPane; diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/plugin/PluginManagementPane.java b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/PluginManagementPane.java similarity index 99% rename from src/main/java/org/jcnc/jnotepad/component/stage/setting/plugin/PluginManagementPane.java rename to src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/PluginManagementPane.java index 49c4aea059c1aebf6d8105ed8dcc597dddcaaa28..fa39582fb8bdae9734215d2a11f26bebd482ef5e 100644 --- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/plugin/PluginManagementPane.java +++ b/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/PluginManagementPane.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.component.stage.setting.plugin; +package org.jcnc.jnotepad.component.stage.topmenu.plugin; import atlantafx.base.controls.Tile; import atlantafx.base.controls.ToggleSwitch; diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java index d7280cef154d4f3508bb10a47e01bce8c47ce74c..7d82c07bd5854f4d78696a4d22d4918b996f61d2 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java @@ -32,34 +32,47 @@ public class TopMenuBar extends MenuBar { */ private final Menu setMenu = new Menu(); - - /// 菜单按钮 /** - * 插件菜单 + * 帮助菜单 */ - private final Menu pluginMenu = new Menu(); + private final Menu helpMenu = new Menu(); /** * 运行菜单 */ private final Menu runMenu = new Menu(); + + /// 菜单按钮 /** - * 调试菜单 + * 插件菜单 */ - private final MenuItem deBugItem = new MenuItem(); + private final Menu pluginMenu = new Menu(); + + /** + * 语言菜单 + */ + private final Menu languageMenu = new Menu(); /** * 新建 */ private final MenuItem newItem = new MenuItem(); + /** - * 语言菜单 + * 关于 */ - private final Menu languageMenu = new Menu(); + private final MenuItem aboutItem = new MenuItem(); + /** - * 新建 + * 调试 */ + private final MenuItem deBugItem = new MenuItem(); + /** + * 运行 + */ + private final MenuItem runItem = new MenuItem(); + private final MenuItem developerItem = new MenuItem(); /** * 打开 @@ -112,15 +125,6 @@ public class TopMenuBar extends MenuBar { */ private final MenuItem pluginManagerItem = new MenuItem(); - /** - * 帮助菜单 - */ - private final Menu helpMenu = new Menu(); - - /** - * 关于 - */ - private final MenuItem aboutItem = new MenuItem(); private TopMenuBar() { } @@ -154,10 +158,6 @@ public class TopMenuBar extends MenuBar { public Menu getPluginMenu() { return pluginMenu; } - public Menu getRunMenu() { - return runMenu; - } - public Menu getLanguageMenu() { @@ -171,13 +171,6 @@ public class TopMenuBar extends MenuBar { public MenuItem getNewItem() { return newItem; } - public MenuItem getRunItem() { - return runItem; - } - - public MenuItem getDeBugItem() { - return deBugItem; - } public MenuItem getAboutItem() { @@ -232,4 +225,20 @@ public class TopMenuBar extends MenuBar { public MenuItem getOpenDirItem() { return openDirItem; } + + public MenuItem getDeveloperItem() { + return developerItem; + } + + public Menu getRunMenu() { + return runMenu; + } + + public MenuItem getDeBugItem() { + return deBugItem; + } + + public MenuItem getRunItem() { + return runItem; + } } diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java index b00943cbdc8a00e8a3f02c377efab49d4a194568..7626a34100eb88714d720ea15b6e518bc865b10e 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java @@ -4,13 +4,13 @@ import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import javafx.stage.Stage; import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu; -import org.jcnc.jnotepad.component.stage.setting.HelpPaneStage; +import org.jcnc.jnotepad.component.stage.topmenu.help.DeveloperDebugPaneStage; +import org.jcnc.jnotepad.component.stage.topmenu.help.HelpPaneStage; import java.util.HashMap; import java.util.Map; -import static org.jcnc.jnotepad.common.constants.TextConstants.ABOUT; -import static org.jcnc.jnotepad.common.constants.TextConstants.HELP; +import static org.jcnc.jnotepad.common.constants.TextConstants.*; /** * 帮助菜单 @@ -64,5 +64,6 @@ public class HelpTopMenu extends AbstractTopMenu { @Override protected void registerTopMenu() { registerMenuItem(topMenuBar.getAboutItem(), ABOUT, "aboutItem", event -> new HelpPaneStage().run(new Stage())); + registerMenuItem(topMenuBar.getDeveloperItem(), DEVELOPER, "developerItem", event -> new DeveloperDebugPaneStage().run()); } } diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java index c6c499d6a343e28d7471b364d9bd09d072b4d516..10ac5727c81a783935174356c4c0358a18e6fcb0 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java @@ -3,7 +3,7 @@ package org.jcnc.jnotepad.views.root.top.menubar.menu; import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu; -import org.jcnc.jnotepad.component.stage.setting.plugin.PluginManagementPane; +import org.jcnc.jnotepad.component.stage.topmenu.plugin.PluginManagementPane; import java.util.HashMap; import java.util.Map; diff --git a/src/main/resources/i18n/i18n.properties b/src/main/resources/i18n/i18n.properties index 6cd910c716c4d55d94a7f128b1bd802be0a91a13..2868571caba84a8b1838d6525a5151c398615865 100644 --- a/src/main/resources/i18n/i18n.properties +++ b/src/main/resources/i18n/i18n.properties @@ -9,10 +9,9 @@ PLUGIN=插件 CHINESE=中文 title=JNotepad OPEN=打开 -DE_BUG=调试 OPEN_DIRECTORY=打开文件夹 ABOUT=关于 -RUN=运行 +DEVELOPER=开发者 HELP=帮助 OPEN_CONFIGURATION_FILE=打开配置文件 RENAME=重命名 @@ -25,3 +24,5 @@ ROW=行数 FILE=文件 MANAGER_PLUGIN=管理插件 ENCODE=编码 +DE_BUG=调试 +RUN=运行 diff --git a/src/main/resources/i18n/i18n_en.properties b/src/main/resources/i18n/i18n_en.properties index 524adb0faef6935e6aaa69b5cc5b7b341489a400..cdfaac09d9823ccbc7a62cedf06090d9d8c12e27 100644 --- a/src/main/resources/i18n/i18n_en.properties +++ b/src/main/resources/i18n/i18n_en.properties @@ -5,6 +5,7 @@ SET=Settings ENGLISH=English STATISTICS=Word Count ABOUT=About +DEVELOPER=Developer COLUMN=Column PLUGIN=Plugins CHINESE=Chinese diff --git a/src/main/resources/i18n/i18n_zh_CN.properties b/src/main/resources/i18n/i18n_zh_CN.properties index 61ebca07641fab4b40fd3dc8bc1cd71b6745c09b..95764451c182ab73309c97e5ac090e2784fb0d79 100644 --- a/src/main/resources/i18n/i18n_zh_CN.properties +++ b/src/main/resources/i18n/i18n_zh_CN.properties @@ -14,6 +14,7 @@ HELP=帮助 RUN=运行 DE_BUG=调试 ABOUT=关于 +DEVELOPER=开发者 OPEN_CONFIGURATION_FILE=打开配置文件 RENAME=重命名 TOP=窗口置顶