!58 refactor-重构UI代码,提高美观度

Merge pull request !58 from Luke/dev
This commit is contained in:
格物方能致知 2023-08-31 00:12:10 +00:00 committed by Gitee
commit 3aec1f93cd
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
22 changed files with 196 additions and 56 deletions

View File

@ -23,13 +23,10 @@ module org.jcnc.jnotepad {
exports org.jcnc.jnotepad.controller.event.handler.menuBar;
exports org.jcnc.jnotepad.tool;
exports org.jcnc.jnotepad.Interface;
exports org.jcnc.jnotepad.ui.root.center.tab;
exports org.jcnc.jnotepad.ui.root.bottom.status;
exports org.jcnc.jnotepad.ui.root.top.menu;
exports org.jcnc.jnotepad.ui.module;
exports org.jcnc.jnotepad.ui.setStage;
exports org.jcnc.jnotepad.ui.root.top.tools;
exports org.jcnc.jnotepad.view.manager;
opens org.jcnc.jnotepad.app.config;
exports org.jcnc.jnotepad.root.center.main.bottom.status;
}

View File

@ -4,9 +4,9 @@ import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
import org.jcnc.jnotepad.constants.TextConstants;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.tool.UiUtil;
import org.jcnc.jnotepad.ui.module.LineNumberTextArea;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.jcnc.jnotepad.view.manager.ViewManager;

View File

@ -6,11 +6,11 @@ import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.stage.FileChooser;
import org.jcnc.jnotepad.manager.ThreadPoolManager;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.tool.EncodingDetector;
import org.jcnc.jnotepad.tool.LogUtil;
import org.jcnc.jnotepad.tool.UiUtil;
import org.jcnc.jnotepad.ui.module.LineNumberTextArea;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import java.io.BufferedReader;
import java.io.File;

View File

@ -5,9 +5,9 @@ import javafx.event.EventHandler;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.stage.FileChooser;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.tool.LogUtil;
import org.jcnc.jnotepad.tool.UiUtil;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.slf4j.Logger;
import java.io.File;

View File

@ -4,10 +4,10 @@ import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.stage.FileChooser;
import org.jcnc.jnotepad.controller.i18n.LocalizationController;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.tool.LogUtil;
import org.jcnc.jnotepad.tool.SingletonUtil;
import org.jcnc.jnotepad.tool.UiUtil;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.slf4j.Logger;
import java.io.File;

View File

@ -0,0 +1,31 @@
package org.jcnc.jnotepad.root;
import org.jcnc.jnotepad.root.bottom.RootBottomSideBarVBox;
import org.jcnc.jnotepad.root.center.main.MainBorderPane;
import org.jcnc.jnotepad.root.left.sidebar.RootLeftSideBarVBox;
import org.jcnc.jnotepad.root.right.RootRightSideBarVBox;
import org.jcnc.jnotepad.root.top.RootTopSideBarVBox;
import org.jcnc.jnotepad.ui.module.AbstractBorderPane;
public class RootBorderPane extends AbstractBorderPane {
private static final RootBorderPane INSTANCE = new RootBorderPane();
private RootBorderPane() {
initRootBorderPane();
}
private void initRootBorderPane() {
setCenterComponent(MainBorderPane.getInstance());
setLeftComponent(RootLeftSideBarVBox.getInstance());
setRightComponent(RootRightSideBarVBox.getInstance());
setTopComponent(RootTopSideBarVBox.getInstance());
setBottomComponent(RootBottomSideBarVBox.getInstance());
}
public static RootBorderPane getInstance() {
return INSTANCE;
}
}

View File

@ -0,0 +1,21 @@
package org.jcnc.jnotepad.root.bottom;
import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox;
import org.jcnc.jnotepad.ui.module.AbstractVBox;
public class RootBottomSideBarVBox extends AbstractVBox {
private static final RootBottomSideBarVBox INSTANCE = new RootBottomSideBarVBox();
private RootBottomSideBarVBox() {
initSidebarVBox();
}
private void initSidebarVBox() {
getChildren().addAll(JNotepadStatusBox.getInstance());
}
public static RootBottomSideBarVBox getInstance() {
return INSTANCE;
}
}

View File

