Skip to content

Commit 30dfe74

Browse files
committed
1、添加配置保存至服务器;2、添加子Row配置。
1 parent 9d3ed27 commit 30dfe74

12 files changed

Lines changed: 756 additions & 267 deletions

File tree

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,13 @@
194194
<version>2.0.17</version>
195195
</dependency>
196196

197+
<!-- sftp工具 -->
198+
<dependency>
199+
<groupId>com.jcraft</groupId>
200+
<artifactId>jsch</artifactId>
201+
<version>0.1.55</version>
202+
</dependency>
203+
197204
<!-- 目录文件监控工具包 -->
198205
<!-- <dependency> <groupId>net.sf.jpathwatch</groupId> <artifactId>jpathwatch</artifactId>
199206
<version>0.95</version> </dependency> -->

src/main/java/com/xwintop/xJavaFxTool/controller/epmsTools/gatewayConfTool/GatewayConfToolController.java

Lines changed: 89 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.xwintop.xJavaFxTool.controller.epmsTools.gatewayConfTool;
22

33
import com.easipass.gateway.entity.TaskConfig;
4+
import com.jcraft.jsch.ChannelSftp;
45
import com.xwintop.xJavaFxTool.services.epmsTools.gatewayConfTool.GatewayConfToolService;
56
import com.xwintop.xJavaFxTool.view.epmsTools.gatewayConfTool.GatewayConfToolView;
7+
import javafx.application.Platform;
68
import javafx.event.ActionEvent;
79
import javafx.fxml.FXML;
810
import javafx.scene.control.ContextMenu;
@@ -13,8 +15,15 @@
1315
import lombok.Getter;
1416
import lombok.Setter;
1517
import lombok.extern.slf4j.Slf4j;
18+
import org.apache.commons.beanutils.BeanUtils;
19+
import org.apache.commons.lang3.StringUtils;
1620
import org.apache.commons.lang3.time.DateFormatUtils;
21+
import org.yaml.snakeyaml.Yaml;
1722

23+
import java.io.ByteArrayInputStream;
24+
import java.io.File;
25+
import java.io.FileWriter;
26+
import java.io.Writer;
1827
import java.net.URL;
1928
import java.util.Date;
2029
import java.util.Map;
@@ -38,7 +47,9 @@ private void initView() {
3847
TreeItem<String> treeItem = new TreeItem<String>("TaskConfig列表");
3948
treeItem.setExpanded(true);
4049
configurationTreeView.setRoot(treeItem);
50+
hostTextField.setText("127.0.0.1");
4151
configurationPathTextField.setText("E:\\ideaWorkspaces\\gatewaySpring\\configuration");
52+
// configurationPathTextField.setText("/opt/TestXf/configuration");
4253
}
4354

