From 9142fb50a291d92b3ed62ba2f4b1f3d26d76c09a Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Wed, 28 Aug 2013 15:41:04 +0000 Subject: [PATCH] - fixed stackOverflow for ToggleableTextFieldController --- .../basicFields/ToggleableTextFieldController.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java index 2e7f7e34f..1307f0496 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java @@ -21,8 +21,10 @@ import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Text; +import eu.etaxonomy.cdm.common.CdmUtils; import eu.etaxonomy.taxeditor.preference.Resources; import eu.etaxonomy.taxeditor.store.StoreUtil; import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; @@ -101,9 +103,14 @@ public class ToggleableTextFieldController extends AbstractCdmFormElement implem Text textField = toggleableTextField.getText(); int caretPosition = textField.getCaretPosition(); - textField.removeModifyListener(this); - textField.setText(text); - textField.addModifyListener(this); + Listener[] listeners = textField.getListeners(SWT.Modify); + for (Listener listener : listeners) { + textField.removeListener(SWT.Modify, listener); + } + textField.setText(CdmUtils.Nz(text)); + for (Listener listener : listeners) { + textField.addListener(SWT.Modify, listener); + } // restore caret position textField.setSelection(caretPosition); -- 2.34.1