/* * RProjectConfig.java * * Copyright (C) 2009-12 by RStudio, Inc. * * Unless you have received this program directly from RStudio pursuant * to the terms of a commercial license agreement with RStudio, then * this program is licensed to you under the terms of version 3 of the * GNU Affero General Public License. This program is distributed WITHOUT * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details. * */ package org.rstudio.studio.client.projects.model; import java.util.ArrayList; import org.rstudio.core.client.StringUtil; import com.google.gwt.core.client.JavaScriptObject; public class RProjectConfig extends JavaScriptObject { public static final int DEFAULT_VALUE = 0; public static final int YES_VALUE = 1; public static final int NO_VALUE = 2; public static final int ASK_VALUE = 3; protected RProjectConfig() { } public native static final RProjectConfig createEmpty() /*-{ var config = new Object(); config.version = 1.0; return config; }-*/; public native final double getVersion() /*-{ return this.version; }-*/; public native final RProjectRVersion getRVersion() /*-{ return this.r_version; }-*/; public native final void setRVersion(RProjectRVersion rVersion) /*-{ this.r_version = rVersion; }-*/; public native final int getRestoreWorkspace() /*-{ return this.restore_workspace; }-*/; public native final void setRestoreWorkspace(int restoreWorkspace) /*-{ this.restore_workspace = restoreWorkspace; }-*/; public native final int getSaveWorkspace() /*-{ return this.save_workspace; }-*/; public native final void setSaveWorkspace(int saveWorkspace) /*-{ this.save_workspace = saveWorkspace; }-*/; public native final int getAlwaysSaveHistory() /*-{ return this.always_save_history; }-*/; public native final void setAlwaysSaveHistory(int alwaysSaveHistory) /*-{ this.always_save_history = alwaysSaveHistory; }-*/; public native final boolean getEnableCodeIndexing() /*-{ return this.enable_code_indexing; }-*/; public native final void setEnableCodeIndexing(boolean enableCodeIndexing) /*-{ this.enable_code_indexing = enableCodeIndexing; }-*/; public native final boolean getUseSpacesForTab() /*-{ return this.use_spaces_for_tab; }-*/; public native final void setUseSpacesForTab(boolean useSpacesForTab) /*-{ this.use_spaces_for_tab = useSpacesForTab; }-*/; public native final int getNumSpacesForTab() /*-{ return this.num_spaces_for_tab; }-*/; public native final void setNumSpacesForTab(int numSpacesForTab) /*-{ this.num_spaces_for_tab = numSpacesForTab; }-*/; public native final boolean getAutoAppendNewline() /*-{ return this.auto_append_newline; }-*/; public native final void setAutoAppendNewline(boolean autoAppendNewline) /*-{ this.auto_append_newline = autoAppendNewline; }-*/; public native final boolean getStripTrailingWhitespace() /*-{ return this.strip_trailing_whitespace; }-*/; public native final void setStripTrailingWhitespace(boolean stripTrailingWhitespace) /*-{ this.strip_trailing_whitespace = stripTrailingWhitespace; }-*/; public native final int getLineEndings() /*-{ return this.line_endings; }-*/; public native final void setLineEndings(int lineEndings) /*-{ this.line_endings = lineEndings; }-*/; public native final String getEncoding() /*-{ return this.default_encoding; }-*/; public native final void setEncoding(String defaultEncoding) /*-{ this.default_encoding = defaultEncoding; }-*/; public native final String getDefaultSweaveEngine() /*-{ return this.default_sweave_engine; }-*/; public native final void setDefaultSweaveEngine(String defaultSweaveEngine) /*-{ this.default_sweave_engine = defaultSweaveEngine; }-*/; public native final String getDefaultLatexProgram() /*-{ return this.default_latex_program; }-*/; public native final void setDefaultLatexProgram(String defaultLatexProgram) /*-{ this.default_latex_program = defaultLatexProgram; }-*/; public native final String getRootDocument() /*-{ return this.root_document; }-*/; public native final void setRootDocument(String rootDocument) /*-{ this.root_document = rootDocument; }-*/; public static final String BUILD_TYPE_NONE = "None"; public static final String BUILD_TYPE_PACKAGE = "Package"; public static final String BUILD_TYPE_MAKEFILE = "Makefile"; public static final String BUILD_TYPE_WEBSITE = "Website"; public static final String BUILD_TYPE_CUSTOM = "Custom"; public native final String getBuildType() /*-{ return this.build_type; }-*/; public native final void setBuildType(String buildType) /*-{ this.build_type = buildType; }-*/; public native final boolean getPackageUseDevtools() /*-{ return this.package_use_devtools; }-*/; public native final void setPackageUseDevtools(boolean useDevtools) /*-{ this.package_use_devtools = useDevtools; }-*/; public native final String getPackagePath() /*-{ return this.package_path; }-*/; public native final void setPackagePath(String packagePath) /*-{ this.package_path = packagePath; }-*/; public native final String getPackageInstallArgs() /*-{ return this.package_install_args; }-*/; public native final void setPackageInstallArgs(String installArgs) /*-{ this.package_install_args = installArgs; }-*/; public native final String getPackageBuildArgs() /*-{ return this.package_build_args; }-*/; public native final void setPackageBuildArgs(String buildArgs) /*-{ this.package_build_args = buildArgs; }-*/; public native final String getPackageBuildBinaryArgs() /*-{ return this.package_build_binary_args; }-*/; public native final void setPackageBuildBinaryArgs(String buildArgs) /*-{ this.package_build_binary_args = buildArgs; }-*/; public native final String getPackageCheckArgs() /*-{ return this.package_check_args; }-*/; public native final void setPackageCheckArgs(String checkArgs) /*-{ this.package_check_args = checkArgs; }-*/; public final boolean hasPackageRoxygenize() { return !StringUtil.isNullOrEmpty(getPackageRoxygenizeNative()); } public final boolean getPackageRoxygenzieRd() { return getPackageRoxygenize(ROXYGENIZE_RD); } public final boolean getPackageRoxygenizeNamespace() { return getPackageRoxygenize(ROXYGENIZE_NAMESPACE); } public final boolean getPackageRoxygenizeCollate() { return getPackageRoxygenize(ROXYGENIZE_COLLATE); } public final boolean getPackageRoxygenizeVignette() { return getPackageRoxygenize(ROXYGENIZE_VIGNETTE); } public final void setPackageRoxygenize(boolean rd, boolean collate, boolean namespace, boolean vignette) { ArrayList<String> roclets = new ArrayList<String>(); if (rd) roclets.add(ROXYGENIZE_RD); if (collate) roclets.add(ROXYGENIZE_COLLATE); if (namespace) roclets.add(ROXYGENIZE_NAMESPACE); if (vignette) roclets.add(ROXYGENIZE_VIGNETTE); String roxygenize = StringUtil.join(roclets, ROXYGENIZE_DELIM); setPackageRoxygenizeNative(roxygenize); } private static final String ROXYGENIZE_RD = "rd"; private static final String ROXYGENIZE_COLLATE = "collate"; private static final String ROXYGENIZE_NAMESPACE = "namespace"; private static final String ROXYGENIZE_VIGNETTE = "vignette"; private static final String ROXYGENIZE_DELIM = ","; private final boolean getPackageRoxygenize(String roclet) { String[] roclets = getPackageRoxygenizeNative().split(ROXYGENIZE_DELIM); for (int i=0; i<roclets.length; i++) if (roclets[i].equals(roclet)) return true; return false; } private native final String getPackageRoxygenizeNative() /*-{ return this.package_roxygenize; }-*/; private native final void setPackageRoxygenizeNative(String roxygenize) /*-{ this.package_roxygenize = roxygenize; }-*/; public native final String getMakefilePath() /*-{ return this.makefile_path; }-*/; public native final void setMakefilePath(String makefilePath) /*-{ this.makefile_path = makefilePath; }-*/; public native final String getWebsitePath() /*-{ return this.website_path; }-*/; public native final void setWebsitePath(String websitePath) /*-{ this.website_path = websitePath; }-*/; public native final String getCustomScriptPath() /*-{ return this.custom_script_path; }-*/; public native final void setCustomScriptPath(String customScriptPath) /*-{ this.custom_script_path = customScriptPath; }-*/; public native final String getTutorialPath() /*-{ return this.tutorial_path; }-*/; public native final void setTutorialPath(String tutorialPath) /*-{ this.tutorial_path = tutorialPath; }-*/; }