Skip to content

Commit 8a5ecd4

Browse files
committed
Replace stub method to real method (ConnInfoControl's test())
1 parent 19b9f27 commit 8a5ecd4

File tree

4 files changed

+42
-55
lines changed

4 files changed

+42
-55
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
import java.util.Collection;
44

55
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
6+
import root.javafx.Service.ConnectionTestService;
67

78
public interface ConnInfoControl<T extends ConnectionInfoAP> {
89

910
void save(String configFilePath, Collection<StatefulAP> statefulAP);
1011

11-
void test();
12-
12+
ConnectionTestService getConnectionTestService(ConnectionInfoAP curAP);
13+
1314
void getNewConnInfoAP();
1415
}

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

Lines changed: 21 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import javafx.fxml.FXML;
1616
import javafx.fxml.FXMLLoader;
1717
import javafx.scene.Node;
18+
import javafx.scene.control.Alert.AlertType;
1819
import javafx.scene.control.Label;
1920
import javafx.scene.layout.AnchorPane;
2021
import javafx.scene.layout.StackPane;
@@ -25,6 +26,8 @@
2526
import lombok.Data;
2627
import root.core.repository.constracts.PropertyRepository;
2728
import root.core.repository.implement.PropertyRepositoryImpl;
29+
import root.javafx.Service.ConnectionTestService;
30+
import root.utils.AlertUtils;
2831

2932
public class ConnectionInfoVBox extends VBox {
3033

@@ -101,69 +104,40 @@ public void addConnectionInfoAP(int type, Node connInfoAP) {
101104
}
102105
}
103106

104-
// TODO 다형성을 이용해 클래스 타입체크 제거하기
105107
public void saveConnInfoSettings(String configFilePath) {
106108
connInfoControl.save(configFilePath, this.connInfoAPMap.getActiveAPs().values());
107-
/*
108-
if (childAPClazz == DBConnectionInfoAnchorPane.class) {
109-
Map<String, JdbcConnectionInfo> config = new HashMap<>();
110-
111-
for (StatefulAP childAP : this.connInfoAPMap.getActiveAPs().values()) {
112-
DBConnectionInfoAnchorPane dbConnAP = (DBConnectionInfoAnchorPane) childAP.getAp();
113-
JdbcConnectionInfo jdbc = dbConnAP.getInputValues();
114-
config.put(jdbc.getJdbcDBName().toUpperCase(), jdbc);
115-
}
116-
propertyRepository.saveDBConnectionInfo(configFilePath, config);
117-
} else {
118-
Map<String, JschConnectionInfo> config = new HashMap<>();
119-
120-
for (StatefulAP childAP : this.connInfoAPMap.getActiveAPs().values()) {
121-
ServerConnectionInfoAnchorPane serverConnAP = (ServerConnectionInfoAnchorPane) childAP.getAp();
122-
JschConnectionInfo jsch = serverConnAP.getInputValues();
123-
config.put(jsch.getServerName().toUpperCase(), jsch);
124-
}
125-
propertyRepository.saveServerConnectionInfo(configFilePath, config);
126-
}
127-
*/
128109
}
129110

130111
/* Button Click Listener */
131112

132113
public void testConnection(ActionEvent e) {
133-
connInfoControl.test();
134-
/*
135-
if (childAPClazz == DBConnectionInfoAnchorPane.class) {
114+
115+
// 현재 AP에 작성된 접속정보를 이용해 연결 테스트
116+
ConnectionInfoAP curAP = connInfoAPMap.get(connInfoIdx).getAp();
117+
118+
ConnectionTestService testService = connInfoControl.getConnectionTestService(curAP);
119+
120+
if (testService != null) {
136121
// 아이콘 변경
137122
setConnectionBtnIcon(4);
138123

139-
AnchorPane curAP = connInfoAPMap.get(connInfoIdx).getAp();
140-
141-
String jdbcUrl = ((TextField) curAP.lookup("#urlTF")).getText();
142-
String jdbcId = ((TextField) curAP.lookup("#userTF")).getText();
143-
String jdbcPw = ((PasswordField) curAP.lookup("#passwordPF")).getText();
144-
145-
// TODO JdbcDriver, Validation Query 하드코딩 변경 - DBMS에 따라 다르게 해야 함
146-
JdbcConnectionInfo jdbc = new JdbcConnectionInfo("oracle.jdbc.driver.OracleDriver", jdbcUrl, jdbcId, jdbcPw,
147-
"SELECT 1 FROM DUAL", 1);
148-
149-
DatabaseConnectService dbConnService = new DatabaseConnectService(jdbc);
150-
dbConnService.setOnSucceeded(s -> {
151-
AlertUtils.showAlert(AlertType.INFORMATION, "DB 연동테스트",
152-
String.format(DatabaseConnectService.SUCCESS_MSG, jdbc.getJdbcUrl(), jdbc.getJdbcDriver()));
124+
// 성공시 콜백 이벤트 설정
125+
testService.setOnSucceeded(s -> {
126+
testService.alertSucceed();
153127
setConnectionBtnIcon(2);
154128
});
155-
156-
dbConnService.setOnFailed(f -> {
157-
AlertUtils.showAlert(AlertType.ERROR, "DB 연동테스트",
158-
String.format(DatabaseConnectService.FAIL_MSG, jdbc.getJdbcUrl(), jdbc.getJdbcDriver()));
129+
130+
// 실패시 콜백 이벤트 설정
131+
testService.setOnFailed(f -> {
132+
testService.alertFailed();
159133
setConnectionBtnIcon(3);
160134
});
161135

162-
dbConnService.start();
163-
} else if (childAPClazz == ServerConnectionInfoAnchorPane.class) {
164-
136+
// 연결테스트 시작
137+
testService.start();
138+
} else {
139+
AlertUtils.showAlert(AlertType.ERROR, "연결 테스트", "연결 테스트를 수행하기 위한 정보가 부족합니다.\n접속정보를 입력해주세요.");
165140
}
166-
*/
167141
}
168142

169143
public void addNewConnInfo(ActionEvent e) {

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
import java.util.HashMap;
55
import java.util.Map;
66

7+
import javafx.scene.control.PasswordField;
8+
import javafx.scene.control.TextField;
79
import root.core.domain.JdbcConnectionInfo;
810
import root.core.repository.constracts.PropertyRepository;
911
import root.core.repository.implement.PropertyRepositoryImpl;
1012
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
13+
import root.javafx.Service.ConnectionTestService;
14+
import root.javafx.Service.DatabaseConnectService;
1115

1216
public class DBConnInfoControl implements ConnInfoControl<ConnectionInfoAP> {
1317

@@ -26,17 +30,22 @@ public void save(String configFilePath, Collection<StatefulAP> statefulAP) {
2630
}
2731
propertyRepository.saveDBConnectionInfo(configFilePath, config);
2832
}
29-
33+
3034
@Override
31-
public void test() {
32-
// TODO Auto-generated method stub
33-
System.out.println("DB test()");
35+
public ConnectionTestService getConnectionTestService(ConnectionInfoAP curAP) {
36+
String jdbcUrl = ((TextField) curAP.lookup("#urlTF")).getText();
37+
String jdbcId = ((TextField) curAP.lookup("#userTF")).getText();
38+
String jdbcPw = ((PasswordField) curAP.lookup("#passwordPF")).getText();
39+
40+
// TODO JdbcDriver, Validation Query 하드코딩 변경 - DBMS에 따라 다르게 해야 함
41+
JdbcConnectionInfo jdbc = new JdbcConnectionInfo("oracle.jdbc.driver.OracleDriver", jdbcUrl, jdbcId, jdbcPw,
42+
"SELECT 1 FROM DUAL", 1);
43+
return new DatabaseConnectService(jdbc);
3444
}
3545

3646
@Override
3747
public void getNewConnInfoAP() {
3848
// TODO Auto-generated method stub
3949
System.out.println("DB getNewConnInfoAP()");
4050
}
41-
4251
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import root.core.repository.constracts.PropertyRepository;
99
import root.core.repository.implement.PropertyRepositoryImpl;
1010
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
11+
import root.javafx.Service.ConnectionTestService;
1112

1213
public class ServerConnInfoControl implements ConnInfoControl<ConnectionInfoAP> {
1314

@@ -27,14 +28,16 @@ public void save(String configFilePath, Collection<StatefulAP> statefulAP) {
2728
}
2829

2930
@Override
30-
public void test() {
31+
public ConnectionTestService getConnectionTestService(ConnectionInfoAP curAP) {
3132
// TODO Auto-generated method stub
3233
System.out.println("Server test()");
34+
return null;
3335
}
3436

3537
@Override
3638
public void getNewConnInfoAP() {
3739
// TODO Auto-generated method stub
3840
System.out.println("Server getNewConnInfoAP()");
3941
}
42+
4043
}

0 commit comments

Comments
 (0)