private String mmlPath = EnvironFile.getMIZFILES() + File.separator + "mml";
@Override
public void run() {
button.setEnabled(false);
TemporaryDirectory temporaryDirectory = null;
long beforeTime = Calendar.getInstance().getTimeInMillis() - 24*60*60*1000;
TemporaryDirectoryFactory.clearTemporaryDirectories(beforeTime);
try {
temporaryDirectory = TemporaryDirectoryFactory.newTemporaryDirectory();
} catch (TemporaryDirectoryException e) {
textArea.append(e.getMessage());
}
if (temporaryDirectory == null){
textArea.append("\n");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
return;
}
File workDirectory = temporaryDirectory.getFile();
textArea.append("Temporary Directory : " + workDirectory.getPath());
textArea.append("\n");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
LinkedList<String> articleList = ListArticleFile.getArticleList();
progressBarMML.setMaximum(articleList.size()+1);
progressBarMML.setValue(0);
progressBarMML.setIndeterminate(false);
progressBarVerifier.setMaximum(100);
progressBarVerifier.setValue(0);
progressBarVerifier.setIndeterminate(false);
Article article = null;
String articleName = null;
String fileName = null;
int progress = 0;
long duration = 0;
WorkFileExtension[] wfe = WorkFileExtension.values();
try {
String check;
boolean error = false;
for (String aid : articleList){
if (!error){
temporaryDirectory.clear();
article = ArticleFactory.getInstance().getArticle(aid);
articleName = article.getAid().toLowerCase();
textArea.append((articleName+" ").substring(0,10)+" : ");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
File sourceFile = new File(mmlPath, articleName+".miz");
File destinationFile = new File(workDirectory, articleName+".miz");
error = !UtilityFile.Copy(sourceFile, destinationFile);
if (!error) {
textArea.append("[MakeEnvironment] ");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
duration = Calendar.getInstance().getTimeInMillis();
try {
MakeEnvironment makeEnvironment = new MakeEnvironment(temporaryDirectory, destinationFile.getName());
makeEnvironment.start();
while (makeEnvironment.isExecuting()) {
Thread.sleep(50);
}
if (makeEnvironment.getExitValue() != 0) {
error = true;
textArea.append("Error exit value = " + makeEnvironment.getExitValue());
textArea.append("\n");
}
if (makeEnvironment.getException() != null) {
error = true;
textArea.append(makeEnvironment.getException().getMessage());
textArea.append("\n");
}
} catch (ExecutableException e) {
error = true;
textArea.append(e.getMessage());
textArea.append("\n");
} catch (InterruptedException e) {
error = true;
textArea.append(e.getMessage());
textArea.append("\n");
}
duration = Calendar.getInstance().getTimeInMillis() - duration;
textArea.append("["+((double)duration)/1000+"] ");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
}
if (!error) {
textArea.append("[Verifier] ");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
duration = Calendar.getInstance().getTimeInMillis();
try {
Verifier verifier = new Verifier(temporaryDirectory, destinationFile.getName());
verifier.start();
while (verifier.isExecuting()) {
Thread.sleep(250);
progressBarVerifier.setValue(verifier.getPercentage());
}
if (verifier.getExitValue() != 0) {
error = true;
textArea.append("Error exit value = " + verifier.getExitValue());
textArea.append("\n");
}
if (verifier.getException() != null) {
error = true;
textArea.append(verifier.getException().getMessage());
textArea.append("\n");
}
} catch (ExecutableException e) {
error = true;
textArea.append(e.getMessage());
textArea.append("\n");
} catch (InterruptedException e) {
error = true;
textArea.append(e.getMessage());
textArea.append("\n");
}
duration = Calendar.getInstance().getTimeInMillis() - duration;
textArea.append("["+((double)duration)/1000+"] ");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
}
textArea.append("\n");
textArea.append(" : ");
textArea.repaint();
textArea.setCaretPosition(textArea.getText().length()-1);
progressBarVerifier.setValue(0);
for (int i = 0; i < wfe.length; i++){
if (!error && !WorkFileExtension.getClassName(wfe[i].toString()).equals("?")) {
fileName = article.getAid().toLowerCase() + "."+ wfe[i];
if ((i+1)%8 == 0) {
textArea.append("\n");
textArea.append(" : ");
}
textArea.append(wfe[i] + " ");
File file = new File(temporaryDirectory.getFile(), fileName);
if (file.exists()){
check = FileWork.check(file, wfe[i].toString());
if (!check.equals("")) {
error = true;
textArea.append("\n");