package com.rcpcompany.uibindings.tests.utils;
import org.eclipse.core.runtime.ILogListener;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchListener;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.osgi.framework.BundleContext;
public class StartActivator extends Plugin {
public static int noMessages = 0;
public ILogListener myLogListener = new ILogListener() {
@Override
public void logging(IStatus status, String plugin) {
noMessages++;
}
};
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
if (!PlatformUI.isWorkbenchRunning())
return;
Platform.addLogListener(myLogListener);
PlatformUI.getWorkbench().addWorkbenchListener(
new IWorkbenchListener() {
@Override
public boolean preShutdown(IWorkbench workbench,
boolean forced) {
/*
* List all leftover TestViews
*/
final IWorkbenchPage page = workbench
.getActiveWorkbenchWindow().getActivePage();
for (final IViewReference vref : page
.getViewReferences()) {
if (!vref
.getId()
.equals("com.rcpcompany.uibindings.extests.views.TestView")) {
continue;
}
System.out.println("Leftover view: "
+ vref.getTitle());
}
return true;
}
@Override
public void postShutdown(IWorkbench workbench) {
}
});
}
@Override
public void stop(BundleContext context) throws Exception {
super.stop(context);
}
}