4455
private void initEvent() {
@@ -93,8 +104,21 @@ private void initEvent() {
93104
contextMenu.getItems().add(menu_AddTask);
94105
MenuItem menu_RemoveFile = new MenuItem("删除文件");
95106
menu_RemoveFile.setOnAction(event1 -> {
96-
selectedItem.getParent().getChildren().remove(selectedItem);
97107
gatewayConfToolService.getTaskConfigFileMap().remove(selectedItem.getValue());
108+
if ("127.0.0.1".equals(hostTextField.getText())) {
109+
new File(configurationPathTextField.getText(), selectedItem.getValue()).delete();
110+
} else {
111+
try {
112+
ChannelSftp channel = gatewayConfToolService.getSftpChannel();
113+
String remotePath = configurationPathTextField.getText();
114+
remotePath = StringUtils.appendIfMissing(remotePath, "/", "/", "\\");
115+
channel.rm(remotePath + selectedItem.getValue());
116+
gatewayConfToolService.closeSftpSession(channel);
117+
} catch (Exception e) {
118+
log.error("删除文件失败:", e);
119+
}
120+
}
121+
selectedItem.getParent().getChildren().remove(selectedItem);
98122
});
99123
contextMenu.getItems().add(menu_RemoveFile);
100124
MenuItem menu_RemoveAll = new MenuItem("删除所有任务");
@@ -105,30 +129,83 @@ private void initEvent() {
105129
contextMenu.getItems().add(menu_RemoveAll);
106130
MenuItem menu_SaveFile = new MenuItem("保存文件");
107131
menu_SaveFile.setOnAction(event1 -> {
132+
try {
133+
if ("127.0.0.1".equals(hostTextField.getText())) {
134+
File file = new File(configurationPathTextField.getText(), selectedItem.getValue());
135+
Yaml yaml = new Yaml();
136+
Writer writer = new FileWriter(file);
137+
yaml.dump(gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getValue()).values().toArray(), writer);
138+
writer.close();
139+
} else {
140+
Yaml yaml = new Yaml();
141+
byte[] configBytes = yaml.dump(gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getValue()).values().toArray()).getBytes();
142+
ChannelSftp channel = gatewayConfToolService.getSftpChannel();
143+
String remotePath = configurationPathTextField.getText();
144+
remotePath = StringUtils.appendIfMissing(remotePath, "/", "/", "\\");
145+
channel.put(new ByteArrayInputStream(configBytes), remotePath + selectedItem.getValue());
146+
gatewayConfToolService.closeSftpSession(channel);
147+
}
148+
} catch (Exception e) {
149+
e.printStackTrace();
150+
}
108151
});
109152
contextMenu.getItems().add(menu_SaveFile);
110153
}
111154
if (!selectedItem.getValue().endsWith("service.yml") && !selectedItem.getValue().equals("TaskConfig列表")) {
112155
MenuItem menu_Copy = new MenuItem("复制选中行");
113156
menu_Copy.setOnAction(event1 -> {
114-
TreeItem<String> addItem = new TreeItem<>(selectedItem.getValue());
115-
selectedItem.getParent().getChildren().add(addItem);
157+
try {
158+
String configName = selectedItem.getValue() + "_copy";
159+
TreeItem<String> addItem = new TreeItem<>(configName);
160+
selectedItem.getParent().getChildren().add(addItem);
161+
TaskConfig taskConfig = gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getParent().getValue()).get(selectedItem.getValue());
162+
TaskConfig newTaskConfig = (TaskConfig) BeanUtils.cloneBean(taskConfig);
163+
newTaskConfig.setName(configName);
164+
gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getParent().getValue()).put(configName, newTaskConfig);
165+
} catch (Exception e) {
166+
e.printStackTrace();
167+
}
116168
});
117169
contextMenu.getItems().add(menu_Copy);
118170
MenuItem menu_Remove = new MenuItem("删除选中任务");
119171
menu_Remove.setOnAction(event1 -> {
172+
gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getParent().getValue()).remove(selectedItem.getValue());
120173
selectedItem.getParent().getChildren().remove(selectedItem);
121174
});
122175
contextMenu.getItems().add(menu_Remove);
123176
}
124177
configurationTreeView.setContextMenu(contextMenu);
125178
}
126179
});
180+
configurationTreeView.setOnEditCommit(event -> {
181+
if (event.getNewValue().equals(event.getOldValue())) {
182+
return;
183+
}
184+
if (event.getOldValue().endsWith("TaskConfig列表")) {
185+
Platform.runLater(() -> {
186+
event.getTreeItem().setValue(event.getOldValue());
187+
});
188+
} else if (event.getOldValue().endsWith("service.yml")) {
189+
if (!event.getNewValue().endsWith("service.yml")) {
190+
Platform.runLater(() -> {
191+
event.getTreeItem().setValue(event.getOldValue());
192+
});
193+
return;
194+
}
195+
gatewayConfToolService.getTaskConfigFileMap().put(event.getNewValue(), gatewayConfToolService.getTaskConfigFileMap().get(event.getOldValue()));
196+
gatewayConfToolService.getTaskConfigFileMap().remove(event.getOldValue());
197+
} else {
198+
Map<String, TaskConfig> taskConfigMap = gatewayConfToolService.getTaskConfigFileMap().get(event.getTreeItem().getParent().getValue());
199+
taskConfigMap.get(event.getOldValue()).setName(event.getNewValue());
200+
taskConfigMap.put(event.getNewValue(), taskConfigMap.get(event.getOldValue()));
201+
taskConfigMap.remove(event.getOldValue());
202+
}
203+
});
127204
taskConfigTabPane.setOnMouseClicked(event -> {
128205
if (event.getButton() == MouseButton.SECONDARY) {
129206
MenuItem menu_RemoveAll = new MenuItem("关闭所有");
130207
menu_RemoveAll.setOnAction(event1 -> {
131-
taskConfigTabPane.getTabs().removeAll(taskConfigTabPane.getTabs());
208+
taskConfigTabPane.getTabs().clear();
132209
gatewayConfToolService.getTaskConfigTabMap().clear();
133210
});
134211
taskConfigTabPane.setContextMenu(new ContextMenu(menu_RemoveAll));
@@ -141,12 +218,17 @@ private void initService() {
141218

142219
@FXML
143220
private void treeRefurbishAction(ActionEvent event) {
144-
gatewayConfToolService.reloadTaskConfigFile();
145-
taskConfigTabPane.getTabs().removeAll(taskConfigTabPane.getTabs());
146-
gatewayConfToolService.getTaskConfigTabMap().clear();
221+
try {
222+
gatewayConfToolService.reloadTaskConfigFile();
223+
taskConfigTabPane.getTabs().removeAll(taskConfigTabPane.getTabs());
224+
gatewayConfToolService.getTaskConfigTabMap().clear();
225+
} catch (Exception e) {
226+
log.error("加载配置失败:", e);
227+
}
147228
}
148229

149230
@FXML
150231
private void connectAction(ActionEvent event) {
232+
this.treeRefurbishAction(null);
151233
}
152234
}

0 commit comments

Comments
 (0)