Skip to content

Commit d4b9c5b

Browse files
committed
Render monitoring result data in tableview
1 parent 639e0e1 commit d4b9c5b

File tree

2 files changed

+43
-71
lines changed

2 files changed

+43
-71
lines changed

src/main/java/root/javafx/Controller/MonitoringResultTableViewAP.java

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,14 @@
1616
import javafx.scene.layout.HBox;
1717
import javafx.scene.layout.StackPane;
1818
import javafx.scene.text.Font;
19+
import root.core.domain.ASMDiskUsage;
20+
import root.core.domain.ArchiveUsage;
1921
import root.core.domain.MonitoringResult;
20-
import root.core.domain.enums.MonitoringType;
22+
import root.core.domain.OSDiskUsage;
23+
import root.core.domain.TableSpaceUsage;
24+
import root.core.domain.enums.UsageUIType;
2125
import root.javafx.CustomView.MonitoringTableView;
26+
import root.javafx.CustomView.MonitoringTableViewFactory;
2227
import root.javafx.DI.DependencyInjection;
2328

2429
public class MonitoringResultTableViewAP extends AnchorPane {
@@ -35,17 +40,17 @@ public class MonitoringResultTableViewAP extends AnchorPane {
3540
@FXML
3641
private HBox tableViewHBox;
3742

38-
private static final Map<MonitoringType, String> titleMap = new HashMap<>();
43+
private static final Map<Class<? extends MonitoringResult>, String> titleMap = new HashMap<>();
3944
static {
40-
titleMap.put(MonitoringType.ARCHIVE, "Archive 사용량");
41-
titleMap.put(MonitoringType.TABLE_SPACE, "TableSpace 사용량");
42-
titleMap.put(MonitoringType.ASM_DISK, "ASM Disk 사용량");
43-
titleMap.put(MonitoringType.OS_DISK, "OS Disk 사용량");
45+
titleMap.put(ArchiveUsage.class, "Archive 사용량");
46+
titleMap.put(TableSpaceUsage.class, "TableSpace 사용량");
47+
titleMap.put(ASMDiskUsage.class, "ASM Disk 사용량");
48+
titleMap.put(OSDiskUsage.class, "OS Disk 사용량");
4449
}
4550

46-
private Map<MonitoringType, MonitoringTableView<? extends MonitoringResult>> tableViewMap = new HashMap<>();
51+
private Map<Class<? extends MonitoringResult>, MonitoringTableView<? extends MonitoringResult>> tableViewMap = new HashMap<>();
4752

48-
private Map<MonitoringType, List<Object>> tableDataListMap = new HashMap<>();
53+
private Map<Class<? extends MonitoringResult>, List<Object>> tableDataListMap = new HashMap<>();
4954

5055
public MonitoringResultTableViewAP() {
5156
try {
@@ -63,7 +68,7 @@ public MonitoringResultTableViewAP() {
6368
*
6469
* @param type
6570
*/
66-
private void addMonitoringTableView(MonitoringType type) {
71+
private void addMonitoringTableView(Class<? extends MonitoringResult> type, UsageUIType usageUIType) {
6772
AnchorPane tableViewWrapper = new AnchorPane();
6873
tableViewWrapper.setMinWidth(350);
6974

@@ -78,7 +83,7 @@ private void addMonitoringTableView(MonitoringType type) {
7883
AnchorPane.setLeftAnchor(titleLabel, 0.0);
7984
AnchorPane.setRightAnchor(titleLabel, 0.0);
8085

81-
MonitoringTableView<? extends MonitoringResult> tableView = new MonitoringTableView<>();
86+
MonitoringTableView<? extends MonitoringResult> tableView = MonitoringTableViewFactory.create(type, usageUIType);
8287
AnchorPane.setTopAnchor(tableView, 20.0);
8388
AnchorPane.setLeftAnchor(tableView, 0.0);
8489
AnchorPane.setRightAnchor(tableView, 0.0);
@@ -89,29 +94,21 @@ private void addMonitoringTableView(MonitoringType type) {
8994
tableViewHBox.getChildren().add(tableViewWrapper);
9095
}
9196

92-
/**
93-
* TableView 컬럼을 추가한다.
94-
*
95-
* @param type
96-
* @param title
97-
* @param fieldName
98-
*/
99-
public void addTableViewColumn(MonitoringType type, String title, String fieldName) {
100-
if (tableViewMap.get(type) == null) {
101-
addMonitoringTableView(type);
102-
}
103-
tableViewMap.get(type).addColumn(title, fieldName);
104-
}
105-
106-
public <T extends MonitoringResult> void setTableData(MonitoringType type, List<T> dataList) {
97+
@SuppressWarnings("unchecked")
98+
public <T extends MonitoringResult> void setTableData(String alias, Class<T> type, List<T> dataList,
99+
UsageUIType usageUIType) {
107100
List<Object> list = tableDataListMap.get(type);
108101
if (list == null) {
109102
list = new ArrayList<>();
110103
}
111-
104+
112105
list.clear();
113106
list.addAll(dataList);
114107

108+
if (tableViewMap.get(type) == null) {
109+
addMonitoringTableView(type, usageUIType);
110+
}
111+
115112
MonitoringTableView<T> tableView = (MonitoringTableView<T>) tableViewMap.get(type);
116113
tableView.setItems(FXCollections.observableArrayList(dataList));
117114
}

src/main/java/root/javafx/Controller/RunMenuController.java

Lines changed: 20 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.jfoenix.controls.JFXToggleButton;
1515

1616
import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcon;
17-
import javafx.collections.FXCollections;
1817
import javafx.event.ActionEvent;
1918
import javafx.fxml.FXML;
2019
import javafx.fxml.Initializable;
@@ -34,7 +33,6 @@
3433
import root.core.domain.ArchiveUsage;
3534
import root.core.domain.JdbcConnectionInfo;
3635
import root.core.domain.JschConnectionInfo;
37-
import root.core.domain.MonitoringResult;
3836
import root.core.domain.MonitoringYN;
3937
import root.core.domain.OSDiskUsage;
4038
import root.core.domain.TableSpaceUsage;
@@ -55,7 +53,6 @@
5553
import root.core.usecase.implement.ServerCheckUsecaseImpl;
5654
import root.javafx.CustomView.CustomTreeTableView;
5755
import root.javafx.CustomView.CustomTreeView;
58-
import root.javafx.CustomView.MonitoringTableView;
5956
import root.utils.UnitUtils.FileSize;
6057

6158
public class RunMenuController implements Initializable {
@@ -111,8 +108,8 @@ public class RunMenuController implements Initializable {
111108
@FXML
112109
HBox step3ToStep4Arrow;
113110

114-
private MonitoringResultTableViewAP dbResults = new MonitoringResultTableViewAP();
115-
private MonitoringResultTableViewAP serverResults = new MonitoringResultTableViewAP();
111+
private MonitoringResultTableViewAP dbResults;
112+
private MonitoringResultTableViewAP serverResults;
116113

117114
@Override
118115
public void initialize(URL location, ResourceBundle resources) {
@@ -124,7 +121,8 @@ public void initialize(URL location, ResourceBundle resources) {
124121
initRunStep3();
125122

126123
/* 4. 실행결과 */
127-
initRunStep4();
124+
// initRunStep4();
125+
128126
}
129127

130128
/**
@@ -209,18 +207,21 @@ private void addMonitoringPresetPreview(List<MonitoringYN> dbYnList, List<Monito
209207
* @param e
210208
*/
211209
public void runMonitoring(ActionEvent e) {
210+
initRunStep4();
211+
212212
String connInfoConfigFilePath = connInfoFileListComboBox.getSelectionModel().getSelectedItem();
213213
String presetName = presetFileListComboBox.getSelectionModel().getSelectedItem();
214214
String presetConfigFilePath = propService.getMonitoringPresetFilePath(presetName);
215215
propService.loadConnectionInfoConfig(connInfoConfigFilePath);
216216
propService.loadMonitoringInfoConfig(presetConfigFilePath);
217217

218-
// UsageUIType usageUIType = usageUITypeCB.getSelectionModel().getSelectedItem();
219-
// setUsageColumnUIType(usageUIType);
218+
UsageUIType usageUIType = usageUITypeCB.getSelectionModel().getSelectedItem();
220219

221220
boolean isSave = resultSaveToggleBtn.isSelected();
222221

223222
List<String> dbNames = propService.getMonitoringDBNameList();
223+
List<String> serverNames = propService.getMonitoringServerNameList();
224+
224225
List<JdbcConnectionInfo> jdbcConnectionList = propService.getJdbcConnInfoList(dbNames);
225226
for (JdbcConnectionInfo jdbc : jdbcConnectionList) {
226227
AbstractDatabase db = new JdbcDatabase(jdbc);
@@ -237,13 +238,12 @@ public void runMonitoring(ActionEvent e) {
237238
List<ArchiveUsage> archiveUsageList = usecase.getCurrentArchiveUsage();
238239
List<TableSpaceUsage> tableSpaceUsageList = usecase.getCurrentTableSpaceUsage();
239240
List<ASMDiskUsage> asmDiskUsageList = usecase.getCurrentASMDiskUsage();
240-
241-
dbResults.setTableData(MonitoringType.ARCHIVE, archiveUsageList);
242-
dbResults.setTableData(MonitoringType.TABLE_SPACE, tableSpaceUsageList);
243-
dbResults.setTableData(MonitoringType.ASM_DISK, asmDiskUsageList);
241+
242+
dbResults.setTableData(jdbc.getJdbcDBName(), ArchiveUsage.class, archiveUsageList, usageUIType);
243+
dbResults.setTableData(jdbc.getJdbcDBName(), TableSpaceUsage.class, tableSpaceUsageList, usageUIType);
244+
dbResults.setTableData(jdbc.getJdbcDBName(), ASMDiskUsage.class, asmDiskUsageList, usageUIType);
244245
}
245246

246-
List<String> serverNames = propService.getMonitoringServerNameList();
247247
List<JschConnectionInfo> jschConnectionList = propService.getJschConnInfoList(serverNames);
248248
for (JschConnectionInfo jsch : jschConnectionList) {
249249
JschServer server = new JschServer(jsch);
@@ -260,20 +260,13 @@ public void runMonitoring(ActionEvent e) {
260260
}
261261

262262
List<OSDiskUsage> osDiskUsageList = usecase.getCurrentOSDiskUsage();
263-
serverResults.setTableData(MonitoringType.OS_DISK, osDiskUsageList);
263+
serverResults.setTableData(jsch.getServerName(), OSDiskUsage.class, osDiskUsageList, usageUIType);
264264

265265
// AlertLogCommandPeriod alcp = new AlertLogCommandPeriod(jsch.getAlc(),
266266
// DateUtils.addDate(DateUtils.getToday("yyyy-MM-dd"), 0, 0, -1), DateUtils.getToday("yyyy-MM-dd"));
267267
}
268268
}
269269

270-
/**
271-
* 모니터링 결과를 TableView에 렌더링한다.
272-
*/
273-
public <T extends MonitoringResult> void setMonitoringResult(MonitoringTableView<T> tableView, List<T> result) {
274-
tableView.setItems(FXCollections.observableArrayList(result));
275-
}
276-
277270
/**
278271
* 1. 모니터링 접속정보 설정 영역의 View를 초기화한다.
279272
*/
@@ -398,6 +391,12 @@ public UsageUIType fromString(String string) {
398391
* 4. 실행결과 영역의 View를 초기화한다.
399392
*/
400393
private void initRunStep4() {
394+
dbResults = new MonitoringResultTableViewAP();
395+
serverResults = new MonitoringResultTableViewAP();
396+
397+
resultSplitPane.getItems().clear();
398+
resultSplitPane.getItems().addAll(dbResults, serverResults);
399+
401400
step4AP.setVisible(true);
402401
step4AP.setMinWidth(Control.USE_COMPUTED_SIZE);
403402
step4AP.setMaxWidth(Control.USE_COMPUTED_SIZE);
@@ -406,29 +405,5 @@ private void initRunStep4() {
406405
step3ToStep4Arrow.setMinWidth(Control.USE_COMPUTED_SIZE);
407406
step3ToStep4Arrow.setMaxWidth(Control.USE_COMPUTED_SIZE);
408407
step3ToStep4Arrow.setPrefWidth(Control.USE_COMPUTED_SIZE);
409-
410-
// 4-1. 실행결과 TableView 생성 및 Column 추가
411-
// DB
412-
dbResults.addTableViewColumn(MonitoringType.ARCHIVE, "Archive", "archiveName");
413-
dbResults.addTableViewColumn(MonitoringType.ARCHIVE, "사용량(%)", "usedPercent");
414-
dbResults.addTableViewColumn(MonitoringType.TABLE_SPACE, "테이블스페이스", "tableSpaceName");
415-
dbResults.addTableViewColumn(MonitoringType.TABLE_SPACE, "사용량(%)", "usedPercent");
416-
dbResults.addTableViewColumn(MonitoringType.ASM_DISK, "디스크 그룹", "asmDiskGroupName");
417-
dbResults.addTableViewColumn(MonitoringType.ASM_DISK, "디스크 타입", "asmDiskGroupType");
418-
dbResults.addTableViewColumn(MonitoringType.ASM_DISK, "사용량(%)", "usedPercent");
419-
420-
// Server
421-
serverResults.addTableViewColumn(MonitoringType.OS_DISK, "파일 시스템", "fileSystem");
422-
serverResults.addTableViewColumn(MonitoringType.OS_DISK, "마운트 위치", "mountedOn");
423-
serverResults.addTableViewColumn(MonitoringType.OS_DISK, "사용량(%)", "usedPercent");
424-
425-
resultSplitPane.getItems().addAll(dbResults, serverResults);
426408
}
427-
428-
// private void setUsageColumnUIType(UsageUIType usageUIType) {
429-
// archiveTable.setUsageUIType(usageUIType);
430-
// tableSpaceTable.setUsageUIType(usageUIType);
431-
// asmDiskTable.setUsageUIType(usageUIType);
432-
// osDiskTable.setUsageUIType(usageUIType);
433-
// }
434409
}

0 commit comments

Comments
 (0)