package org.bundlemaker.core.ui.event.selection.internal.lifecycle;
import org.bundlemaker.core.ui.event.selection.workbench.ILifecycleAwarePart;
import org.eclipse.core.runtime.Assert;
import org.eclipse.ui.IPartListener;
import org.eclipse.ui.IWorkbenchPart;
public class LifecycleAwarePartListener implements IPartListener {
/** - */
private ILifecycleAwarePart _owner;
/**
* <p>
* Creates a new instance of type {@link LifecycleAwarePartListener}.
* </p>
*
* @param owner
*/
public LifecycleAwarePartListener(ILifecycleAwarePart owner) {
Assert.isNotNull(owner);
// set owner
_owner = owner;
}
@Override
public void partOpened(IWorkbenchPart part) {
//
if (!isOwner(part)) {
return;
}
_owner.onPartOpened();
}
@Override
public void partDeactivated(IWorkbenchPart part) {
//
if (!isOwner(part)) {
return;
}
_owner.onPartDeactivated();
}
@Override
public void partClosed(IWorkbenchPart part) {
//
if (!isOwner(part)) {
return;
}
_owner.onPartClosed();
}
@Override
public void partBroughtToTop(IWorkbenchPart part) {
//
if (!isOwner(part)) {
return;
}
_owner.onPartBroughtToTop();
}
@Override
public void partActivated(IWorkbenchPart part) {
//
if (!isOwner(part)) {
return;
}
_owner.onPartActivated();
}
/**
* <p>
* </p>
*
* @param part
* @return
*/
private boolean isOwner(IWorkbenchPart part) {
return _owner.equals(part);
}
}