package org.archstudio.archlight.core;
import java.util.Collection;
import org.archstudio.xarchadt.ObjRef;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
/**
* Myx brick: "Myx Impl"
*
* @see org.archstudio.archlight.core.ArchlightToolAggregatorMyxComponentStub
* @generated
*/
public class ArchlightToolAggregatorMyxComponent extends
org.archstudio.archlight.core.ArchlightToolAggregatorMyxComponentStub {
public static final String TOOL_ID = "Aggregator";
@Override
public String getToolID() {
return TOOL_ID;
}
@Override
public void reloadTests() {
if (tools != null) {
tools.reloadTests();
}
}
boolean runningTests = false;
protected IProgressMonitor progressMonitor = null;
@Override
public void runTests(ObjRef documentRef, Collection<String> testUIDs) {
if (runningTests) {
return;
}
runningTests = true;
final ObjRef fdocumentRef = documentRef;
final Collection<String> ftestUIDs = testUIDs;
if (tools != null) {
Job job = new Job("Running Archlight Tests") {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
progressMonitor = monitor;
tools.runTests(fdocumentRef, ftestUIDs);
return Status.OK_STATUS;
}
finally {
runningTests = false;
}
}
};
job.setPriority(Job.LONG);
job.setUser(true);
job.schedule();
}
}
@Override
public void callProgress(int calleeNum, int totalCallees, Object returnValue, Throwable exception) {
IProgressMonitor lprogressMonitor = progressMonitor;
if (lprogressMonitor != null) {
if (calleeNum == 0) {
lprogressMonitor.beginTask("Running Archlight Tests", totalCallees);
}
else {
lprogressMonitor.worked(calleeNum);
}
if (calleeNum == totalCallees) {
lprogressMonitor.done();
}
}
}
}