package au.com.vaadinutils.crud;
import com.vaadin.event.FieldEvents;
import com.vaadin.event.ShortcutAction;
import com.vaadin.event.ShortcutListener;
import com.vaadin.ui.TextField;
public abstract class OnEnterKeyHandler
{
final ShortcutListener enterShortcut = new ShortcutListener("EnterKeyShorcut", ShortcutAction.KeyCode.ENTER, null)
{
private static final long serialVersionUID = 1L;
@Override
public void handleAction(Object sender, Object target)
{
enterKeyPressed();
}
};
public void attachTo(final TextField component)
{
component.addFocusListener(new FieldEvents.FocusListener()
{
private static final long serialVersionUID = 1L;
@Override
public void focus(FieldEvents.FocusEvent event)
{
component.addShortcutListener(enterShortcut);
}
});
component.addBlurListener(new FieldEvents.BlurListener()
{
private static final long serialVersionUID = 1L;
@Override
public void blur(FieldEvents.BlurEvent event)
{
component.removeShortcutListener(enterShortcut);
}
});
}
public abstract void enterKeyPressed();
}