package com.onpositive.gae.baseviewer;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import com.onpositive.gae.tools.deploy.CheckTools;
import com.onpositive.gae.tools.deploy.ConfigureTools;
import com.onpositive.gae.tools.deploy.PrepareGaeProject;
public class Check {
boolean openConfirm;
void doCheck(final IJavaProject fJavaProject) {
CheckTools check = new CheckTools("Check tools", fJavaProject,
Activator.getDefault().getBundle());
if (!check.doCheck()) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
openConfirm = MessageDialog
.openConfirm(
Display.getCurrent().getActiveShell(),
"Project should be configured to add OnPositive Base Viewer support",
"Do you want to configure project to add OnPositive Base Viewer support now?");
}
});
if (openConfirm) {
PrepareGaeProject prepareGaeProject = new ConfigureTools(
"Preparing Google Web Application Project",
fJavaProject, Activator.getDefault().getBundle(), true);
PlatformUI.getWorkbench().getProgressService()
.showInDialog(null, prepareGaeProject);
prepareGaeProject.schedule();
prepareGaeProject.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
internalRun(fJavaProject);
}
});
}
super.done(event);
}
});
}
} else {
internalRun(fJavaProject);
}
}
protected void internalRun(IJavaProject project) {
try {
IViewPart showView = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage()
.showView("com.onpositive.gae.baseviewer.dataviewa");
if (showView instanceof DataViewPart) {
DataViewPart p = (DataViewPart) showView;
p.setProject(project);
}
} catch (PartInitException e) {
MessageDialog.openError(Display.getCurrent().getActiveShell(),
"Error", e.getMessage());
}
}
}