实现服务的配置与接口的增删改查
This commit is contained in:
112
src/com/dayrain/handle/AddUrlHandler.java
Normal file
112
src/com/dayrain/handle/AddUrlHandler.java
Normal file
@@ -0,0 +1,112 @@
|
||||
package com.dayrain.handle;
|
||||
|
||||
import com.dayrain.entity.ConfigHolder;
|
||||
import com.dayrain.entity.ServerConfig;
|
||||
import com.dayrain.entity.ServerUrl;
|
||||
import com.dayrain.server.ServerThread;
|
||||
import com.dayrain.utils.ListViewHelper;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 添加路径
|
||||
* @author peng
|
||||
* @date 2021/10/27
|
||||
*/
|
||||
public class AddUrlHandler implements EventHandler<ActionEvent> {
|
||||
|
||||
private final ServerConfig serverConfig;
|
||||
|
||||
private final ListView<ServerUrl> serverUrlListView;
|
||||
|
||||
private final HashMap<String, ServerThread> threadMap;
|
||||
|
||||
private final Stage primaryStage;
|
||||
|
||||
public AddUrlHandler(ServerConfig serverConfig, ListView<ServerUrl> serverUrlListView, HashMap<String, ServerThread> threadMap, Stage primaryStage) {
|
||||
this.serverConfig = serverConfig;
|
||||
this.serverUrlListView = serverUrlListView;
|
||||
this.threadMap = threadMap;
|
||||
this.primaryStage = primaryStage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Stage stage = new Stage();
|
||||
Label nameLabel = new Label("接口名称:");
|
||||
nameLabel.setPrefWidth(80);
|
||||
TextField nameField = new TextField();
|
||||
Label urlLabel = new Label("接口地址:");
|
||||
TextField urlField = new TextField();
|
||||
urlField.setPrefWidth(80);
|
||||
|
||||
Label respLabel = new Label("返回结果:");
|
||||
TextArea textArea = new TextArea();
|
||||
textArea.setPrefWidth(80);
|
||||
|
||||
HBox btnHBox = new HBox();
|
||||
Button saveButton = new Button("保存");
|
||||
btnHBox.getChildren().add(saveButton);
|
||||
btnHBox.setAlignment(Pos.CENTER_RIGHT);
|
||||
|
||||
GridPane gridPane = new GridPane();
|
||||
gridPane.add(nameLabel, 0, 0);
|
||||
gridPane.add(nameField, 1, 0);
|
||||
gridPane.add(urlLabel, 0, 1);
|
||||
gridPane.add(urlField, 1, 1);
|
||||
gridPane.add(respLabel, 0, 2);
|
||||
gridPane.add(textArea, 1, 2);
|
||||
gridPane.add(btnHBox, 1, 3);
|
||||
gridPane.setAlignment(Pos.CENTER);
|
||||
gridPane.setHgap(20d);
|
||||
gridPane.setVgap(10d);
|
||||
|
||||
stage.setWidth(500);
|
||||
stage.setHeight(400);
|
||||
stage.initOwner(primaryStage);
|
||||
stage.initModality(Modality.WINDOW_MODAL);
|
||||
stage.setScene(new Scene(gridPane));
|
||||
stage.show();
|
||||
|
||||
saveButton.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
String name = nameField.getText();
|
||||
List<ServerUrl> serverUrls = serverConfig.getServerUrls();
|
||||
for (ServerUrl serverUrl : serverUrls) {
|
||||
if(serverUrl.getUrlName().equals(name)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
String url = urlField.getText();
|
||||
String resp = textArea.getText();
|
||||
|
||||
ServerUrl serverUrl = new ServerUrl(name, url, null, resp);
|
||||
|
||||
serverUrls.add(serverUrl);
|
||||
ServerThread serverThread = threadMap.getOrDefault(serverConfig.getServerName(), null);
|
||||
if(serverThread != null) {
|
||||
serverThread.addContext(serverUrl);
|
||||
}
|
||||
ListViewHelper.addAndRefresh(serverUrl, serverUrlListView);
|
||||
ConfigHolder.save();
|
||||
stage.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
44
src/com/dayrain/handle/DeleteUrlHandler.java
Normal file
44
src/com/dayrain/handle/DeleteUrlHandler.java
Normal file
@@ -0,0 +1,44 @@
|
||||
package com.dayrain.handle;
|
||||
|
||||
import com.dayrain.entity.ConfigHolder;
|
||||
import com.dayrain.entity.ServerConfig;
|
||||
import com.dayrain.entity.ServerUrl;
|
||||
import com.dayrain.server.ServerThread;
|
||||
import com.dayrain.utils.ListViewHelper;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.scene.control.ListView;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 删除路径
|
||||
* @author peng
|
||||
* @date 2021/10/27
|
||||
*/
|
||||
public class DeleteUrlHandler implements EventHandler<ActionEvent> {
|
||||
|
||||
private final ServerConfig serverConfig;
|
||||
|
||||
private final ListView<ServerUrl> serverUrlListView;
|
||||
|
||||
private final HashMap<String, ServerThread> threadMap;
|
||||
|
||||
private final ServerUrl serverUrl;
|
||||
|
||||
public DeleteUrlHandler(ServerUrl serverUrl, ServerConfig serverConfig, ListView<ServerUrl> serverUrlListView, HashMap<String, ServerThread> threadMap) {
|
||||
this.serverUrl = serverUrl;
|
||||
this.serverConfig = serverConfig;
|
||||
this.serverUrlListView = serverUrlListView;
|
||||
this.threadMap = threadMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
List<ServerUrl> serverUrls = serverConfig.getServerUrls();
|
||||
serverUrls.remove(serverUrl);
|
||||
ConfigHolder.save();
|
||||
ListViewHelper.deleteAndRefresh(serverUrl, serverUrlListView);
|
||||
}
|
||||
}
|
||||
54
src/com/dayrain/handle/StartServerHandler.java
Normal file
54
src/com/dayrain/handle/StartServerHandler.java
Normal file
@@ -0,0 +1,54 @@
|
||||
package com.dayrain.handle;
|
||||
|
||||
import com.dayrain.entity.Server;
|
||||
import com.dayrain.entity.ServerConfig;
|
||||
import com.dayrain.server.ServerThread;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.shape.Circle;
|
||||
|
||||
import java.util.HashMap;
|
||||
/**
|
||||
* 服务启动与关闭控制器
|
||||
* @author peng
|
||||
* @date 2021/10/27
|
||||
*/
|
||||
public class StartServerHandler implements EventHandler<ActionEvent> {
|
||||
|
||||
private final Button openButton;
|
||||
|
||||
private final Circle statusCircle;
|
||||
|
||||
private final ServerConfig serverConfig;
|
||||
|
||||
private final HashMap<String, ServerThread> threadMap;
|
||||
|
||||
public StartServerHandler(Button openButton, Circle statusCircle, ServerConfig serverConfig, HashMap<String, ServerThread> threadMap) {
|
||||
this.openButton = openButton;
|
||||
this.statusCircle = statusCircle;
|
||||
this.serverConfig = serverConfig;
|
||||
this.threadMap = threadMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
String serverName = serverConfig.getServerName();
|
||||
if(threadMap.containsKey(serverName)) {
|
||||
ServerThread serverThread = threadMap.get(serverName);
|
||||
if(serverThread != null) {
|
||||
serverThread.stopServer();
|
||||
}
|
||||
threadMap.remove(serverName);
|
||||
openButton.setText("开启服务");
|
||||
statusCircle.setFill(Color.RED);
|
||||
}else {
|
||||
ServerThread serverThread = new ServerThread(new Server(serverConfig));
|
||||
serverThread.start();
|
||||
threadMap.put(serverName, serverThread);
|
||||
openButton.setText("关闭服务");
|
||||
statusCircle.setFill(Color.GREEN);
|
||||
}
|
||||
}
|
||||
}
|
||||
77
src/com/dayrain/handle/UpdateServerConfigHandler.java
Normal file
77
src/com/dayrain/handle/UpdateServerConfigHandler.java
Normal file
@@ -0,0 +1,77 @@
|
||||
package com.dayrain.handle;
|
||||
|
||||
import com.dayrain.entity.ConfigHolder;
|
||||
import com.dayrain.entity.ServerConfig;
|
||||
import com.dayrain.utils.ListViewHelper;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class UpdateServerConfigHandler implements EventHandler<ActionEvent> {
|
||||
|
||||
private final ServerConfig serverConfig;
|
||||
|
||||
private final Stage primaryStage;
|
||||
|
||||
public UpdateServerConfigHandler(ServerConfig serverConfig, Stage primaryStage) {
|
||||
this.serverConfig = serverConfig;
|
||||
this.primaryStage = primaryStage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Stage stage = new Stage();
|
||||
Label serverName = new Label("服务名称:");
|
||||
serverName.setPrefWidth(80);
|
||||
TextField nameField = new TextField(serverConfig.getServerName());
|
||||
Label portLabel = new Label("端口:");
|
||||
TextField portField = new TextField(String.valueOf(serverConfig.getPort()));
|
||||
portField.setPrefWidth(80);
|
||||
|
||||
HBox btnHBox = new HBox();
|
||||
Label saveTips = new Label("重启后生效");
|
||||
saveTips.setStyle("-fx-background-color: #ff0000");
|
||||
Button saveButton = new Button("保存");
|
||||
btnHBox.getChildren().addAll(saveTips, saveButton);
|
||||
btnHBox.setAlignment(Pos.CENTER_RIGHT);
|
||||
btnHBox.setSpacing(20d);
|
||||
|
||||
GridPane gridPane = new GridPane();
|
||||
gridPane.add(serverName, 0, 0);
|
||||
gridPane.add(nameField, 1, 0);
|
||||
gridPane.add(portLabel, 0, 1);
|
||||
gridPane.add(portField, 1, 1);
|
||||
|
||||
gridPane.add(btnHBox, 1, 3);
|
||||
gridPane.setAlignment(Pos.CENTER);
|
||||
gridPane.setHgap(20d);
|
||||
gridPane.setVgap(10d);
|
||||
|
||||
stage.setWidth(400);
|
||||
stage.setHeight(300);
|
||||
stage.initOwner(primaryStage);
|
||||
stage.initModality(Modality.WINDOW_MODAL);
|
||||
stage.setScene(new Scene(gridPane));
|
||||
stage.show();
|
||||
|
||||
saveButton.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
String name = nameField.getText();
|
||||
int port = Integer.parseInt(portField.getText());
|
||||
serverConfig.setPort(port);
|
||||
serverConfig.setServerName(name);
|
||||
ConfigHolder.save();
|
||||
stage.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
95
src/com/dayrain/handle/UpdateUrlHandler.java
Normal file
95
src/com/dayrain/handle/UpdateUrlHandler.java
Normal file
@@ -0,0 +1,95 @@
|
||||
package com.dayrain.handle;
|
||||
|
||||
import com.dayrain.entity.ConfigHolder;
|
||||
import com.dayrain.entity.ServerConfig;
|
||||
import com.dayrain.entity.ServerUrl;
|
||||
import com.dayrain.server.ServerThread;
|
||||
import com.dayrain.utils.ListViewHelper;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.ListView;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class UpdateUrlHandler implements EventHandler<ActionEvent> {
|
||||
|
||||
private final ListView<ServerUrl> serverUrlListView;
|
||||
|
||||
private final ServerUrl serverUrl;
|
||||
|
||||
private final Stage primaryStage;
|
||||
|
||||
public UpdateUrlHandler(ServerUrl serverUrl, ListView<ServerUrl> serverUrlListView, Stage primaryStage) {
|
||||
this.serverUrl = serverUrl;
|
||||
this.serverUrlListView = serverUrlListView;
|
||||
this.primaryStage = primaryStage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
Stage stage = new Stage();
|
||||
Label nameLabel = new Label("接口名称:");
|
||||
nameLabel.setPrefWidth(80);
|
||||
TextField nameField = new TextField(serverUrl.getUrlName());
|
||||
Label urlLabel = new Label("接口地址:");
|
||||
TextField urlField = new TextField(serverUrl.getUrl());
|
||||
urlField.setPrefWidth(80);
|
||||
|
||||
Label respLabel = new Label("返回结果:");
|
||||
TextArea textArea = new TextArea(serverUrl.getResponseBody());
|
||||
textArea.setPrefWidth(80);
|
||||
|
||||
HBox btnHBox = new HBox();
|
||||
Label saveTips = new Label("重启后生效");
|
||||
saveTips.setStyle("-fx-background-color: #ff0000");
|
||||
Button saveButton = new Button("保存");
|
||||
btnHBox.getChildren().addAll(saveTips, saveButton);
|
||||
btnHBox.setAlignment(Pos.CENTER_RIGHT);
|
||||
btnHBox.setSpacing(20d);
|
||||
|
||||
GridPane gridPane = new GridPane();
|
||||
gridPane.add(nameLabel, 0, 0);
|
||||
gridPane.add(nameField, 1, 0);
|
||||
gridPane.add(urlLabel, 0, 1);
|
||||
gridPane.add(urlField, 1, 1);
|
||||
gridPane.add(respLabel, 0, 2);
|
||||
gridPane.add(textArea, 1, 2);
|
||||
gridPane.add(btnHBox, 1, 3);
|
||||
gridPane.setAlignment(Pos.CENTER);
|
||||
gridPane.setHgap(20d);
|
||||
gridPane.setVgap(10d);
|
||||
|
||||
stage.setWidth(500);
|
||||
stage.setHeight(400);
|
||||
stage.initOwner(primaryStage);
|
||||
stage.initModality(Modality.WINDOW_MODAL);
|
||||
stage.setScene(new Scene(gridPane));
|
||||
stage.show();
|
||||
|
||||
saveButton.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
String name = nameField.getText();
|
||||
String url = urlField.getText();
|
||||
String resp = textArea.getText();
|
||||
serverUrl.setUrlName(name);
|
||||
serverUrl.setUrl(url);
|
||||
serverUrl.setResponseBody(resp);
|
||||
|
||||
ListViewHelper.refresh(serverUrlListView);
|
||||
ConfigHolder.save();
|
||||
stage.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user