Skip to content

Commit abbe457

Browse files
committed
1、优化界面排版;2、添加数据获取。
1 parent 064e92d commit abbe457

9 files changed

Lines changed: 246 additions & 37 deletions

File tree

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

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.xwintop.xJavaFxTool.controller.epmsTools.gatewayConfTool;
22

3+
import com.easipass.gateway.entity.TaskConfig;
34
import com.xwintop.xJavaFxTool.services.epmsTools.gatewayConfTool.GatewayConfToolService;
45
import com.xwintop.xJavaFxTool.view.epmsTools.gatewayConfTool.GatewayConfToolView;
56
import javafx.event.ActionEvent;
@@ -12,9 +13,13 @@
1213
import lombok.Getter;
1314
import lombok.Setter;
1415
import lombok.extern.slf4j.Slf4j;
16+
import org.apache.commons.lang3.time.DateFormatUtils;
1517

1618
import java.net.URL;
19+
import java.util.Date;
20+
import java.util.Map;
1721
import java.util.ResourceBundle;
22+
import java.util.concurrent.ConcurrentHashMap;
1823

1924
@Getter
2025
@Setter
@@ -64,24 +69,44 @@ private void initEvent() {
6469
});
6570
});
6671
ContextMenu contextMenu = new ContextMenu(menu_UnfoldAll, menu_FoldAll);
67-
72+
if (selectedItem.getValue().equals("TaskConfig列表")) {
73+
MenuItem menu_AddFile = new MenuItem("添加配置文件");
74+
menu_AddFile.setOnAction(event1 -> {
75+
String fileName = "taskConf" + DateFormatUtils.format(new Date(), "MMddHHmm") + "service.yml";
76+
TreeItem<String> addItem = new TreeItem<>(fileName);
77+
selectedItem.getChildren().add(addItem);
78+
Map<String, TaskConfig> taskConfigMap = new ConcurrentHashMap<>();
79+
gatewayConfToolService.getTaskConfigFileMap().put(fileName, taskConfigMap);
80+
});
81+
contextMenu.getItems().add(menu_AddFile);
82+
}
6883
if (selectedItem.getValue().endsWith("service.yml")) {
6984
MenuItem menu_AddTask = new MenuItem("添加任务");
7085
menu_AddTask.setOnAction(event1 -> {
71-
TreeItem<String> addItem = new TreeItem<>("newService");
86+
String taskConfigName = "taskConfig" + DateFormatUtils.format(new Date(), "MMddHHmm");
87+
TreeItem<String> addItem = new TreeItem<>(taskConfigName);
7288
selectedItem.getChildren().add(addItem);
89+
TaskConfig taskConfig = new TaskConfig();
90+
taskConfig.setName(taskConfigName);
91+
gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getValue()).put(taskConfigName, taskConfig);
7392
});
7493
contextMenu.getItems().add(menu_AddTask);
7594
MenuItem menu_RemoveFile = new MenuItem("删除文件");
7695
menu_RemoveFile.setOnAction(event1 -> {
7796
selectedItem.getParent().getChildren().remove(selectedItem);
97+
gatewayConfToolService.getTaskConfigFileMap().remove(selectedItem.getValue());
7898
});
7999
contextMenu.getItems().add(menu_RemoveFile);
80100
MenuItem menu_RemoveAll = new MenuItem("删除所有任务");
81101
menu_RemoveAll.setOnAction(event1 -> {
82102
selectedItem.getChildren().clear();
103+
gatewayConfToolService.getTaskConfigFileMap().get(selectedItem.getValue()).clear();
83104
});
84105
contextMenu.getItems().add(menu_RemoveAll);
106+
MenuItem menu_SaveFile = new MenuItem("保存文件");
107+
menu_SaveFile.setOnAction(event1 -> {
108+
});
109+
contextMenu.getItems().add(menu_SaveFile);
85110
}
86111
if (!selectedItem.getValue().endsWith("service.yml") && !selectedItem.getValue().equals("TaskConfig列表")) {
87112
MenuItem menu_Copy = new MenuItem("复制选中行");

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

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import javafx.event.ActionEvent;
1414
import javafx.fxml.FXML;
1515
import javafx.fxml.FXMLLoader;
16+
import javafx.geometry.Insets;
1617
import javafx.scene.control.*;
18+
import javafx.scene.layout.FlowPane;
1719
import javafx.scene.paint.Color;
1820
import lombok.Getter;
1921
import lombok.Setter;
@@ -58,41 +60,50 @@ private void initService() {
5860

5961
@FXML
6062
private void saveAction(ActionEvent event) {
63+
gatewayConfToolServiceViewService.saveConfigAction();
6164
}
6265

6366
public void setData(GatewayConfToolTaskViewController gatewayConfToolTaskViewController, Object configObject) {
67+
gatewayConfToolServiceViewService.setConfigObject(configObject);
6468
this.gatewayConfToolTaskViewController = gatewayConfToolTaskViewController;
6569
for (Field field : configObject.getClass().getDeclaredFields()) {
6670
field.setAccessible(true);
6771
try {
6872
if (field.getType() == String.class) {
6973
Label label = new Label(field.getName() + ":");
7074
label.setTextFill(Color.RED);
75+
FlowPane.setMargin(label,new Insets(0,-15,0,0));
7176
serviceViewFlowPane.getChildren().add(label);
7277
TextField textField = new TextField(field.get(configObject) == null ? "" : field.get(configObject).toString());
78+
textField.setId(field.getName());
7379
if("serviceName".equals(field.getName())){
7480
textField.setEditable(false);
7581
}
7682
serviceViewFlowPane.getChildren().add(textField);
7783
} else if (field.getType() == Boolean.class || field.getType() == boolean.class) {
7884
JFXCheckBox checkBox = new JFXCheckBox(field.getName());
85+
checkBox.setId(field.getName());
7986
checkBox.setSelected(field.getBoolean(configObject));
8087
serviceViewFlowPane.getChildren().add(checkBox);
8188
} else if (field.getType() == int.class || field.getType() == long.class) {
8289
Label label = new Label(field.getName() + ":");
8390
label.setTextFill(Color.RED);
91+
FlowPane.setMargin(label,new Insets(0,-15,0,0));
8492
serviceViewFlowPane.getChildren().add(label);
8593
Spinner<Integer> spinner = new Spinner<>();
94+
spinner.setId(field.getName());
8695
JavaFxViewUtil.setSpinnerValueFactory(spinner, Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.valueOf(field.get(configObject).toString()));
8796
spinner.setEditable(true);
8897
serviceViewFlowPane.getChildren().add(spinner);
8998
} else if (field.getType() == Map.class) {
9099
Label label = new Label(field.getName() + ":");
91100
label.setTextFill(Color.RED);
101+
FlowPane.setMargin(label,new Insets(0,-15,0,0));
92102
serviceViewFlowPane.getChildren().add(label);
93103
TableView<Map<String, String>> propertiesTableView = new TableView<>();
104+
propertiesTableView.setId(field.getName());
94105
propertiesTableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
95-
propertiesTableView.setPrefHeight(160);
106+
propertiesTableView.setPrefHeight(80);
96107
TableColumn<Map<String, String>, String> propertiesKeyTableColumn = new TableColumn<>("key");
97108
TableColumn<Map<String, String>, String> propertiesValueTableColumn = new TableColumn<>("value");
98109
propertiesTableView.getColumns().add(propertiesKeyTableColumn);
@@ -112,9 +123,11 @@ public void setData(GatewayConfToolTaskViewController gatewayConfToolTaskViewCon
112123
} else if (field.getType() == List.class) {
113124
Label label = new Label(field.getName() + ":");
114125
label.setTextFill(Color.RED);
126+
FlowPane.setMargin(label,new Insets(0,-15,0,0));
115127
serviceViewFlowPane.getChildren().add(label);
116128
ListView<String> listView = new ListView<>();
117-
listView.setPrefHeight(160);
129+
listView.setId(field.getName());
130+
listView.setPrefHeight(80);
118131
ObservableList<String> listData = FXCollections.observableArrayList();
119132
listView.setItems(listData);
120133
listData.addAll((List) field.get(configObject));
@@ -123,8 +136,10 @@ public void setData(GatewayConfToolTaskViewController gatewayConfToolTaskViewCon
123136
} else {
124137
Label label = new Label(field.getName() + ":");
125138
label.setTextFill(Color.RED);
139+
FlowPane.setMargin(label,new Insets(0,-15,0,0));
126140
serviceViewFlowPane.getChildren().add(label);
127141
TextField textField = new TextField(field.get(configObject) == null ? "" : field.get(configObject).toString());
142+
textField.setId(field.getName());
128143
serviceViewFlowPane.getChildren().add(textField);
129144
}
130145
// FieldUtils.readField(field, configObject, true);

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

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.xwintop.xJavaFxTool.view.epmsTools.gatewayConfTool.GatewayConfToolTaskViewView;
1111
import javafx.collections.FXCollections;
1212
import javafx.collections.ObservableList;
13+
import javafx.event.ActionEvent;
14+
import javafx.fxml.FXML;
1315
import javafx.fxml.FXMLLoader;
1416
import javafx.scene.control.ContextMenu;
1517
import javafx.scene.control.Menu;
@@ -22,6 +24,7 @@
2224
import org.apache.commons.lang3.StringUtils;
2325

2426
import java.io.File;
27+
import java.lang.reflect.InvocationTargetException;
2528
import java.net.URL;
2629
import java.util.HashMap;
2730
import java.util.Map;
@@ -40,7 +43,7 @@ public class GatewayConfToolTaskViewController extends GatewayConfToolTaskViewVi
4043

4144
private TaskConfig taskConfig;
4245

43-
private GatewayConfToolController gatewayConfToolController;
46+
private String fileName;
4447
private String tabName;
4548

4649
public static FXMLLoader getFXMLLoader() {
@@ -128,6 +131,9 @@ private void initEvent() {
128131
});
129132
receiverConfigListView.setContextMenu(new ContextMenu(menu, menu_Copy, menu_Remove, menu_RemoveAll));
130133
} else if (event.getButton() == MouseButton.PRIMARY) {
134+
if (receiverConfigListView.getSelectionModel().getSelectedItems() == null) {
135+
return;
136+
}
131137
int selectIndex = receiverConfigListView.getSelectionModel().getSelectedIndex();
132138
gatewayConfToolTaskViewService.addServiceViewTabPane(taskConfig.getReceiverConfig().get(selectIndex), selectIndex);
133139
}
@@ -180,6 +186,9 @@ private void initEvent() {
180186
});
181187
filterConfigsListView.setContextMenu(new ContextMenu(menu, menu_Copy, menu_Remove, menu_RemoveAll));
182188
} else if (event.getButton() == MouseButton.PRIMARY) {
189+
if (filterConfigsListView.getSelectionModel().getSelectedItems() == null) {
190+
return;
191+
}
183192
int selectIndex = filterConfigsListView.getSelectionModel().getSelectedIndex();
184193
gatewayConfToolTaskViewService.addServiceViewTabPane(taskConfig.getFilterConfigs().get(selectIndex), selectIndex);
185194
}
@@ -233,6 +242,9 @@ private void initEvent() {
233242
});
234243
senderConfigListView.setContextMenu(new ContextMenu(menu, menu_Copy, menu_Remove, menu_RemoveAll));
235244
} else if (event.getButton() == MouseButton.PRIMARY) {
245+
if (senderConfigListView.getSelectionModel().getSelectedItems() == null) {
246+
return;
247+
}
236248
int selectIndex = senderConfigListView.getSelectionModel().getSelectedIndex();
237249
gatewayConfToolTaskViewService.addServiceViewTabPane(taskConfig.getSenderConfig().get(selectIndex), selectIndex);
238250
}
@@ -244,33 +256,42 @@ private void initEvent() {
244256
private void initService() {
245257
}
246258

259+
@FXML
260+
void saveTaskConfigAction(ActionEvent event) {
261+
gatewayConfToolTaskViewService.saveTaskConfigAction();
262+
}
263+
247264
public void setData(GatewayConfToolController gatewayConfToolController, TaskConfig taskConfig) {
248-
this.gatewayConfToolController = gatewayConfToolController;
265+
gatewayConfToolTaskViewService.setGatewayConfToolController(gatewayConfToolController);
249266
this.taskConfig = taskConfig;
250-
// gatewayConfToolTaskViewService.reloadTableData();
267+
// try {
268+
// this.taskConfig = (TaskConfig) BeanUtils.cloneBean(taskConfig);
269+
// } catch (Exception e) {
270+
// e.printStackTrace();
271+
// }
251272

252-
nameTextField.setText(taskConfig.getName());
253-
isEnableCheckBox.setSelected(taskConfig.getIsEnable());
254-
taskTypeTextField.setText(taskConfig.getTaskType());
255-
triggerTypeChoiceBox.setValue(taskConfig.getTriggerType());
256-
intervalTimeSpinner.getValueFactory().setValue(taskConfig.getIntervalTime());
257-
executeTimesSpinner.getValueFactory().setValue(taskConfig.getExecuteTimes());
258-
triggerCronTextField.setText(taskConfig.getTriggerCron());
259-
isStatefullJobCheckBox.setSelected(taskConfig.getIsStatefulJob());
273+
nameTextField.setText(this.taskConfig.getName());
274+
isEnableCheckBox.setSelected(this.taskConfig.getIsEnable());
275+
taskTypeTextField.setText(this.taskConfig.getTaskType());
276+
triggerTypeChoiceBox.setValue(this.taskConfig.getTriggerType());
277+
intervalTimeSpinner.getValueFactory().setValue(this.taskConfig.getIntervalTime());
278+
executeTimesSpinner.getValueFactory().setValue(this.taskConfig.getExecuteTimes());
279+
triggerCronTextField.setText(this.taskConfig.getTriggerCron());
280+
isStatefullJobCheckBox.setSelected(this.taskConfig.getIsStatefulJob());
260281
receiverConfigListData.clear();
261-
for (ReceiverConfig receiverConfig : taskConfig.getReceiverConfig()) {
282+
for (ReceiverConfig receiverConfig : this.taskConfig.getReceiverConfig()) {
262283
receiverConfigListData.add(receiverConfig.getServiceName());
263284
}
264285
filterConfigsListData.clear();
265-
for (FilterConfig filterConfig : taskConfig.getFilterConfigs()) {
286+
for (FilterConfig filterConfig : this.taskConfig.getFilterConfigs()) {
266287
filterConfigsListData.add(filterConfig.getServiceName());
267288
}
268289
senderConfigListData.clear();
269-
for (SenderConfig senderConfig : taskConfig.getSenderConfig()) {
290+
for (SenderConfig senderConfig : this.taskConfig.getSenderConfig()) {
270291
senderConfigListData.add(senderConfig.getServiceName());
271292
}
272293
propertiesTableData.clear();
273-
taskConfig.getProperties().forEach((key, value) -> {
294+
this.taskConfig.getProperties().forEach((key, value) -> {
274295
Map<String, String> map = new HashMap<>();
275296
map.put("key", key);
276297
map.put("value", value.toString());

src/main/java/com/xwintop/xJavaFxTool/services/epmsTools/gatewayConfTool/GatewayConfToolService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public void handle(Event event) {
113113
}
114114
GatewayConfToolTaskViewController gatewayConfToolTaskViewController = fXMLLoader.getController();
115115
gatewayConfToolTaskViewController.setData(gatewayConfToolController, taskConfigFileMap.get(fileName).get(taskName));
116+
gatewayConfToolTaskViewController.setFileName(fileName);
116117
gatewayConfToolTaskViewController.setTabName(tabName);
117118
gatewayConfToolController.getTaskConfigTabPane().getTabs().add(tab);
118119
gatewayConfToolController.getTaskConfigTabPane().getSelectionModel().select(tab);
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,88 @@
11
package com.xwintop.xJavaFxTool.services.epmsTools.gatewayConfTool;
22

3+
import com.jfoenix.controls.JFXCheckBox;
34
import com.xwintop.xJavaFxTool.controller.epmsTools.gatewayConfTool.GatewayConfToolServiceViewController;
5+
import javafx.scene.Node;
6+
import javafx.scene.control.ListView;
7+
import javafx.scene.control.Spinner;
8+
import javafx.scene.control.TableView;
9+
import javafx.scene.control.TextField;
410
import lombok.Getter;
511
import lombok.Setter;
612
import lombok.extern.slf4j.Slf4j;
13+
import org.apache.commons.lang3.StringUtils;
14+
15+
import java.lang.reflect.Field;
16+
import java.util.ArrayList;
17+
import java.util.HashMap;
18+
import java.util.List;
19+
import java.util.Map;
720

821
@Getter
922
@Setter
1023
@Slf4j
1124
public class GatewayConfToolServiceViewService {
1225
private GatewayConfToolServiceViewController gatewayConfToolServiceViewController;
1326

27+
private Object configObject;
28+
1429
public GatewayConfToolServiceViewService(GatewayConfToolServiceViewController gatewayConfToolServiceViewController) {
1530
this.gatewayConfToolServiceViewController = gatewayConfToolServiceViewController;
1631
}
32+
33+
public void saveConfigAction() {
34+
for (Field field : configObject.getClass().getDeclaredFields()) {
35+
field.setAccessible(true);
36+
for (Node node : gatewayConfToolServiceViewController.getServiceViewFlowPane().getChildren()) {
37+
if (field.getName().equals(node.getId())) {
38+
try {
39+
if (field.getType() == String.class) {
40+
if (StringUtils.isBlank(((TextField) node).getText())) {
41+
field.set(configObject, null);
42+
} else {
43+
field.set(configObject, ((TextField) node).getText());
44+
}
45+
} else if (field.getType() == Boolean.class || field.getType() == boolean.class) {
46+
field.set(configObject, ((JFXCheckBox) node).isSelected());
47+
} else if (field.getType() == int.class || field.getType() == long.class) {
48+
if (((Spinner<Integer>) node).getValue() != null) {
49+
field.set(configObject, ((Spinner<Integer>) node).getValue());
50+
}
51+
} else if (field.getType() == Map.class) {
52+
TableView<Map<String, String>> propertiesTableView = (TableView<Map<String, String>>) node;
53+
Map<String, String> propertiesMap = new HashMap<>();
54+
propertiesTableView.getItems().forEach(map -> {
55+
propertiesMap.put(map.get("key"), map.get("value"));
56+
});
57+
field.set(configObject, propertiesMap);
58+
} else if (field.getType() == List.class) {
59+
List<String> list = new ArrayList<>(((ListView<String>) node).getItems());
60+
field.set(configObject, list);
61+
} else if (field.getType() == Integer.class) {
62+
if (StringUtils.isBlank(((TextField) node).getText())) {
63+
field.set(configObject, null);
64+
} else {
65+
field.set(configObject, Integer.valueOf(((TextField) node).getText()));
66+
}
67+
} else if (field.getType() == Long.class) {
68+
if (StringUtils.isBlank(((TextField) node).getText())) {
69+
field.set(configObject, null);
70+
} else {
71+
field.set(configObject, Long.valueOf(((TextField) node).getText()));
72+
}
73+
} else {
74+
if (StringUtils.isBlank(((TextField) node).getText())) {
75+
field.set(configObject, null);
76+
} else {
77+
field.set(configObject, ((TextField) node).getText());
78+
}
79+
}
80+
} catch (Exception e) {
81+
e.printStackTrace();
82+
}
83+
break;
84+
}
85+
}
86+
}
87+
}
1788
}

0 commit comments

Comments
 (0)