From a162fa5666ece586486b55bcdce6dbe9fe45ab20 Mon Sep 17 00:00:00 2001 From: bvosburgh Date: Wed, 12 May 2010 17:46:46 +0000 Subject: [222258] problems with XML and text fields --- .../utility/swt/TextFieldModelBinding.java | 25 ++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'jpa') diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/TextFieldModelBinding.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/TextFieldModelBinding.java index a2a8c867f7..5bb0c4e54f 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/TextFieldModelBinding.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/utility/swt/TextFieldModelBinding.java @@ -59,6 +59,11 @@ class TextFieldModelBinding { */ private final DisposeListener textFieldDisposeListener; + /** + * Hmm... + */ + private boolean settingTextFieldText = false; + // ********** constructor ********** @@ -139,11 +144,21 @@ class TextFieldModelBinding { private void setTextFieldText(String text) { // the text model can be null, but the text field cannot - if (text == null) { - text = ""; - } + this.setTextFieldText_((text == null) ? "" : text); + } + + private void setTextFieldText_(String text) { if ( ! text.equals(this.textField.getText())) { // ??? + this.setTextFieldText__(text); + } + } + + private void setTextFieldText__(String text) { + this.settingTextFieldText = true; + try { this.textField.setText(text); + } finally { + this.settingTextFieldText = false; } } @@ -151,7 +166,9 @@ class TextFieldModelBinding { // ********** text field events ********** /* private */ void textFieldModified() { - this.setTextModelText(this.textField.getText()); + if ( ! this.settingTextFieldText) { + this.setTextModelText(this.textField.getText()); + } } private void setTextModelText(String text) { -- cgit v1.2.3