package org.zend.php.zendserver.deployment.core.sdk;
import org.eclipse.core.runtime.IProgressMonitor;
import org.zend.webapi.core.progress.IStatus;
import org.zend.webapi.core.progress.IStatusChangeEvent;
import org.zend.webapi.core.progress.IStatusChangeListener;
public class StatusChangeListener implements IStatusChangeListener {
private IProgressMonitor monitor;
private String currentTask;
private IStatus status;
public StatusChangeListener(IProgressMonitor monitor) {
this.monitor = monitor;
}
public void statusChanged(IStatusChangeEvent event) {
status = event.getStatus();
switch (status.getCode()) {
case STARTING:
currentTask = status.getTitle();
monitor.beginTask(status.getMessage(), status.getTotalWork());
break;
case STOPPING:
currentTask = null;
monitor.done();
break;
case PROCESSING:
monitor.worked(status.getTotalWork());
break;
case ERROR:
monitor.done();
break;
default:
break;
}
}
public IStatus getStatus() {
return status;
}
}