Skip to content

Commit 0147821

Browse files
committed
Add NumberTextFormatter for ConnInfo port input validation
1 parent d5987a4 commit 0147821

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,10 @@ public void init() {
8888
changedEvent.handle(s);
8989
}
9090
});
91-
91+
92+
// Set textFormatter
93+
portTF.setTextFormatter(new NumberTextFormatter());
94+
9295
// Set driver ComboBox values
9396
driverCB.getItems().addAll(propertyRepository.getOracleDrivers());
9497
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package root.javafx.CustomView;
2+
3+
import java.util.function.UnaryOperator;
4+
import java.util.regex.Pattern;
5+
6+
import javafx.scene.control.TextFormatter;
7+
import javafx.util.StringConverter;
8+
import javafx.util.converter.DefaultStringConverter;
9+
10+
public class NumberTextFormatter extends TextFormatter<String> {
11+
12+
public NumberTextFormatter(StringConverter<String> valueConverter, String defaultValue,
13+
UnaryOperator<Change> filter) {
14+
super(valueConverter, defaultValue, filter);
15+
}
16+
17+
public NumberTextFormatter() {
18+
this(new DefaultStringConverter(), "", c -> Pattern.matches("[0-9]*", c.getText()) ? c : null);
19+
}
20+
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,15 @@ public ConnectionTestService getConnectionTestService(ConnectionInfoAP curAP) {
5252
@Override
5353
public ConnectionInfoAP getNewConnInfoAP() {
5454
ServerConnectionInfoAnchorPane serverConnAP = new ServerConnectionInfoAnchorPane();
55+
serverConnAP.init();
5556
serverConnAP.setInitialValue(new JschConnectionInfo());
5657
return serverConnAP;
5758
}
5859

5960
@Override
6061
public ConnectionInfoAP getConnInfoAP(JschConnectionInfo connInfo) {
6162
ServerConnectionInfoAnchorPane serverConnAP = new ServerConnectionInfoAnchorPane();
63+
serverConnAP.init();
6264
serverConnAP.setInitialValue(connInfo);
6365
return serverConnAP;
6466
}

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,17 @@ public ServerConnectionInfoAnchorPane() {
5656
e.printStackTrace();
5757
}
5858
}
59-
60-
// "※프로퍼티파일을 열거나 접속정보를 추가해주세요."
61-
public void setInitialValue(JschConnectionInfo jsch) {
59+
60+
public void init() {
61+
// Set textFormatter
62+
portTF.setTextFormatter(new NumberTextFormatter());
63+
64+
// Set AlertLogDateFormat ComboBox values
6265
alertLogDateFormatCB.getItems()
63-
.addAll(propertyRepository.getCommonResources("server.setting.dateformat.combo"));
66+
.addAll(propertyRepository.getCommonResources("server.setting.dateformat.combo"));
67+
}
6468

69+
public void setInitialValue(JschConnectionInfo jsch) {
6570
serverNameTF.setText(jsch.getServerName());
6671
hostTF.setText(jsch.getHost());
6772
portTF.setText(jsch.getPort());

0 commit comments

Comments
 (0)