summaryrefslogtreecommitdiff
path: root/enigma-swing/src/main/java
diff options
context:
space:
mode:
authorGravatar 2xsaiko2020-04-22 20:50:50 +0200
committerGravatar 2xsaiko2020-06-03 23:55:56 +0200
commit8dcba3b6b98936791d3d35146e819da8b97fd78a (patch)
tree81730322aa9c27abe2cf7b851c5103907f3e8974 /enigma-swing/src/main/java
parentImprove connect dialog (diff)
downloadenigma-8dcba3b6b98936791d3d35146e819da8b97fd78a.tar.gz
enigma-8dcba3b6b98936791d3d35146e819da8b97fd78a.tar.xz
enigma-8dcba3b6b98936791d3d35146e819da8b97fd78a.zip
Prepare for allowing error messages in VerifiableTextField
Diffstat (limited to 'enigma-swing/src/main/java')
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java4
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/elements/VerifiableTextField.java32
2 files changed, 29 insertions, 7 deletions
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java
index 070d03d4..4bac97b6 100644
--- a/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/dialog/ConnectToServerDialog.java
@@ -89,10 +89,10 @@ public class ConnectToServerDialog extends JDialog {
89 89
90 public boolean validateInputs() { 90 public boolean validateInputs() {
91 boolean error = false; 91 boolean error = false;
92 ipField.setErrorState(false); 92 ipField.clearErrorState();
93 93
94 if (ServerAddress.from(ipField.getText(), EnigmaServer.DEFAULT_PORT) == null) { 94 if (ServerAddress.from(ipField.getText(), EnigmaServer.DEFAULT_PORT) == null) {
95 ipField.setErrorState(true); 95 ipField.addError("Invalid IP/Port combination");
96 error = true; 96 error = true;
97 } 97 }
98 98
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/VerifiableTextField.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/VerifiableTextField.java
index 41a24840..928372c3 100644
--- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/VerifiableTextField.java
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/VerifiableTextField.java
@@ -6,6 +6,8 @@ import java.awt.event.FocusAdapter;
6import java.awt.event.FocusEvent; 6import java.awt.event.FocusEvent;
7 7
8import javax.swing.JTextField; 8import javax.swing.JTextField;
9import javax.swing.event.DocumentEvent;
10import javax.swing.event.DocumentListener;
9import javax.swing.text.Document; 11import javax.swing.text.Document;
10 12
11public class VerifiableTextField extends JTextField { 13public class VerifiableTextField extends JTextField {
@@ -32,16 +34,36 @@ public class VerifiableTextField extends JTextField {
32 } 34 }
33 35
34 { 36 {
35 addFocusListener(new FocusAdapter() { 37 getDocument().addDocumentListener(new DocumentListener() {
36 @Override 38 @Override
37 public void focusGained(FocusEvent e) { 39 public void insertUpdate(DocumentEvent e) {
38 setErrorState(false); 40 clearErrorState();
41 }
42
43 @Override
44 public void removeUpdate(DocumentEvent e) {
45 clearErrorState();
46 }
47
48 @Override
49 public void changedUpdate(DocumentEvent e) {
50 clearErrorState();
39 } 51 }
40 }); 52 });
41 } 53 }
42 54
43 public void setErrorState(boolean b) { 55 @Override
44 this.hasError = b; 56 public void setText(String t) {
57 super.setText(t);
58 }
59
60 public void clearErrorState() {
61 this.hasError = false;
62 repaint();
63 }
64
65 public void addError(String message) {
66 this.hasError = true;
45 repaint(); 67 repaint();
46 } 68 }
47 69