package org.zend.php.zendserver.deployment.debug.ui.listeners;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.php.debug.core.debugger.launching.ILaunchDelegateListener;
import org.zend.php.zendserver.deployment.core.DeploymentNature;
import org.zend.php.zendserver.deployment.debug.core.config.LaunchUtils;
import org.zend.php.zendserver.deployment.debug.ui.Activator;
import org.zend.php.zendserver.deployment.debug.ui.config.DeploymentHandler;
public class DeploymentLaunchListener implements ILaunchDelegateListener {
public int preLaunch(ILaunchConfiguration configuration, String mode,
ILaunch launch, IProgressMonitor monitor) {
try {
final IProject project = LaunchUtils
.getProjectFromFilename(configuration);
if (project == null || !project.hasNature(DeploymentNature.ID)) {
return IStatus.OK;
}
DeploymentHandler handler = new DeploymentHandler();
int result = handler.executeDeployment(configuration, mode);
if (result == IStatus.CANCEL) {
configuration.delete();
}
return result;
} catch (CoreException e) {
Activator.log(e);
}
return 0;
}
}