use of org.rstudio.studio.client.workbench.views.environment.dataimport.ImportFileSettings in project rstudio by rstudio.
the class EnvironmentPresenter method showImportFileDialog.
private void showImportFileDialog(FileSystemItem input, String varname) {
ImportFileSettingsDialog dialog = new ImportFileSettingsDialog(server_, sourceServer_, input, varname, "Import Dataset", new OperationWithInput<ImportFileSettingsDialogResult>() {
public void execute(ImportFileSettingsDialogResult result) {
ImportFileSettings input = result.getSettings();
String var = StringUtil.toRSymbolName(input.getVarname());
String code = var + " <- " + makeCommand(input, result.getDefaultStringsAsFactors()) + "\n View(" + var + ")";
eventBus_.fireEvent(new SendToConsoleEvent(code, true));
}
}, globalDisplay_);
dialog.showModal();
}
use of org.rstudio.studio.client.workbench.views.environment.dataimport.ImportFileSettings in project rstudio by rstudio.
the class EnvironmentPresenter method makeCommand.
private String makeCommand(ImportFileSettings input, boolean defaultStringsAsFactors) {
HashMap<String, ImportFileSettings> commandDefaults_ = new HashMap<String, ImportFileSettings>();
commandDefaults_.put("read.table", new ImportFileSettings(null, null, "unknown", false, null, "", ".", "\"'", "#", "NA", defaultStringsAsFactors));
commandDefaults_.put("read.csv", new ImportFileSettings(null, null, "unknown", true, null, ",", ".", "\"", "", "NA", defaultStringsAsFactors));
commandDefaults_.put("read.delim", new ImportFileSettings(null, null, "unknown", true, null, "\t", ".", "\"", "", "NA", defaultStringsAsFactors));
commandDefaults_.put("read.csv2", new ImportFileSettings(null, null, "unknown", true, null, ";", ",", "\"", "", "NA", defaultStringsAsFactors));
commandDefaults_.put("read.delim2", new ImportFileSettings(null, null, "unknown", true, null, "\t", ",", "\"", "", "NA", defaultStringsAsFactors));
String command = "read.table";
ImportFileSettings settings = commandDefaults_.get("read.table");
int score = settings.calculateSimilarity(input);
for (String cmd : new String[] { "read.csv", "read.delim", "read.csv2", "read.delim2" }) {
ImportFileSettings theseSettings = commandDefaults_.get(cmd);
int thisScore = theseSettings.calculateSimilarity(input);
if (thisScore > score) {
score = thisScore;
command = cmd;
settings = theseSettings;
}
}
StringBuilder code = new StringBuilder(command);
code.append("(");
code.append(StringUtil.textToRLiteral(input.getFile().getPath()));
if (!input.getEncoding().equals(settings.getEncoding()))
code.append(", encoding=" + StringUtil.textToRLiteral(input.getEncoding()));
if (input.isHeader() != settings.isHeader())
code.append(", header=" + (input.isHeader() ? "TRUE" : "FALSE"));
if (!input.getRowNames().equals(settings.getRowNames())) {
// appended literally, since it's the string "1" or the string "NULL"
code.append(", row.names=" + input.getRowNames());
}
if (!input.getSep().equals(settings.getSep()))
code.append(", sep=" + StringUtil.textToRLiteral(input.getSep()));
if (!input.getDec().equals(settings.getDec()))
code.append(", dec=" + StringUtil.textToRLiteral(input.getDec()));
if (!input.getQuote().equals(settings.getQuote()))
code.append(", quote=" + StringUtil.textToRLiteral(input.getQuote()));
if (!input.getComment().equals(settings.getComment()))
code.append(", comment.char=" + StringUtil.textToRLiteral(input.getComment()));
if (!input.getNAStrings().equals(settings.getNAStrings()))
code.append(", na.strings=" + StringUtil.textToRLiteral(input.getNAStrings()));
if (input.getStringsAsFactors() != settings.getStringsAsFactors())
code.append(", stringsAsFactors=" + (input.getStringsAsFactors() ? "TRUE" : "FALSE"));
code.append(")");
return code.toString();
}
Aggregations