package org.objectstyle.wolips.eomodeler.utils; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Text; public class UglyFocusHackWorkaroundListener implements Listener { /* This is only needed on OSX with SWT 4.x when it screws up the contents of Text * fields that are not the first child and are focused using the mouse. */ private static final Listener listener = new UglyFocusHackWorkaroundListener(); public void handleEvent(Event e) { Text t = (Text) e.widget; switch (e.type) { case SWT.FocusIn: { if (t.getData() == null) { t.setData(t.getText()); } else if (!t.getData().equals(t.getText())) { t.setText((String) t.getData()); } break; } default: { t.setData(t.getText()); } } } public static void addListener(Text textField) { textField.addListener(SWT.FocusIn, listener); textField.addListener(SWT.FocusOut, listener); textField.addListener(SWT.Modify, listener);} }