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;
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);