Changeset 17238 in josm for trunk/src/org/openstreetmap/josm/gui/widgets/AbstractTextComponentValidator.java
- Timestamp:
- 2020-10-19T00:54:46+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/widgets/AbstractTextComponentValidator.java
r17078 r17238 21 21 22 22 import org.openstreetmap.josm.data.preferences.NamedColorProperty; 23 import org.openstreetmap.josm.gui.util.ChangeNotifier; 23 24 import org.openstreetmap.josm.tools.CheckParameterUtil; 24 25 … … 35 36 * @since 2688 36 37 */ 37 public abstract class AbstractTextComponentValidator implements ActionListener, FocusListener, DocumentListener, PropertyChangeListener { 38 public abstract class AbstractTextComponentValidator extends ChangeNotifier 39 implements ActionListener, FocusListener, DocumentListener, PropertyChangeListener { 38 40 39 41 protected static final Color ERROR_COLOR = new NamedColorProperty(marktr("Input validation: error"), Color.RED).get(); … … 63 65 if (hasChanged(msg, Status.INVALID)) { 64 66 // only provide feedback if the validity has changed. This avoids unnecessary UI updates. 65 tc.setBorder(ERROR_BORDER); 66 tc.setBackground(ERROR_BACKGROUND); 67 tc.setToolTipText(msg); 68 this.status = Status.INVALID; 69 this.msg = msg; 67 feedback(ERROR_BORDER, ERROR_BACKGROUND, msg, Status.INVALID, msg); 70 68 } 71 69 } … … 74 72 if (hasChanged(msg, Status.WARNING)) { 75 73 // only provide feedback if the validity has changed. This avoids unnecessary UI updates. 76 tc.setBorder(WARNING_BORDER); 77 tc.setBackground(WARNING_BACKGROUND); 78 tc.setToolTipText(msg); 79 this.status = Status.WARNING; 80 this.msg = msg; 74 feedback(WARNING_BORDER, WARNING_BACKGROUND, msg, Status.WARNING, msg); 81 75 } 82 76 } … … 89 83 if (hasChanged(msg, Status.VALID)) { 90 84 // only provide feedback if the validity has changed. This avoids unnecessary UI updates. 91 tc.setBorder(msg == null ? UIManager.getBorder("TextField.border") : VALID_BORDER);92 tc.setBackground(UIManager.getColor("TextField.background"));93 tc.setToolTipText(msg == null ? "" : msg);94 this.status = Status.VALID;95 this.msg = msg;85 feedback(msg == null ? UIManager.getBorder("TextField.border") : VALID_BORDER, 86 UIManager.getColor("TextField.background"), 87 msg == null ? "" : msg, 88 Status.VALID, 89 msg); 96 90 } 97 91 } … … 99 93 private boolean hasChanged(String msg, Status status) { 100 94 return !(Objects.equals(status, this.status) && Objects.equals(msg, this.msg)); 95 } 96 97 private void feedback(Border border, Color background, String tooltip, Status status, String msg) { 98 tc.setBorder(border); 99 tc.setBackground(background); 100 tc.setToolTipText(tooltip); 101 this.status = status; 102 this.msg = msg; 103 fireStateChanged(); 101 104 } 102 105 … … 171 174 /* -------------------------------------------------------------------------------- */ 172 175 @Override 173 public void focusGained(FocusEvent arg0) {}174 175 @Override 176 public void focusLost(FocusEvent arg0) {176 public void focusGained(FocusEvent e) {} 177 178 @Override 179 public void focusLost(FocusEvent e) { 177 180 validate(); 178 181 } … … 182 185 /* -------------------------------------------------------------------------------- */ 183 186 @Override 184 public void actionPerformed(ActionEvent arg0) {187 public void actionPerformed(ActionEvent e) { 185 188 validate(); 186 189 } … … 190 193 /* -------------------------------------------------------------------------------- */ 191 194 @Override 192 public void changedUpdate(DocumentEvent arg0) {193 validate(); 194 } 195 196 @Override 197 public void insertUpdate(DocumentEvent arg0) {198 validate(); 199 } 200 201 @Override 202 public void removeUpdate(DocumentEvent arg0) {195 public void changedUpdate(DocumentEvent e) { 196 validate(); 197 } 198 199 @Override 200 public void insertUpdate(DocumentEvent e) { 201 validate(); 202 } 203 204 @Override 205 public void removeUpdate(DocumentEvent e) { 203 206 validate(); 204 207 }
Note:
See TracChangeset
for help on using the changeset viewer.