Skip to content

Commit 122b5c9

Browse files
committed
Remove dependency between SettingMenuController and DB/ServerConnectionInfoAP
1 parent e7026c2 commit 122b5c9

File tree

5 files changed

+52
-42
lines changed

5 files changed

+52
-42
lines changed

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

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@
4848
import root.core.repository.implement.PropertyRepositoryImpl;
4949
import root.javafx.CustomView.ConnectionInfoVBox;
5050
import root.javafx.CustomView.DBConnInfoControl;
51-
import root.javafx.CustomView.DBConnectionInfoAnchorPane;
5251
import root.javafx.CustomView.ServerConnInfoControl;
53-
import root.javafx.CustomView.ServerConnectionInfoAnchorPane;
5452
import root.utils.AlertUtils;
5553
import root.utils.PropertiesUtils;
5654

@@ -283,17 +281,20 @@ private void loadMonitoringConfigFile(String filePath) {
283281
*
284282
* @param e
285283
*/
284+
@SuppressWarnings("unchecked")
286285
public void saveConnInfoSettings(ActionEvent e) {
287286
// TODO 입력값 검사
288287

289288
String configFilePath = fileChooserText.getText();
290289

291-
ConnectionInfoVBox dbConnVBox = (ConnectionInfoVBox) connInfoVBox.lookup("#dbConnVBox");
290+
ConnectionInfoVBox<JdbcConnectionInfo> dbConnVBox = (ConnectionInfoVBox<JdbcConnectionInfo>) connInfoVBox
291+
.lookup("#dbConnVBox");
292292
dbConnVBox.saveConnInfoSettings(configFilePath);
293-
294-
ConnectionInfoVBox serverConnVBox = (ConnectionInfoVBox) connInfoVBox.lookup("#serverConnVBox");
293+
294+
ConnectionInfoVBox<JschConnectionInfo> serverConnVBox = (ConnectionInfoVBox<JschConnectionInfo>) connInfoVBox
295+
.lookup("#serverConnVBox");
295296
serverConnVBox.saveConnInfoSettings(configFilePath);
296-
297+
297298
// 설정파일 ReLoading
298299
loadSelectedConfigFile(configFilePath);
299300
}
@@ -457,61 +458,40 @@ private void createMonitoringElements(VBox rootVBox, String[] monitoringElements
457458
/**
458459
* [설정] - 설정파일을 불러온 후, 동적 UI를 생성한다.
459460
*/
461+
@SuppressWarnings("unchecked")
460462
private void createSettingDynamicElements() {
461463

462464
jdbcConnInfoList = PropertiesUtils.getJdbcConnectionMap();
463465
jschConnInfoList = PropertiesUtils.getJschConnectionMap();
464466
alcMap = PropertiesUtils.getAlertLogCommandMap();
465467

466-
ConnectionInfoVBox dbConnVBox = null;
468+
ConnectionInfoVBox<JdbcConnectionInfo> dbConnVBox = null;
467469
if (connInfoVBox.lookup("#dbConnVBox") != null) {
468-
dbConnVBox = (ConnectionInfoVBox) connInfoVBox.lookup("#dbConnVBox");
470+
dbConnVBox = (ConnectionInfoVBox<JdbcConnectionInfo>) connInfoVBox.lookup("#dbConnVBox");
469471
dbConnVBox.clearConnInfoMap();
470472
} else {
471473
// DB 접속정보 UI
472-
dbConnVBox = new ConnectionInfoVBox(new DBConnInfoControl());
474+
dbConnVBox = new ConnectionInfoVBox<>(new DBConnInfoControl());
473475
dbConnVBox.setMenuTitle("DB 접속정보", FontAwesomeIcon.DATABASE);
474476
dbConnVBox.setId("dbConnVBox");
475477
connInfoVBox.getChildren().add(dbConnVBox);
476478
}
477479

478-
if (jdbcConnInfoList.size() == 0) {
479-
DBConnectionInfoAnchorPane dbConnAP = new DBConnectionInfoAnchorPane();
480-
dbConnAP.init();
481-
dbConnAP.setInitialValue(new JdbcConnectionInfo());
482-
dbConnVBox.addConnectionInfoAP(1, dbConnAP);
483-
} else {
484-
for (JdbcConnectionInfo jdbc : jdbcConnInfoList) {
485-
DBConnectionInfoAnchorPane dbConnAP = new DBConnectionInfoAnchorPane();
486-
dbConnAP.init();
487-
dbConnAP.setInitialValue(jdbc);
488-
dbConnVBox.addConnectionInfoAP(1, dbConnAP);
489-
}
490-
}
480+
dbConnVBox.addConnInfoList(jdbcConnInfoList);
491481

492-
ConnectionInfoVBox serverConnVBox = null;
482+
ConnectionInfoVBox<JschConnectionInfo> serverConnVBox = null;
493483
if(connInfoVBox.lookup("#serverConnVBox") != null) {
494-
serverConnVBox = (ConnectionInfoVBox) connInfoVBox.lookup("#serverConnVBox");
484+
serverConnVBox = (ConnectionInfoVBox<JschConnectionInfo>) connInfoVBox.lookup("#serverConnVBox");
495485
serverConnVBox.clearConnInfoMap();
496486
} else {
497487
// Server 접속정보 UI
498-
serverConnVBox = new ConnectionInfoVBox(new ServerConnInfoControl());
488+
serverConnVBox = new ConnectionInfoVBox<>(new ServerConnInfoControl());
499489
serverConnVBox.setMenuTitle("서버 접속정보", FontAwesomeIcon.SERVER);
500490
serverConnVBox.setId("serverConnVBox");
501491
connInfoVBox.getChildren().add(serverConnVBox);
502492
}
503493

504-
if (jschConnInfoList.size() == 0) {
505-
ServerConnectionInfoAnchorPane serverConnAP = new ServerConnectionInfoAnchorPane();
506-
serverConnAP.setInitialValue(new JschConnectionInfo());
507-
serverConnVBox.addConnectionInfoAP(1, serverConnAP);
508-
} else {
509-
for (JschConnectionInfo jsch : jschConnInfoList) {
510-
ServerConnectionInfoAnchorPane serverConnAP = new ServerConnectionInfoAnchorPane();
511-
serverConnAP.setInitialValue(jsch);
512-
serverConnVBox.addConnectionInfoAP(1, serverConnAP);
513-
}
514-
}
494+
serverConnVBox.addConnInfoList(jschConnInfoList);
515495

516496
// [설정] - [모니터링 여부 설정]
517497
reloadingMonitoringSetting("");

src/main/java/root/javafx/CustomView/ConnInfoControl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
66
import root.javafx.Service.ConnectionTestService;
77

8-
public interface ConnInfoControl<T extends ConnectionInfoAP> {
8+
public interface ConnInfoControl<T> {
99

1010
void save(String configFilePath, Collection<StatefulAP> statefulAP);
1111

1212
ConnectionTestService getConnectionTestService(ConnectionInfoAP curAP);
1313

1414
ConnectionInfoAP getNewConnInfoAP();
15+
16+
ConnectionInfoAP getConnInfoAP(T connInfo);
1517
}

src/main/java/root/javafx/CustomView/ConnectionInfoVBox.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.IOException;
44
import java.util.Collections;
5+
import java.util.List;
56
import java.util.Map;
67
import java.util.stream.Collectors;
78

@@ -27,7 +28,7 @@
2728
import root.javafx.Service.ConnectionTestService;
2829
import root.utils.AlertUtils;
2930

30-
public class ConnectionInfoVBox extends VBox {
31+
public class ConnectionInfoVBox<T> extends VBox {
3132

3233
@FXML
3334
Label menuTitleLB;
@@ -59,13 +60,13 @@ public class ConnectionInfoVBox extends VBox {
5960
@FXML
6061
JFXButton nextConnInfoBtn;
6162

62-
private ConnInfoControl<ConnectionInfoAP> connInfoControl;
63+
private ConnInfoControl<T> connInfoControl;
6364

6465
private ConnInfoAPMap connInfoAPMap = new ConnInfoAPMap();
6566

6667
private long connInfoIdx = -1;
6768

68-
public ConnectionInfoVBox(ConnInfoControl<ConnectionInfoAP> connInfoControl) {
69+
public ConnectionInfoVBox(ConnInfoControl<T> connInfoControl) {
6970
this.connInfoControl = connInfoControl;
7071

7172
try {
@@ -103,6 +104,18 @@ public void saveConnInfoSettings(String configFilePath) {
103104
connInfoControl.save(configFilePath, this.connInfoAPMap.getActiveAPs().values());
104105
}
105106

107+
public void addConnInfoList(List<T> connInfoList) {
108+
if (connInfoList.isEmpty()) {
109+
addConnectionInfoAP(2, connInfoControl.getNewConnInfoAP());
110+
return;
111+
}
112+
113+
for(T connInfo : connInfoList) {
114+
ConnectionInfoAP connInfoAP = connInfoControl.getConnInfoAP(connInfo);
115+
addConnectionInfoAP(1, connInfoAP);
116+
}
117+
}
118+
106119
/* Button Click Listener */
107120

108121
public void testConnection(ActionEvent e) {

src/main/java/root/javafx/CustomView/DBConnInfoControl.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import root.javafx.Service.ConnectionTestService;
1414
import root.javafx.Service.DatabaseConnectService;
1515

16-
public class DBConnInfoControl implements ConnInfoControl<ConnectionInfoAP> {
16+
public class DBConnInfoControl implements ConnInfoControl<JdbcConnectionInfo> {
1717

1818
/* Dependency Injection */
1919
private PropertyRepository propertyRepository = PropertyRepositoryImpl.getInstance();
@@ -50,4 +50,12 @@ public ConnectionInfoAP getNewConnInfoAP() {
5050
dbConnAP.setInitialValue(new JdbcConnectionInfo());
5151
return dbConnAP;
5252
}
53+
54+
@Override
55+
public ConnectionInfoAP getConnInfoAP(JdbcConnectionInfo connInfo) {
56+
DBConnectionInfoAnchorPane dbConnAP = new DBConnectionInfoAnchorPane();
57+
dbConnAP.init();
58+
dbConnAP.setInitialValue(connInfo);
59+
return dbConnAP;
60+
}
5361
}

src/main/java/root/javafx/CustomView/ServerConnInfoControl.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
1111
import root.javafx.Service.ConnectionTestService;
1212

13-
public class ServerConnInfoControl implements ConnInfoControl<ConnectionInfoAP> {
13+
public class ServerConnInfoControl implements ConnInfoControl<JschConnectionInfo> {
1414

1515
/* Dependency Injection */
1616
private PropertyRepository propertyRepository = PropertyRepositoryImpl.getInstance();
@@ -41,4 +41,11 @@ public ConnectionInfoAP getNewConnInfoAP() {
4141
return serverConnAP;
4242
}
4343

44+
@Override
45+
public ConnectionInfoAP getConnInfoAP(JschConnectionInfo connInfo) {
46+
ServerConnectionInfoAnchorPane serverConnAP = new ServerConnectionInfoAnchorPane();
47+
serverConnAP.setInitialValue(connInfo);
48+
return serverConnAP;
49+
}
50+
4451
}

0 commit comments

Comments
 (0)