package org.projectusus.ui.internal.proportions.cockpit;
import org.eclipse.ui.IWorkbenchPartReference;
import org.projectusus.adapter.RunComputationOnResourceChange;
import org.projectusus.ui.util.PartAdapter;
public class CockpitVisibilityListener extends PartAdapter {
private final CockpitView cockpitView;
public CockpitVisibilityListener( CockpitView cockpitView ) {
this.cockpitView = cockpitView;
}
@Override
public void partClosed( IWorkbenchPartReference partRef ) {
setInvisible( partRef );
}
@Override
public void partOpened( IWorkbenchPartReference partRef ) {
setVisible( partRef );
}
@Override
public void partHidden( IWorkbenchPartReference partRef ) {
// this is the super important notification!
setInvisible( partRef );
}
@Override
public void partVisible( IWorkbenchPartReference partRef ) {
// this is the super important notification!
setVisible( partRef );
}
private void setVisible( IWorkbenchPartReference partRef ) {
if( partRef.getPart( false ) == cockpitView ) {
RunComputationOnResourceChange.cockpitIsVisible();
}
}
private void setInvisible( IWorkbenchPartReference partRef ) {
if( partRef.getPart( false ) == cockpitView ) {
RunComputationOnResourceChange.cockpitIsInvisible();
}
}
}