@ -0,0 +1,28 @@
package org.jcnc.jnotepad.root.center.main;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.root.center.main.top.MainTopVBox;
import org.jcnc.jnotepad.ui.module.AbstractBorderPane;
public class MainBorderPane extends AbstractBorderPane {
private static final MainBorderPane INSTANCE = new MainBorderPane();
private MainBorderPane() {
initRootBorderPane();
}
private void initRootBorderPane() {
//setBottomComponent(JNotepadStatusBox.getInstance());
setCenter(JNotepadTabPane.getInstance());
setTopComponent(MainTopVBox.getInstance());
}
public static MainBorderPane getInstance() {
return INSTANCE;
}
}

View File

@ -1,13 +1,14 @@
package org.jcnc.jnotepad.ui.root.bottom.status;
package org.jcnc.jnotepad.root.center.main.bottom.status;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
import org.jcnc.jnotepad.constants.TextConstants;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.ui.module.AbstractHBox;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane;
import java.nio.charset.Charset;
@ -46,6 +47,7 @@ public class JNotepadStatusBox extends AbstractHBox {
* @since 2023/8/27 9:33
*/
public void initStatusBox() {
this.getChildren().clear();
// 创建状态栏
statusLabel = new Label();
@ -57,9 +59,16 @@ public class JNotepadStatusBox extends AbstractHBox {
this.getChildren().add(statusLabel);
this.getChildren().add(encodingLabel);
this.getProperties().put("borderpane-margin", new Insets(5, 10, 5, 10));
this.setAlignment(Pos.BASELINE_RIGHT);
UiResourceBundle.getInstance().addListener((observable, oldValue, newValue) -> updateWhenTabSelected());
/*
第一个参数 10 表示上边距
第二个参数 10 表示右边距
第三个参数 10 表示下边距
第四个参数 10 表示左边距
*/
setMargin(statusLabel, new Insets(5, 10, 5, 10));
}
public void updateEncodingLabel() {
@ -75,7 +84,7 @@ public class JNotepadStatusBox extends AbstractHBox {
if (encoding == null) {
encoding = Charset.defaultCharset().name();
}
this.encodingLabel.setText(getEncodingFormattedText(encoding));
this.encodingLabel.setText(getEncodingFormattedText(encoding) + "\t");
}
/**
@ -155,7 +164,7 @@ public class JNotepadStatusBox extends AbstractHBox {
}
protected String getEncodingFormattedText(String encoding) {
String encodingLabelFormat = "\t%s : %s";
String encodingLabelFormat = "%s : %s";
return String.format(encodingLabelFormat, UiResourceBundle.getContent(TextConstants.ENCODE), encoding);
}
}

View File

@ -1,4 +1,4 @@
package org.jcnc.jnotepad.ui.root.center.tab;
package org.jcnc.jnotepad.root.center.main.center.tab;
import javafx.scene.control.Tab;
import org.jcnc.jnotepad.controller.config.AppConfigController;

View File

@ -1,4 +1,4 @@
package org.jcnc.jnotepad.ui.root.center.tab;
package org.jcnc.jnotepad.root.center.main.center.tab;
import javafx.scene.control.TabPane;
import org.jcnc.jnotepad.controller.config.AppConfigController;

View File

@ -0,0 +1,20 @@
package org.jcnc.jnotepad.root.center.main.top;
import javafx.scene.layout.VBox;
import org.jcnc.jnotepad.root.center.main.top.menu.JNotepadMenuBar;
import org.jcnc.jnotepad.root.center.main.top.tools.ToolHBox;
public class MainTopVBox extends VBox {
private static final MainTopVBox INSTANCE = new MainTopVBox();
private MainTopVBox() {
// 在构造函数中初始化
getChildren().add(JNotepadMenuBar.getInstance());
getChildren().add(ToolHBox.getInstance());
}
public static MainTopVBox getInstance() {
return INSTANCE;
}
}

View File

@ -1,4 +1,4 @@
package org.jcnc.jnotepad.ui.root.top.menu;
package org.jcnc.jnotepad.root.center.main.top.menu;
import javafx.event.ActionEvent;
import javafx.scene.control.*;
@ -10,10 +10,10 @@ import org.jcnc.jnotepad.controller.config.AppConfigController;
import org.jcnc.jnotepad.controller.event.handler.menuBar.*;
import org.jcnc.jnotepad.controller.event.handler.tool.SetBtn;
import org.jcnc.jnotepad.controller.i18n.LocalizationController;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.root.center.main.top.tools.JNotepadToolBar;
import org.jcnc.jnotepad.tool.LogUtil;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.ui.root.top.tools.JNotepadToolBar;
import org.slf4j.Logger;
import java.util.*;

View File

@ -1,4 +1,4 @@
package org.jcnc.jnotepad.ui.root.top.tools;
package org.jcnc.jnotepad.root.center.main.top.tools;
import javafx.scene.control.Button;
import javafx.scene.control.ToolBar;

View File

@ -1,4 +1,4 @@
package org.jcnc.jnotepad.ui.root.top.tools;
package org.jcnc.jnotepad.root.center.main.top.tools;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;

View File

@ -0,0 +1,21 @@
package org.jcnc.jnotepad.root.left.sidebar;
import org.jcnc.jnotepad.ui.module.AbstractVBox;
public class RootLeftSideBarVBox extends AbstractVBox {
private static final RootLeftSideBarVBox INSTANCE = new RootLeftSideBarVBox();
private RootLeftSideBarVBox() {
initSidebarVBox();
}
private void initSidebarVBox() {
}
public static RootLeftSideBarVBox getInstance() {
return INSTANCE;
}
}

View File

@ -0,0 +1,20 @@
package org.jcnc.jnotepad.root.right;
import org.jcnc.jnotepad.ui.module.AbstractVBox;
public class RootRightSideBarVBox extends AbstractVBox {
private static final RootRightSideBarVBox INSTANCE = new RootRightSideBarVBox();
private RootRightSideBarVBox() {
initSidebarVBox();
}
private void initSidebarVBox() {
}
public static RootRightSideBarVBox getInstance() {
return INSTANCE;
}
}

View File

@ -0,0 +1,20 @@
package org.jcnc.jnotepad.root.top;
import org.jcnc.jnotepad.ui.module.AbstractVBox;
public class RootTopSideBarVBox extends AbstractVBox {
private static final RootTopSideBarVBox INSTANCE = new RootTopSideBarVBox();
private RootTopSideBarVBox() {
initSidebarVBox();
}
private void initSidebarVBox() {
}
public static RootTopSideBarVBox getInstance() {
return INSTANCE;
}
}

View File

@ -3,10 +3,10 @@ package org.jcnc.jnotepad.tool;
import javafx.scene.image.Image;
import javafx.stage.Window;
import org.jcnc.jnotepad.constants.AppConstants;
import org.jcnc.jnotepad.ui.root.bottom.status.JNotepadStatusBox;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.ui.root.top.menu.JNotepadMenuBar;
import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.root.center.main.top.menu.JNotepadMenuBar;
import org.jcnc.jnotepad.ui.setStage.SetStage;
import org.jcnc.jnotepad.view.manager.ViewManager;

View File

@ -3,10 +3,10 @@ package org.jcnc.jnotepad.ui.module;
import javafx.beans.property.StringProperty;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab;
import org.jcnc.jnotepad.tool.LogUtil;
import org.jcnc.jnotepad.tool.SingletonUtil;
import org.jcnc.jnotepad.tool.UiUtil;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab;
import org.slf4j.Logger;
import java.io.BufferedWriter;

View File

@ -1,20 +0,0 @@
package org.jcnc.jnotepad.ui.root.top;
import javafx.scene.layout.VBox;
import org.jcnc.jnotepad.ui.root.top.menu.JNotepadMenuBar;
import org.jcnc.jnotepad.ui.root.top.tools.ToolHBox;
public class RootTopVBox extends VBox {
private static final RootTopVBox INSTANCE = new RootTopVBox();
private RootTopVBox() {
// 在构造函数中初始化
getChildren().add(JNotepadMenuBar.getInstance());
getChildren().add(ToolHBox.getInstance());
}
public static RootTopVBox getInstance() {
return INSTANCE;
}
}

View File

@ -3,9 +3,7 @@ package org.jcnc.jnotepad.view.manager;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import org.jcnc.jnotepad.exception.AppException;
import org.jcnc.jnotepad.ui.root.bottom.status.JNotepadStatusBox;
import org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane;
import org.jcnc.jnotepad.ui.root.top.RootTopVBox;
import org.jcnc.jnotepad.root.RootBorderPane;
/**
@ -76,12 +74,7 @@ public class ViewManager {
// 创建主界面布局
root = new BorderPane();
root.setTop(RootTopVBox.getInstance());
// 创建标签页和文本编辑区域
root.setCenter(JNotepadTabPane.getInstance());
root.setBottom(JNotepadStatusBox.getInstance());
root.setCenter(RootBorderPane.getInstance());
scene.setRoot(root);
}