if (compiler == null) { // Sterg-SOS why not loaded?
System.out.println("ToolProvider.getSystemJavaCompiler: no compiler provided. Unable to compile");
}
DiagnosticCollector<JavaFileObject> diagnostics =
new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager fileManager =
compiler.getStandardFileManager(diagnostics, null, null);
StringWriter compileWriter = new StringWriter();
List <File> sourceFileList = new ArrayList<File>();
sourceFileList.add(new File(sourceFile));
Iterable<? extends JavaFileObject> compilationUnits =
fileManager.getJavaFileObjectsFromFiles(sourceFileList);
String pathOfFile = sourceFile.substring(0, sourceFile.lastIndexOf(File.separatorChar));
String classpath =GlobalValues.jarFilePath+File.pathSeparatorChar+pathOfFile+File.pathSeparatorChar+".";
Iterable <String> options = Arrays.asList("-cp", classpath);
CompilationTask task = compiler.getTask(compileWriter, fileManager, null, options, null, compilationUnits);
boolean compileResult = task.call();
if (compileResult == false) {
compilationResult = false; // compilation errors
JFrame compResultsFrame = new JFrame("Compilation Results");
String diagnString = compileWriter.toString();
JTextArea compResultsArea = new JTextArea(diagnString);
compResultsArea.setFont(new Font("Arial", Font.BOLD, 16));
JPanel compResultsPanel = new JPanel();
compResultsPanel.add(compResultsArea);
compResultsFrame.add(compResultsPanel);
compResultsFrame.setSize(800, 200);
compResultsFrame.setLocation(100, 200);
compResultsFrame.setVisible(true);
int response = JOptionPane.showOptionDialog(null, "File "+sourceFile+" has compilation errors ", "Edit File? ",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
if (response == JOptionPane.YES_OPTION) { // edit it with scalalabEditor
new scalalabEdit.EditorPaneEdit(sourceFile);
}
}
try {
fileManager.close();
}
catch (IOException e) { }
return compilationResult;