Java tutorial
/* * ------------------------------------------------------------------------ * * Copyright (C) 2003 - 2010 * University of Konstanz, Germany and * KNIME GmbH, Konstanz, Germany * Website: http://www.knime.org; Email: contact@knime.org * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ------------------------------------------------------------------------ * * History * 19.09.2007 (thiel): created */ package de.mpicbg.knime.scripting.r.prefs; import de.mpicbg.knime.knutils.Utils; import de.mpicbg.knime.scripting.r.R4KnimeBundleActivator; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.jface.preference.IPreferenceStore; import org.knime.core.node.NodeLogger; import java.io.File; /** * @author Kilian Thiel, University of Konstanz */ public class RPreferenceInitializer extends AbstractPreferenceInitializer { private static final NodeLogger LOGGER = NodeLogger.getLogger(RPreferenceInitializer.class); /** * Preference key for the path to the R executable setting. */ // public static final String PREF_R_PATH = "knime.r.path"; public static final String REPAINT_ON_RESIZE = "repaint.on.resize"; public static final String USE_EVALUATE_PACKAGE = "use.evaluate.package"; public static final String R_PLOT_TEMPLATES = "templates.figures"; public static final String R_SNIPPET_TEMPLATES = "template.snippets"; public static final String R_OPENINR_TEMPLATES = "templates.openinr"; public static final String R_HOST = "r.host"; public static final String R_PORT = "r.port"; public static final String LOCAL_R_PATH = "local.r.path"; @Override public void initializeDefaultPreferences() { IPreferenceStore store = R4KnimeBundleActivator.getDefault().getPreferenceStore(); store.setDefault(REPAINT_ON_RESIZE, false); store.setDefault(USE_EVALUATE_PACKAGE, false); store.setDefault(R_HOST, "localhost"); store.setDefault(R_PORT, 6311); store.setDefault(R_PLOT_TEMPLATES, "https://raw.githubusercontent.com/knime-mpicbg/scripting-templates/master/knime-scripting-templates/R/figure-templates.txt"); store.setDefault(R_SNIPPET_TEMPLATES, "https://raw.githubusercontent.com/knime-mpicbg/scripting-templates/master/knime-scripting-templates/R/snippet-templates.txt"); String defaultRPath = "R"; if (Utils.isMacOSPlatform()) { defaultRPath = "/Applications/R.app/"; } if (Utils.isWindowsPlatform()) { defaultRPath = findRExecutable(); } store.setDefault(LOCAL_R_PATH, defaultRPath); } private String findRExecutable() { File appDir = new File(System.getenv("ProgramFiles")); //list all and try to find r if (!appDir.isDirectory()) { System.err.println("could not application directory 'ProgramFiles'"); return ""; } for (File file : appDir.listFiles()) { if (!file.getName().matches("R")) { continue; } File[] files = file.listFiles(); if (files.length > 0) { return files[files.length - 1].getAbsolutePath() + File.separator + "bin/RGui.exe"; } } return ""; } /** * Returns the path to the R executable. * * @return the path */ public static String getRPath() { final IPreferenceStore pStore = R4KnimeBundleActivator.getDefault().getPreferenceStore(); return pStore.getString(REPAINT_ON_RESIZE); } }