/**
* @param project
*/
static void createAndSimplifyModel(IProject project, final IProjectDependenciesProvider dependenciesProvider) {
IDiagram model;
// Create model.
model = new DiagramModel(project);
final IDiagram modelRef = model;
// Creating the model
IProgressMonitor pm = Job.getJobManager().createProgressGroup();
pm.beginTask("Compute Model", IProgressMonitor.UNKNOWN);
final ILock lock = Job.getJobManager().newLock();
Job createModeJob = new Job("Create Model") {
/**
* @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
lock.acquire();
// return ModelFactory.computeBottomUpDependenciesModel(modelRef, monitor);
return ModelFactory.computeModel(modelRef, dependenciesProvider, monitor);
} finally {
lock.release();
}
}
};
createModeJob.setUser(true);
createModeJob.setProgressGroup(pm, IProgressMonitor.UNKNOWN);
createModeJob.setThread(new Thread());
createModeJob.schedule();
// Creates job : Computing model connection's costs
final IDiagram workingModel = model;
Job simplifyModelJob = new Job("Simplify Model") {
/**
* @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override