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