package com.laboki.eclipse.plugin.smartsave.listeners;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.widgets.Control;
import com.google.common.base.Optional;
import com.laboki.eclipse.plugin.smartsave.contexts.EditorContext;
public final class KeyEventListener extends BaseListener
implements
KeyListener {
private final Optional<Control> control = KeyEventListener.getControl();
private static Optional<Control>
getControl() {
return EditorContext.getControl(EditorContext.getEditor());
}
@Override
public void
add() {
if (!this.control.isPresent()) return;
this.control.get().addKeyListener(this);
}
@Override
public void
remove() {
if (!this.control.isPresent()) return;
this.control.get().removeKeyListener(this);
}
@Override
public void
keyPressed(final KeyEvent event) {
EditorContext.cancelSaverTasks();
}
@Override
public void
keyReleased(final KeyEvent event) {
BaseListener.scheduleSave();
}
}