diff --git a/pom.xml b/pom.xml index e8734e0..98ef1f3 100644 --- a/pom.xml +++ b/pom.xml @@ -73,12 +73,6 @@ system ${project.basedir}/libs/icu4j-73.2.jar - - org.projectlombok - lombok - 1.18.28 - compile - diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 5e5e832..d74a998 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -15,7 +15,6 @@ module org.jcnc.jnotepad { requires org.kordamp.ikonli.core; requires org.kordamp.ikonli.javafx; requires org.kordamp.ikonli.antdesignicons; - requires lombok; exports org.jcnc.jnotepad; exports org.jcnc.jnotepad.model.enums; exports org.jcnc.jnotepad.app.config; diff --git a/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java b/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java index 2af7e70..010f312 100644 --- a/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java +++ b/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java @@ -1,7 +1,6 @@ package org.jcnc.jnotepad.app.config; import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; import org.jcnc.jnotepad.model.entity.ShortcutKey; import java.util.ArrayList; @@ -14,7 +13,6 @@ import static org.jcnc.jnotepad.common.constants.TextConstants.CHINESE; * * @author 许轲 */ -@Data public class AppConfig { private static final String CTRL_N = "ctrl+n"; private static final String CTRL_O = "ctrl+o"; @@ -63,4 +61,28 @@ public class AppConfig { shortcutKey.setShortcutKeyValue(shortcutKeyValue); return shortcutKey; } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + public List getShortcutKey() { + return shortcutKey; + } + + public void setShortcutKey(List shortcutKey) { + this.shortcutKey = shortcutKey; + } + + public boolean isTextWrap() { + return textWrap; + } + + public void setTextWrap(boolean textWrap) { + this.textWrap = textWrap; + } } diff --git a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java index ec9fd73..e33b7a7 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java +++ b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java @@ -1,6 +1,5 @@ package org.jcnc.jnotepad.controller.config; -import lombok.Data; import org.jcnc.jnotepad.app.config.AppConfig; import org.jcnc.jnotepad.exception.AppException; import org.jcnc.jnotepad.model.entity.ShortcutKey; @@ -24,7 +23,6 @@ import java.util.List; * * @author songdragon */ -@Data public class AppConfigController { /** @@ -165,4 +163,21 @@ public class AppConfigController { public List getShortcutKey() { return this.appConfig.getShortcutKey(); } + + /** + * 获取当前配置文件所在目录。 + * + * @return 所在目录 + */ + public String getDir() { + return dir; + } + + public void setDir(String dir) { + this.dir = dir; + } + + private AppConfig getAppConfig() { + return appConfig; + } } diff --git a/src/main/java/org/jcnc/jnotepad/model/entity/PluginInfo.java b/src/main/java/org/jcnc/jnotepad/model/entity/PluginInfo.java new file mode 100644 index 0000000..4616f56 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/model/entity/PluginInfo.java @@ -0,0 +1,45 @@ +package org.jcnc.jnotepad.model.entity; + +/** + * 插件信息 + * + * @author gewuyou + */ +public class PluginInfo { + /** + * 插件名称 + */ + private String pluginName; + /** + * 插件版本 + */ + private String version; + /** + * 启用状态 + */ + private boolean enabled; + + public String getPluginName() { + return pluginName; + } + + public void setPluginName(String pluginName) { + this.pluginName = pluginName; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } +} diff --git a/src/main/java/org/jcnc/jnotepad/model/entity/Plugins.java b/src/main/java/org/jcnc/jnotepad/model/entity/Plugins.java deleted file mode 100644 index 40e1dc2..0000000 --- a/src/main/java/org/jcnc/jnotepad/model/entity/Plugins.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.jcnc.jnotepad.model.entity; - -import lombok.Data; - -/** - * 插件类 - * - * @author gewuyou - */ -@Data -public class Plugins { - /** - * 插件名称 - */ - private String pluginName; - /** - * 插件版本 - */ - private String version; - /** - * 作者 - */ - private String author; - /** - * 插件描述 - */ - private String description; -} diff --git a/src/main/java/org/jcnc/jnotepad/model/entity/ShortcutKey.java b/src/main/java/org/jcnc/jnotepad/model/entity/ShortcutKey.java index 28de5ff..da2650b 100644 --- a/src/main/java/org/jcnc/jnotepad/model/entity/ShortcutKey.java +++ b/src/main/java/org/jcnc/jnotepad/model/entity/ShortcutKey.java @@ -1,13 +1,11 @@ package org.jcnc.jnotepad.model.entity; -import lombok.Data; /** * 快捷键信息类 * * @author gewuyou */ -@Data public class ShortcutKey { /** * 按钮名称 @@ -17,4 +15,20 @@ public class ShortcutKey { * 快捷键值 */ private String shortcutKeyValue; + + public String getButtonName() { + return buttonName; + } + + public void setButtonName(String buttonName) { + this.buttonName = buttonName; + } + + public String getShortcutKeyValue() { + return shortcutKeyValue; + } + + public void setShortcutKeyValue(String shortcutKeyValue) { + this.shortcutKeyValue = shortcutKeyValue; + } } diff --git a/src/main/java/org/jcnc/jnotepad/plugin/ButtonPlugin.java b/src/main/java/org/jcnc/jnotepad/plugin/ButtonPlugin.java index 06f8765..81d6ac3 100644 --- a/src/main/java/org/jcnc/jnotepad/plugin/ButtonPlugin.java +++ b/src/main/java/org/jcnc/jnotepad/plugin/ButtonPlugin.java @@ -3,6 +3,8 @@ package org.jcnc.jnotepad.plugin; import org.jcnc.jnotepad.plugin.interfaces.Plugin; import org.jcnc.jnotepad.util.LogUtil; +import java.util.Map; + /** * 新按钮插件 * @@ -33,4 +35,24 @@ public class ButtonPlugin implements Plugin { // 在这里实现新按钮插件的逻辑 LogUtil.getLogger(this.getClass()).info("新按钮插件执行了!"); } + + /** + * 获取插件的配置参数 + * + * @return 插件的配置参数 + */ + @Override + public Map getConfig() { + return null; + } + + /** + * 设置插件的配置参数 + * + * @param config 插件的配置参数 + */ + @Override + public void setConfig(Map config) { + + } } \ No newline at end of file diff --git a/src/main/java/org/jcnc/jnotepad/plugin/PluginManager.java b/src/main/java/org/jcnc/jnotepad/plugin/PluginManager.java index 8eaa31e..4cfef56 100644 --- a/src/main/java/org/jcnc/jnotepad/plugin/PluginManager.java +++ b/src/main/java/org/jcnc/jnotepad/plugin/PluginManager.java @@ -74,7 +74,7 @@ public class PluginManager { String displayName = plugin.getDisplayName(); categories.computeIfAbsent(categoryName, k -> new ArrayList<>()).add(displayName); } else { - LogUtil.getLogger(this.getClass()).info("Plugins file not found: {}", pluginFilePath); + LogUtil.getLogger(this.getClass()).info("PluginInfo file not found: {}", pluginFilePath); } } diff --git a/src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java b/src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java index c97d53a..c686453 100644 --- a/src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java +++ b/src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java @@ -1,5 +1,8 @@ package org.jcnc.jnotepad.plugin.interfaces; + +import java.util.Map; + /** * 插件接口 *

@@ -16,6 +19,7 @@ public interface Plugin extends PluginCategory { */ String getDisplayName(); + /** * 初始化插件 */ @@ -25,4 +29,19 @@ public interface Plugin extends PluginCategory { * 执行插件的逻辑 */ void execute(); + + /** + * 获取插件的配置参数 + * + * @return 插件的配置参数 + */ + Map getConfig(); + + /** + * 设置插件的配置参数 + * + * @param config 插件的配置参数 + */ + void setConfig(Map config); + } diff --git a/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java b/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java index d72800b..b916b9c 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java +++ b/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialog.java @@ -58,7 +58,7 @@ public class AppDialog extends Stage { HBox hBox = new HBox(builder.getHBoxSpacing(), confirmButton, cancelButton); hBox.setAlignment(builder.getHboxPos()); - hBox.setPadding(builder.getHBoxPaddingInsets()); + hBox.setPadding(builder.gethBoxPaddingInsets()); vbox.getChildren().addAll(label, customTextLabel, hBox); borderPane.setLeft(iconBox); diff --git a/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialogBuilder.java b/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialogBuilder.java index a372e43..327b896 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialogBuilder.java +++ b/src/main/java/org/jcnc/jnotepad/ui/dialog/AppDialogBuilder.java @@ -4,7 +4,6 @@ import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.image.Image; import javafx.stage.Modality; -import lombok.Data; import org.jcnc.jnotepad.model.enums.DialogType; import org.jcnc.jnotepad.ui.dialog.interfaces.DialogButtonAction; import org.jcnc.jnotepad.util.UiUtil; @@ -15,7 +14,6 @@ import org.kordamp.ikonli.javafx.FontIcon; * * @author gewuyou */ -@Data public class AppDialogBuilder { private AppDialog appDialog; private Image appIcon = UiUtil.getAppIcon(); @@ -96,6 +94,10 @@ public class AppDialogBuilder { return this; } + public AppDialog build() { + appDialog = new AppDialog(this); + return appDialog; + } /** * 设置对话框标题 @@ -238,9 +240,75 @@ public class AppDialogBuilder { return this; } + public Image getAppIcon() { + return appIcon; + } - public AppDialog build() { - appDialog = new AppDialog(this); - return appDialog; + public String getTitle() { + return title; + } + + public String getHeaderText() { + return headerText; + } + + public String getCustomText() { + return customText; + } + + public double getWidth() { + return width; + } + + public double getHeight() { + return height; + } + + public FontIcon getIcon() { + return icon; + } + + public DialogButtonAction getLeftBtnAction() { + return leftBtnAction; + } + + public DialogButtonAction getRightBtnAction() { + return rightBtnAction; + } + + public String getLeftBtnText() { + return leftBtnText; + } + + public String getRightBtnText() { + return rightBtnText; + } + + public Insets getIconCoxPaddingInsets() { + return iconCoxPaddingInsets; + } + + public Insets gethBoxPaddingInsets() { + return hBoxPaddingInsets; + } + + public boolean isResizable() { + return isResizable; + } + + public double getHBoxSpacing() { + return hBoxSpacing; + } + + public Pos getVboxPos() { + return vboxPos; + } + + public Pos getHboxPos() { + return hboxPos; + } + + public Modality getModality() { + return modality; } }