if (csvFile != null) {
dialog.getRawFile().setValue(csvFile.toString());
}
if (dialog.process()) {
EncogAnalyst analyst = null;
File projectFolder = EncogWorkBench.getInstance()
.getProjectDirectory();
File egaFile = null;
if( dialog.getMethodType()==WizardMethodType.SOM && dialog.getGoal()==AnalystGoal.Regression ) {
EncogWorkBench.displayError("Error", "Can't use a SOM with regression.");
return;
}
try {
EncogWorkBench.getInstance().getMainWindow().beginWait();
File sourceCSVFile = new File(dialog.getRawFile().getValue());
File targetCSVFile = new File(projectFolder,
sourceCSVFile.getName());
if (!sourceCSVFile.toString().equals(targetCSVFile.toString())) {
org.encog.util.file.FileUtil.copy(sourceCSVFile,
targetCSVFile);
}
egaFile = new File(FileUtil.forceExtension(
targetCSVFile.toString(), "ega"));
if (!EncogWorkBench.getInstance().getMainWindow()
.getTabManager().queryViews(egaFile))
return;
File egFile = new File(FileUtil.forceExtension(
targetCSVFile.toString(), "eg"));
analyst = new EncogAnalyst();
AnalystWizard wizard = new AnalystWizard(analyst);
boolean headers = dialog.getHeaders().getValue();
AnalystFileFormat format = dialog.getFormat();
wizard.setMethodType(dialog.getMethodType());
wizard.setTargetField(dialog.getTargetField());
String m = (String)dialog.getMissing().getSelectedValue();
if( m.equals("DiscardMissing") ) {
wizard.setMissing(new DiscardMissing());
} else if( m.equals("MeanAndModeMissing") ) {
wizard.setMissing(new MeanAndModeMissing());
} else if( m.equals("NegateMissing") ) {
wizard.setMissing(new NegateMissing());
} else {
wizard.setMissing(new DiscardMissing());
}
wizard.setGoal(dialog.getGoal());
wizard.setLagWindowSize(dialog.getLagCount().getValue());
wizard.setLeadWindowSize(dialog.getLeadCount().getValue());
wizard.setIncludeTargetField(dialog.getIncludeTarget()
.getValue());
wizard.setRange(dialog.getRange());
wizard.setTaskNormalize(dialog.getNormalize().getValue());
wizard.setTaskRandomize(dialog.getRandomize().getValue());
wizard.setTaskSegregate(dialog.getSegregate().getValue());
wizard.setTaskBalance(dialog.getBalance().getValue());
wizard.setTaskCluster(dialog.getCluster().getValue());
wizard.wizard(targetCSVFile, headers, format);
} catch (EncogError e) {
EncogWorkBench.displayError("Error Generating Analyst Script",
e);
} finally {
EncogWorkBench.getInstance().getMainWindow().endWait();
if (analyst != null)
analyst.save(egaFile);
EncogWorkBench.getInstance().getMainWindow().getTree()
.refresh();
}
}
}