package com.laboki.eclipse.plugin.smartsave.listeners;
import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentListener;
import com.google.common.base.Optional;
import com.laboki.eclipse.plugin.smartsave.contexts.EditorContext;
public final class DocumentListener extends BaseListener
implements
IDocumentListener {
private final Optional<IDocument> document =
EditorContext.getDocument(EditorContext.getEditor());
@Override
public void
documentAboutToBeChanged(final DocumentEvent event) {
EditorContext.cancelSaverTasks();
}
@Override
public void
documentChanged(final DocumentEvent event) {
BaseListener.scheduleSave();
}
@Override
protected void
add() {
if (!this.document.isPresent()) return;
this.document.get().addDocumentListener(this);
}
@Override
protected void
remove() {
if (!this.document.isPresent()) return;
this.document.get().removeDocumentListener(this);
}
}