Skip to content

Commit fd454ca

Browse files
committed
Refactoring: Remove duplication by creating a DB url combination event class
1 parent c84dfdc commit fd454ca

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

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

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

33
import java.io.IOException;
4+
import java.util.regex.Matcher;
5+
import java.util.regex.Pattern;
46

57
import com.jfoenix.controls.JFXComboBox;
68

9+
import javafx.event.Event;
10+
import javafx.event.EventHandler;
711
import javafx.fxml.FXML;
812
import javafx.fxml.FXMLLoader;
913
import javafx.scene.control.PasswordField;
@@ -69,5 +73,53 @@ public void setInitialValue(JdbcConnectionInfo jdbc) {
6973
portTF.setText(jdbc.getJdbcPort());
7074
driverCB.getSelectionModel().select(jdbc.getJdbcOracleDriver());
7175
aliasTF.setText(jdbc.getJdbcDBName());
76+
77+
// DB Url Generate Event Setting
78+
String dbms = "oracle";
79+
DBUrlGenerateEvent urlEvent = new DBUrlGenerateEvent(dbms);
80+
81+
driverCB.setOnInputMethodTextChanged(urlEvent);
82+
hostTF.setOnKeyReleased(urlEvent);
83+
portTF.setOnKeyReleased(urlEvent);
84+
sidTF.setOnKeyReleased(urlEvent);
85+
86+
urlTF.setOnKeyReleased(s -> {
87+
String text = ((TextField) s.getSource()).getText();
88+
Pattern p = Pattern
89+
.compile("(.*):(.*):" + driverCB.getSelectionModel().getSelectedItem() + ":@(.*):(.*)/(.*)");
90+
Matcher m = p.matcher(text);
91+
if (m.matches()) {
92+
hostTF.setText(m.group(3));
93+
portTF.setText(m.group(4));
94+
sidTF.setText(m.group(5));
95+
} else {
96+
urlEvent.handle(s);
97+
}
98+
});
99+
}
100+
101+
/**
102+
* 키 입력 또는 콤보박스 선택을 통해 입력된 Database 접속정보를 이용해 URL을 생성하는 이벤트
103+
*
104+
* @author DKY
105+
*
106+
*/
107+
private class DBUrlGenerateEvent implements EventHandler<Event> {
108+
109+
private String dbms;
110+
111+
public DBUrlGenerateEvent(String dbms) {
112+
this.dbms = dbms;
113+
}
114+
115+
@Override
116+
public void handle(Event event) {
117+
StringBuffer url = new StringBuffer();
118+
url.append("jdbc:").append(dbms).append(":").append(driverCB.getSelectionModel().getSelectedItem())
119+
.append(":@").append(hostTF.getText()).append(":").append(portTF.getText()).append("/")
120+
.append(sidTF.getText());
121+
122+
urlTF.setText(url.toString());
123+
}
72124
}
73125
}

0 commit comments

Comments
 (0)