package sk.stuba.fiit.perconik.core.resources; import org.eclipse.jface.text.ITextSelection; import org.eclipse.jface.text.TextSelection; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IWorkbenchPart; import sk.stuba.fiit.perconik.core.listeners.SelectionListener; import sk.stuba.fiit.perconik.core.listeners.TextSelectionListener; enum TextSelectionHandler implements Handler<TextSelectionListener> { INSTANCE; private static final class SelectionFilter extends InternalFilter<TextSelectionListener> implements SelectionListener { public SelectionFilter(final TextSelectionListener listener) { super(listener); } public void selectionChanged(final IWorkbenchPart part, final ISelection selection) { if (selection instanceof TextSelection) { this.listener.selectionChanged(part, (ITextSelection) selection); } } } public void register(final TextSelectionListener listener) { SelectionHandler.INSTANCE.register(new SelectionFilter(listener)); } public void unregister(final TextSelectionListener listener) { SelectionHandler.INSTANCE.unregister(new SelectionFilter(listener)); } }