*/
private boolean doIt(boolean force) {
if (project != null) {
try {
boolean changed = false;
IPythonPathNature pythonPathNature = PythonNature.getPythonPathNature(project);
String sourcePath = pythonPathNature.getProjectSourcePath(false);
String externalSourcePath = pythonPathNature.getProjectExternalSourcePath(false);
Map<String, String> variableSubstitution = pythonPathNature.getVariableSubstitution(false);
String newSourcePath = StringUtils.leftAndRightTrim(treeSourceFolders.getTreeItemsAsStr(), '|');
String newExternalSourcePath = StringUtils.leftAndRightTrim(treeExternalLibs.getTreeItemsAsStr(), '|');
Map<String, String> newVariableSubstitution = tabVariables.getTreeItemsAsMap();
if (checkIfShouldBeSet(sourcePath, newSourcePath)) {
pythonPathNature.setProjectSourcePath(newSourcePath);
changed = true;
}
if (checkIfShouldBeSet(externalSourcePath, newExternalSourcePath)) {
pythonPathNature.setProjectExternalSourcePath(newExternalSourcePath);
changed = true;
}
if (checkIfShouldBeSet(variableSubstitution, newVariableSubstitution)) {
pythonPathNature.setVariableSubstitution(newVariableSubstitution);
changed = true;
}
PythonNature pythonNature = PythonNature.getPythonNature(project);
if (pythonNature != null && (changed || force || pythonNature.getAstManager() == null)) {