Project

General

Profile

« Previous | Next » 

Revision 9142fb50

Added by Patrick Plitzner over 10 years ago

  • fixed stackOverflow for ToggleableTextFieldController

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/campanula/basicFields/ToggleableTextFieldController.java
21 21
import org.eclipse.swt.events.SelectionListener;
22 22
import org.eclipse.swt.graphics.Color;
23 23
import org.eclipse.swt.widgets.Button;
24
import org.eclipse.swt.widgets.Listener;
24 25
import org.eclipse.swt.widgets.Text;
25 26

  
27
import eu.etaxonomy.cdm.common.CdmUtils;
26 28
import eu.etaxonomy.taxeditor.preference.Resources;
27 29
import eu.etaxonomy.taxeditor.store.StoreUtil;
28 30
import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
......
101 103
            Text textField = toggleableTextField.getText();
102 104
            int caretPosition = textField.getCaretPosition();
103 105

  
104
            textField.removeModifyListener(this);
105
            textField.setText(text);
106
            textField.addModifyListener(this);
106
            Listener[] listeners = textField.getListeners(SWT.Modify);
107
            for (Listener listener : listeners) {
108
                textField.removeListener(SWT.Modify, listener);
109
            }
110
            textField.setText(CdmUtils.Nz(text));
111
            for (Listener listener : listeners) {
112
                textField.addListener(SWT.Modify, listener);
113
            }
107 114

  
108 115
            // restore caret position
109 116
            textField.setSelection(caretPosition);

Also available in: Unified diff