final List<IMavenProjectFacade> facades = getImpactedProjects(projectManager);
if(facades.isEmpty())
return;
final IProjectConfigurationManager configurationManager = MavenPlugin.getProjectConfigurationManager();
WorkspaceJob job = new WorkspaceJob(Messages.MavenWtpPreferencePage_Updating_Maven_Projects_Job) {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor) {
try {
SubMonitor progress = SubMonitor.convert(monitor, Messages.MavenWtpPreferencePage_Updating_Maven_Projects_Monitor, 100);
SubMonitor subProgress = SubMonitor.convert(progress.newChild(5), facades.size() * 100);
//projectManager.sortProjects(facades, progress.newChild(5));
for(IMavenProjectFacade facade : facades) {
if(progress.isCanceled()) {
throw new OperationCanceledException();
}
IProject project = facade.getProject();
subProgress.subTask(NLS.bind(Messages.MavenWtpPreferencePage_Updating_Configuration_For_Project, project.getName()));
configurationManager.updateProjectConfiguration(project, subProgress);
}
} catch(CoreException ex) {
return ex.getStatus();
}
return Status.OK_STATUS;
}
};
job.setRule(configurationManager.getRule());
job.schedule();
}