Skip to content

Commit 7674742

Browse files
committed
Replace stub method to real method (ConnInfoControl's save())
1 parent 2b3de46 commit 7674742

File tree

5 files changed

+54
-17
lines changed

5 files changed

+54
-17
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ private void createSettingDynamicElements() {
469469
dbConnVBox.clearConnInfoMap();
470470
} else {
471471
// DB 접속정보 UI
472-
dbConnVBox = new ConnectionInfoVBox(DBConnectionInfoAnchorPane.class, new DBConnInfoControl());
472+
dbConnVBox = new ConnectionInfoVBox(new DBConnInfoControl());
473473
dbConnVBox.setMenuTitle("DB 접속정보", FontAwesomeIcon.DATABASE);
474474
dbConnVBox.setId("dbConnVBox");
475475
connInfoVBox.getChildren().add(dbConnVBox);
@@ -495,7 +495,7 @@ private void createSettingDynamicElements() {
495495
serverConnVBox.clearConnInfoMap();
496496
} else {
497497
// Server 접속정보 UI
498-
serverConnVBox = new ConnectionInfoVBox(ServerConnectionInfoAnchorPane.class, new ServerConnInfoControl());
498+
serverConnVBox = new ConnectionInfoVBox(new ServerConnInfoControl());
499499
serverConnVBox.setMenuTitle("서버 접속정보", FontAwesomeIcon.SERVER);
500500
serverConnVBox.setId("serverConnVBox");
501501
connInfoVBox.getChildren().add(serverConnVBox);
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package root.javafx.CustomView;
22

3+
import java.util.Collection;
4+
5+
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
6+
37
public interface ConnInfoControl<T extends ConnectionInfoAP> {
48

5-
void save();
6-
9+
void save(String configFilePath, Collection<StatefulAP> statefulAP);
10+
711
void test();
8-
12+
913
void getNewConnInfoAP();
1014
}

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,14 @@ public class ConnectionInfoVBox extends VBox {
6060

6161
@FXML
6262
JFXButton nextConnInfoBtn;
63-
64-
// private Class<? extends AnchorPane> childAPClazz;
6563

6664
private ConnInfoControl<ConnectionInfoAP> connInfoControl;
6765

6866
private ConnInfoAPMap connInfoAPMap = new ConnInfoAPMap();
6967

7068
private long connInfoIdx = -1;
7169

72-
public ConnectionInfoVBox(Class<? extends AnchorPane> childAPClazz, ConnInfoControl<ConnectionInfoAP> connInfoControl) {
73-
// this.childAPClazz = childAPClazz;
70+
public ConnectionInfoVBox(ConnInfoControl<ConnectionInfoAP> connInfoControl) {
7471
this.connInfoControl = connInfoControl;
7572

7673
try {
@@ -106,7 +103,7 @@ public void addConnectionInfoAP(int type, Node connInfoAP) {
106103

107104
// TODO 다형성을 이용해 클래스 타입체크 제거하기
108105
public void saveConnInfoSettings(String configFilePath) {
109-
connInfoControl.save();
106+
connInfoControl.save(configFilePath, this.connInfoAPMap.getActiveAPs().values());
110107
/*
111108
if (childAPClazz == DBConnectionInfoAnchorPane.class) {
112109
Map<String, JdbcConnectionInfo> config = new HashMap<>();

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

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
11
package root.javafx.CustomView;
22

3+
import java.util.Collection;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
import root.core.domain.JdbcConnectionInfo;
8+
import root.core.repository.constracts.PropertyRepository;
9+
import root.core.repository.implement.PropertyRepositoryImpl;
10+
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
11+
312
public class DBConnInfoControl implements ConnInfoControl<ConnectionInfoAP> {
413

14+
/* Dependency Injection */
15+
private PropertyRepository propertyRepository = PropertyRepositoryImpl.getInstance();
16+
517
@Override
6-
public void save() {
7-
// TODO Auto-generated method stub
8-
System.out.println("DB save()");
18+
public void save(String configFilePath, Collection<StatefulAP> statefulAP) {
19+
20+
Map<String, JdbcConnectionInfo> config = new HashMap<>();
21+
22+
for (StatefulAP childAP : statefulAP) {
23+
DBConnectionInfoAnchorPane dbConnAP = (DBConnectionInfoAnchorPane) childAP.getAp();
24+
JdbcConnectionInfo jdbc = dbConnAP.getInputValues();
25+
config.put(jdbc.getJdbcDBName().toUpperCase(), jdbc);
26+
}
27+
propertyRepository.saveDBConnectionInfo(configFilePath, config);
928
}
1029

1130
@Override

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

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
11
package root.javafx.CustomView;
22

3+
import java.util.Collection;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
import root.core.domain.JschConnectionInfo;
8+
import root.core.repository.constracts.PropertyRepository;
9+
import root.core.repository.implement.PropertyRepositoryImpl;
10+
import root.javafx.CustomView.ConnectionInfoVBox.StatefulAP;
11+
312
public class ServerConnInfoControl implements ConnInfoControl<ConnectionInfoAP> {
413

14+
/* Dependency Injection */
15+
private PropertyRepository propertyRepository = PropertyRepositoryImpl.getInstance();
16+
517
@Override
6-
public void save() {
7-
// TODO Auto-generated method stub
8-
System.out.println("Server save()");
18+
public void save(String configFilePath, Collection<StatefulAP> statefulAP) {
19+
Map<String, JschConnectionInfo> config = new HashMap<>();
20+
21+
for (StatefulAP childAP : statefulAP) {
22+
ServerConnectionInfoAnchorPane serverConnAP = (ServerConnectionInfoAnchorPane) childAP.getAp();
23+
JschConnectionInfo jsch = serverConnAP.getInputValues();
24+
config.put(jsch.getServerName().toUpperCase(), jsch);
25+
}
26+
propertyRepository.saveServerConnectionInfo(configFilePath, config);
927
}
1028

1129
@Override
@@ -19,5 +37,4 @@ public void getNewConnInfoAP() {
1937
// TODO Auto-generated method stub
2038
System.out.println("Server getNewConnInfoAP()");
2139
}
22-
2340
}

0 commit comments

Comments
 (0)