♻️ 重构代码 重构应用对话框类
This commit is contained in:
parent
df7140ff34
commit
967ad9343c
6
pom.xml
6
pom.xml
@ -73,12 +73,6 @@
|
|||||||
<scope>system</scope>
|
<scope>system</scope>
|
||||||
<systemPath>${project.basedir}/libs/icu4j-73.2.jar</systemPath>
|
<systemPath>${project.basedir}/libs/icu4j-73.2.jar</systemPath>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.projectlombok</groupId>
|
|
||||||
<artifactId>lombok</artifactId>
|
|
||||||
<version>1.18.28</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@ -15,7 +15,6 @@ module org.jcnc.jnotepad {
|
|||||||
requires org.kordamp.ikonli.core;
|
requires org.kordamp.ikonli.core;
|
||||||
requires org.kordamp.ikonli.javafx;
|
requires org.kordamp.ikonli.javafx;
|
||||||
requires org.kordamp.ikonli.antdesignicons;
|
requires org.kordamp.ikonli.antdesignicons;
|
||||||
requires lombok;
|
|
||||||
exports org.jcnc.jnotepad;
|
exports org.jcnc.jnotepad;
|
||||||
exports org.jcnc.jnotepad.model.enums;
|
exports org.jcnc.jnotepad.model.enums;
|
||||||
exports org.jcnc.jnotepad.app.config;
|
exports org.jcnc.jnotepad.app.config;
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package org.jcnc.jnotepad.app.config;
|
package org.jcnc.jnotepad.app.config;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import lombok.Data;
|
|
||||||
import org.jcnc.jnotepad.model.entity.ShortcutKey;
|
import org.jcnc.jnotepad.model.entity.ShortcutKey;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -14,7 +13,6 @@ import static org.jcnc.jnotepad.common.constants.TextConstants.CHINESE;
|
|||||||
*
|
*
|
||||||
* @author 许轲
|
* @author 许轲
|
||||||
*/
|
*/
|
||||||
@Data
|
|
||||||
public class AppConfig {
|
public class AppConfig {
|
||||||
private static final String CTRL_N = "ctrl+n";
|
private static final String CTRL_N = "ctrl+n";
|
||||||
private static final String CTRL_O = "ctrl+o";
|
private static final String CTRL_O = "ctrl+o";
|
||||||
@ -63,4 +61,28 @@ public class AppConfig {
|
|||||||
shortcutKey.setShortcutKeyValue(shortcutKeyValue);
|
shortcutKey.setShortcutKeyValue(shortcutKeyValue);
|
||||||
return shortcutKey;
|
return shortcutKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getLanguage() {
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLanguage(String language) {
|
||||||
|
this.language = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ShortcutKey> getShortcutKey() {
|
||||||
|
return shortcutKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShortcutKey(List<ShortcutKey> shortcutKey) {
|
||||||
|
this.shortcutKey = shortcutKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTextWrap() {
|
||||||
|
return textWrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTextWrap(boolean textWrap) {
|
||||||
|
this.textWrap = textWrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
package org.jcnc.jnotepad.controller.config;
|
package org.jcnc.jnotepad.controller.config;
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import org.jcnc.jnotepad.app.config.AppConfig;
|
import org.jcnc.jnotepad.app.config.AppConfig;
|
||||||
import org.jcnc.jnotepad.exception.AppException;
|
import org.jcnc.jnotepad.exception.AppException;
|
||||||
import org.jcnc.jnotepad.model.entity.ShortcutKey;
|
import org.jcnc.jnotepad.model.entity.ShortcutKey;
|
||||||
@ -24,7 +23,6 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author songdragon
|
* @author songdragon
|
||||||
*/
|
*/
|
||||||
@Data
|
|
||||||
public class AppConfigController {
|
public class AppConfigController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -165,4 +163,21 @@ public class AppConfigController {
|
|||||||
public List<ShortcutKey> getShortcutKey() {
|
public List<ShortcutKey> getShortcutKey() {
|
||||||
return this.appConfig.getShortcutKey();
|
return this.appConfig.getShortcutKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前配置文件所在目录。
|
||||||
|
*
|
||||||
|
* @return 所在目录
|
||||||
|
*/
|
||||||
|
public String getDir() {
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDir(String dir) {
|
||||||
|
this.dir = dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
private AppConfig getAppConfig() {
|
||||||
|
return appConfig;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
45
src/main/java/org/jcnc/jnotepad/model/entity/PluginInfo.java
Normal file
45
src/main/java/org/jcnc/jnotepad/model/entity/PluginInfo.java
Normal file
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
|
||||||
}
|
|
||||||
@ -1,13 +1,11 @@
|
|||||||
package org.jcnc.jnotepad.model.entity;
|
package org.jcnc.jnotepad.model.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 快捷键信息类
|
* 快捷键信息类
|
||||||
*
|
*
|
||||||
* @author gewuyou
|
* @author gewuyou
|
||||||
*/
|
*/
|
||||||
@Data
|
|
||||||
public class ShortcutKey {
|
public class ShortcutKey {
|
||||||
/**
|
/**
|
||||||
* 按钮名称
|
* 按钮名称
|
||||||
@ -17,4 +15,20 @@ public class ShortcutKey {
|
|||||||
* 快捷键值
|
* 快捷键值
|
||||||
*/
|
*/
|
||||||
private String shortcutKeyValue;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,8 @@ package org.jcnc.jnotepad.plugin;
|
|||||||
import org.jcnc.jnotepad.plugin.interfaces.Plugin;
|
import org.jcnc.jnotepad.plugin.interfaces.Plugin;
|
||||||
import org.jcnc.jnotepad.util.LogUtil;
|
import org.jcnc.jnotepad.util.LogUtil;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新按钮插件
|
* 新按钮插件
|
||||||
*
|
*
|
||||||
@ -33,4 +35,24 @@ public class ButtonPlugin implements Plugin {
|
|||||||
// 在这里实现新按钮插件的逻辑
|
// 在这里实现新按钮插件的逻辑
|
||||||
LogUtil.getLogger(this.getClass()).info("新按钮插件执行了!");
|
LogUtil.getLogger(this.getClass()).info("新按钮插件执行了!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取插件的配置参数
|
||||||
|
*
|
||||||
|
* @return 插件的配置参数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getConfig() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置插件的配置参数
|
||||||
|
*
|
||||||
|
* @param config 插件的配置参数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void setConfig(Map<String, Object> config) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -74,7 +74,7 @@ public class PluginManager {
|
|||||||
String displayName = plugin.getDisplayName();
|
String displayName = plugin.getDisplayName();
|
||||||
categories.computeIfAbsent(categoryName, k -> new ArrayList<>()).add(displayName);
|
categories.computeIfAbsent(categoryName, k -> new ArrayList<>()).add(displayName);
|
||||||
} else {
|
} else {
|
||||||
LogUtil.getLogger(this.getClass()).info("Plugins file not found: {}", pluginFilePath);
|
LogUtil.getLogger(this.getClass()).info("PluginInfo file not found: {}", pluginFilePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,8 @@
|
|||||||
package org.jcnc.jnotepad.plugin.interfaces;
|
package org.jcnc.jnotepad.plugin.interfaces;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插件接口
|
* 插件接口
|
||||||
* <p>
|
* <p>
|
||||||
@ -16,6 +19,7 @@ public interface Plugin extends PluginCategory {
|
|||||||
*/
|
*/
|
||||||
String getDisplayName();
|
String getDisplayName();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化插件
|
* 初始化插件
|
||||||
*/
|
*/
|
||||||
@ -25,4 +29,19 @@ public interface Plugin extends PluginCategory {
|
|||||||
* 执行插件的逻辑
|
* 执行插件的逻辑
|
||||||
*/
|
*/
|
||||||
void execute();
|
void execute();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取插件的配置参数
|
||||||
|
*
|
||||||
|
* @return 插件的配置参数
|
||||||
|
*/
|
||||||
|
Map<String, Object> getConfig();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置插件的配置参数
|
||||||
|
*
|
||||||
|
* @param config 插件的配置参数
|
||||||
|
*/
|
||||||
|
void setConfig(Map<String, Object> config);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,7 +58,7 @@ public class AppDialog extends Stage {
|
|||||||
|
|
||||||
HBox hBox = new HBox(builder.getHBoxSpacing(), confirmButton, cancelButton);
|
HBox hBox = new HBox(builder.getHBoxSpacing(), confirmButton, cancelButton);
|
||||||
hBox.setAlignment(builder.getHboxPos());
|
hBox.setAlignment(builder.getHboxPos());
|
||||||
hBox.setPadding(builder.getHBoxPaddingInsets());
|
hBox.setPadding(builder.gethBoxPaddingInsets());
|
||||||
vbox.getChildren().addAll(label, customTextLabel, hBox);
|
vbox.getChildren().addAll(label, customTextLabel, hBox);
|
||||||
|
|
||||||
borderPane.setLeft(iconBox);
|
borderPane.setLeft(iconBox);
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import javafx.geometry.Insets;
|
|||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.stage.Modality;
|
import javafx.stage.Modality;
|
||||||
import lombok.Data;
|
|
||||||
import org.jcnc.jnotepad.model.enums.DialogType;
|
import org.jcnc.jnotepad.model.enums.DialogType;
|
||||||
import org.jcnc.jnotepad.ui.dialog.interfaces.DialogButtonAction;
|
import org.jcnc.jnotepad.ui.dialog.interfaces.DialogButtonAction;
|
||||||
import org.jcnc.jnotepad.util.UiUtil;
|
import org.jcnc.jnotepad.util.UiUtil;
|
||||||
@ -15,7 +14,6 @@ import org.kordamp.ikonli.javafx.FontIcon;
|
|||||||
*
|
*
|
||||||
* @author gewuyou
|
* @author gewuyou
|
||||||
*/
|
*/
|
||||||
@Data
|
|
||||||
public class AppDialogBuilder {
|
public class AppDialogBuilder {
|
||||||
private AppDialog appDialog;
|
private AppDialog appDialog;
|
||||||
private Image appIcon = UiUtil.getAppIcon();
|
private Image appIcon = UiUtil.getAppIcon();
|
||||||
@ -96,6 +94,10 @@ public class AppDialogBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AppDialog build() {
|
||||||
|
appDialog = new AppDialog(this);
|
||||||
|
return appDialog;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置对话框标题
|
* 设置对话框标题
|
||||||
@ -238,9 +240,75 @@ public class AppDialogBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Image getAppIcon() {
|
||||||
|
return appIcon;
|
||||||
|
}
|
||||||
|
|
||||||
public AppDialog build() {
|
public String getTitle() {
|
||||||
appDialog = new AppDialog(this);
|
return title;
|
||||||
return appDialog;
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user