package sk.stuba.fiit.perconik.core.resources;
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbenchPartReference;
import sk.stuba.fiit.perconik.core.listeners.PartListener;
import sk.stuba.fiit.perconik.core.listeners.ViewListener;
enum ViewHandler implements Handler<ViewListener> {
INSTANCE;
private static final class PartFilter extends InternalFilter<ViewListener> implements PartListener {
PartFilter(final ViewListener listener) {
super(listener);
}
public void partOpened(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewOpened((IViewReference) reference);
}
}
public void partClosed(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewClosed((IViewReference) reference);
}
}
public void partActivated(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewActivated((IViewReference) reference);
}
}
public void partDeactivated(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewDeactivated((IViewReference) reference);
}
}
public void partVisible(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewVisible((IViewReference) reference);
}
}
public void partHidden(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewHidden((IViewReference) reference);
}
}
public void partBroughtToTop(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewBroughtToTop((IViewReference) reference);
}
}
public void partInputChanged(final IWorkbenchPartReference reference) {
if (reference instanceof IViewReference) {
this.listener.viewInputChanged((IViewReference) reference);
}
}
}
public void register(final ViewListener listener) {
PartHandler.INSTANCE.register(new PartFilter(listener));
}
public void unregister(final ViewListener listener) {
PartHandler.INSTANCE.unregister(new PartFilter(listener));
}
}