/* * ExportPlotOptions.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.workbench.exportplot.model; import org.rstudio.core.client.Size; import com.google.gwt.core.client.JavaScriptObject; public class ExportPlotOptions extends JavaScriptObject { protected ExportPlotOptions() { } public static final ExportPlotOptions createDefault() { return create(550, 450, false, "PNG", false, false); } public static final native ExportPlotOptions create(int width, int height, boolean keepRatio, String format, boolean viewAfterSave, boolean copyAsMetafile) /*-{ var options = new Object(); options.width = width ; options.height = height ; options.format = format; options.keepRatio = keepRatio; options.viewAfterSave = viewAfterSave; options.copyAsMetafile = copyAsMetafile; return options ; }-*/; public static final ExportPlotOptions adaptToSize(ExportPlotOptions options, Size size) { return ExportPlotOptions.create(size.width, size.height, options.getKeepRatio(), options.getFormat(), options.getViewAfterSave(), options.getCopyAsMetafile()); } public static native boolean areEqual(ExportPlotOptions a, ExportPlotOptions b) /*-{ if (a === null ^ b === null) return false; if (a === null) return true; return a.format === b.format && a.width === b.width && a.height === b.height && a.keepRatio === b.keepRatio && a.viewAfterSave === b.viewAfterSave && a.copyAsMetafile === b.copyAsMetafile; }-*/; public final native String getFormat() /*-{ return this.format; }-*/; public final native int getWidth() /*-{ return this.width; }-*/; public final native int getHeight() /*-{ return this.height; }-*/; public final native boolean getKeepRatio() /*-{ if (this.keepRatio) return this.keepRatio; else return false; }-*/; public final native boolean getViewAfterSave() /*-{ if (this.viewAfterSave) return this.viewAfterSave; else return false; }-*/; public final native boolean getCopyAsMetafile() /*-{ if (this.copyAsMetafile) return this.copyAsMetafile; else return false; }-*/; }