package org.bundlemaker.core.ui.view.problemview;
import org.bundlemaker.core.parser.IParserAwareBundleMakerProject;
import org.bundlemaker.core.parser.IProblem;
import org.bundlemaker.core.ui.event.IBundleMakerProjectOpenedEvent;
import org.bundlemaker.core.ui.event.IBundleMakerProjectOpenedEventListener;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
/**
* A {@link IBundleMakerProjectOpenedEventListener} that opens the BundleMaker Problem View, if the opened project has
* {@link IProblem problems}
*
* @author Nils Hartmann (nils@nilshartmann.net)
*
*/
public class OpenProblemViewBundleMakerProjectListener implements IBundleMakerProjectOpenedEventListener {
@Override
public void bundleMakerProjectOpened(IBundleMakerProjectOpenedEvent event) {
if (event.getBundleMakerProject().adaptAs(IParserAwareBundleMakerProject.class).getProblems().isEmpty()) {
// no Problems => no need to activate problem view
return;
}
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (workbenchWindow == null) {
return;
}
IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
if (workbenchPage == null) {
return;
}
try {
workbenchPage.showView(ProblemView.PROBLEM_VIEW_ID);
} catch (PartInitException e) {
e.printStackTrace();
}
}
}