绘制主界面

This commit is contained in:
peng
2021-10-26 20:05:13 +08:00
parent e294131e95
commit 136f8d62ac
5 changed files with 116 additions and 61 deletions

View File

@@ -1,32 +1,35 @@
package com.dayrain;
import com.dayrain.entity.Configuration;
import com.dayrain.entity.ConfigurationHolder;
import com.dayrain.entity.RequestType;
import com.dayrain.entity.Server;
import com.dayrain.entity.ServerConfig;
import com.dayrain.entity.ServerUrl;
import com.dayrain.views.HomePage;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TitledPane;
import javafx.stage.Stage;
import java.util.ArrayList;
import java.util.List;
public class ApplicationStarter extends Application {
Configuration configuration = configInit();
public static void main(String[] args) {
ConfigurationHolder.reload(get());
Configuration configuration = ConfigurationHolder.get();
List<ServerConfig> serverConfigs = configuration.getServerConfigs();
for (ServerConfig serverConfig : serverConfigs) {
Server server = new Server(serverConfig);
Thread thread = new Thread(server);
thread.start();
}
// launch(args);
// List<ServerConfig> serverConfigs = configuration.getServerConfigs();
// for (ServerConfig serverConfig : serverConfigs) {
// Server server = new Server(serverConfig);
// Thread thread = new Thread(server);
// thread.start();
// }
launch(args);
}
private static Configuration get() {
private static Configuration configInit() {
Configuration configuration = new Configuration();
configuration.setServerConfigs(new ArrayList<ServerConfig>(){
{
@@ -45,12 +48,14 @@ public class ApplicationStarter extends Application {
}));
}
});
configuration.setWidth(1200);
configuration.setHeight(800);
return configuration;
}
@Override
public void start(Stage primaryStage) throws Exception {
new HomePage(primaryStage, configuration).start();
}
}

View File

@@ -4,8 +4,22 @@ import java.util.List;
public class Configuration {
private String projectName;
private int width;
private int height;
private List<ServerConfig>serverConfigs;
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public List<ServerConfig> getServerConfigs() {
return serverConfigs;
}
@@ -13,4 +27,20 @@ public class Configuration {
public void setServerConfigs(List<ServerConfig> serverConfigs) {
this.serverConfigs = serverConfigs;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}

View File

@@ -1,18 +0,0 @@
package com.dayrain.entity;
public class ConfigurationHolder {
private static Configuration configuration;
public static void init() {
configuration = new Configuration();
}
public static void reload(Configuration config) {
configuration = config;
}
public static Configuration get() {
return configuration;
}
}

View File

@@ -45,7 +45,6 @@ public class RequestHandler implements HttpHandler {
}
private void response(HttpExchange exchange, String jsonBody) {
setHeaders(exchange);
try {
exchange.sendResponseHeaders(200, jsonBody.length());
exchange.setAttribute("Content-Type","application/json; charset=utf-8");
@@ -56,33 +55,4 @@ public class RequestHandler implements HttpHandler {
e.printStackTrace();
}
}
private void setHeaders(HttpExchange exchange) {
Map<String, String> headerMap = serverUrl.getHeaderMap();
if(headerMap != null && headerMap.size() > 0) {
Headers responseHeaders = exchange.getResponseHeaders();
for (String header : headerMap.keySet()) {
responseHeaders.add(header, headerMap.get(header));
}
}
}
public static Map<String,String> formData2Dic(String formData ) {
Map<String,String> result = new HashMap<>();
if(formData== null || formData.trim().length() == 0) {
return result;
}
final String[] items = formData.split("&");
Arrays.stream(items).forEach(item ->{
final String[] keyAndVal = item.split("=");
if( keyAndVal.length == 2) {
try{
final String key = URLDecoder.decode( keyAndVal[0],"utf8");
final String val = URLDecoder.decode( keyAndVal[1],"utf8");
result.put(key,val);
}catch (UnsupportedEncodingException ignored) {}
}
});
return result;
}
}

View File

@@ -0,0 +1,68 @@
package com.dayrain.views;
import com.dayrain.entity.Configuration;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TitledPane;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class HomePage {
private Stage primaryStage;
private Configuration configuration;
public HomePage(Stage primaryStage, Configuration configuration) {
this.primaryStage = primaryStage;
this.configuration = configuration;
}
public void start() {
BorderPane borderPane = new BorderPane();
//菜单栏
MenuBar menuBar = new MenuBar();
Menu menu1 = new Menu("文件");
MenuItem menuItem1 = new MenuItem("新建");
MenuItem menuItem2 = new MenuItem("导入");
MenuItem menuItem3 = new MenuItem("导出");
menu1.getItems().addAll(menuItem1, menuItem2, menuItem3);
Menu menu2 = new Menu("日志");
Menu menu3 = new Menu("帮助");
menuBar.getMenus().addAll(menu1, menu2, menu3);
borderPane.setTop(menuBar);
//服务列表
VBox serverBox = new VBox();
HBox urlBox = new HBox();
Label nameLabel = new Label("登录");
Label urlLabel = new Label("/wms/login");
Button configButton = new Button("配置");
Button deleteButton = new Button("删除");
urlBox.setSpacing(20d);
urlBox.setAlignment(Pos.CENTER_LEFT);
urlBox.getChildren().addAll(nameLabel, urlLabel, configButton, deleteButton);
TitledPane titledPane = new TitledPane("众华WMS", urlBox);
titledPane.setPrefWidth(600d);
serverBox.getChildren().addAll(titledPane);
borderPane.setLeft(serverBox);
primaryStage.setScene(new Scene(borderPane));
primaryStage.setWidth(configuration.getWidth());
primaryStage.setHeight(configuration.getHeight());
primaryStage.show();
}
}