252 | | textField.getDocument().addDocumentListener(DocumentAdapter.create(ignore -> |
253 | | support.fireItemValueModified(this, key, textField.getText()))); |
254 | | |
255 | | if (valueTemplate != null) { |
| 251 | // don't fire on calculated fields because you can easily get into a loop |
| 252 | if (valueTemplate == null) { |
| 253 | textField.getDocument().addDocumentListener(DocumentAdapter.create(event -> |
| 254 | support.fireItemValueModified(this, key, textField.getText()))); |
| 255 | } else { |
258 | | if (source != this) { |
259 | | String valueTemplateText = valueTemplate.getText(support); |
260 | | Logging.trace("Evaluating value_template {0} for key {1} from {2} with new value {3} => {4}", |
261 | | valueTemplate, key, source, newValue, valueTemplateText); |
262 | | if (!textField.getText().equals(valueTemplateText)) { |
263 | | SwingUtilities.invokeLater(() -> textField.setItem(valueTemplateText)); |
264 | | } |
265 | | } |
| 258 | String valueTemplateText = valueTemplate.getText(support); |
| 259 | Logging.trace("Evaluating value_template {0} for key {1} from {2} with new value {3} => {4}", |
| 260 | valueTemplate, key, source, newValue, valueTemplateText); |
| 261 | textField.setItem(valueTemplateText); |