From 09e649c72e7f9304771d0f658a1fb976ab92cba1 Mon Sep 17 00:00:00 2001 From: Arho Virkki Date: Wed, 4 Jun 2014 15:40:37 +0300 Subject: [PATCH] Added support for SVG graphics --- jar/RVaadin.jar | Bin 70423 -> 63448 bytes src/fi/vtt/RVaadin/RContainer.java | 136 ++++++++++++++++++++++++++++- 2 files changed, 135 insertions(+), 1 deletion(-) diff --git a/jar/RVaadin.jar b/jar/RVaadin.jar index 03a8fbc0af6ad006d7836434ddfeb9938d26470f..f3aa8599d8267d03ab040855f32faf3d9a7f6151 100644 GIT binary patch delta 34241 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 diff --git a/src/fi/vtt/RVaadin/RContainer.java b/src/fi/vtt/RVaadin/RContainer.java index 65a7b5a..ba4b560 100644 --- a/src/fi/vtt/RVaadin/RContainer.java +++ b/src/fi/vtt/RVaadin/RContainer.java @@ -33,6 +33,7 @@ import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.data.Property.ValueChangeListener; +import com.vaadin.data.util.filter.Not; import com.vaadin.server.Resource; import com.vaadin.server.StreamResource; import com.vaadin.server.StreamResource.StreamSource; @@ -1038,6 +1039,8 @@ public Window getGraph(final String RPlotCall, final int width, Button.ClickListener openClicked = new Button.ClickListener() { + private static final long serialVersionUID = 1L; + @Override public void buttonClick(ClickEvent event) { StreamResource s = getImageResource(RPlotCall, width @@ -1088,6 +1091,138 @@ public Window getGraph(String RPlotCall, int width, int height) { return getGraph(RPlotCall, width, height, "Image", "R Graphics Window"); } + /** + *

+ * Evaluate a graph command in R and return the corresponding Scalable + * Vector Graphics (svg) image via 'gridSVG' package. + *

+ * + *

The gridSVG package enables using 'garnish' and other modern SVG options. + * The image must be drawn by using the grid graphics engine. For + * traditional graphics, use + * {@link RContainer#getSvgString(String, int, int, Integer)}.

+ * + * @param RPlotCall + * the String to be evaluated by R + * @param width + * the width of the image in inches (as reported by R) + * @param height + * the height of the image in inches (as reported by R) + * @param res + * Resolution parameter for R. If null, defaults to 72 dpi + * @return The svg image as String + */ + public String getGridSvgString(String RPlotCall, int width, int height, + Integer res) { + + String svgString = null; + + if (res == null) { + /* Default resolution in R */ + res = 72; + } + + /* The argument name=NULL calls gridSVG to construct the image in memory */ + String openGridCall = "gridsvg( name=NULL, res=" + res + ", width=" + + width + " ,height=" + height + " );"; + + /* Here we need functions from the XML package */ + String getSvgCall = "saveXML(dev.off()$svg)"; + + try { + rSemaphore.acquire(); + + int supportInstalled = rc.parseAndEval( + "as.integer( require('grid') & " + + "require('gridSVG') & require('XML') )") + .asInteger(); + + if (supportInstalled != 1) { + Notification.show("RVaadin: Either 'gridSVG', 'XML' or 'grid' " + + "packages cannot be loaded.", + Notification.Type.TRAY_NOTIFICATION); + throw new Exception("Missing R packages."); + } + + rc.parseAndEval(openGridCall); + rc.parseAndEval(RPlotCall); + svgString = rc.parseAndEval(getSvgCall).asString(); + + } catch (Exception e) { + if (verboseErrors) { + Notification.show("RVaadin: " + + "Is the graphics based on grid?", + Notification.Type.TRAY_NOTIFICATION); + showGeneralRError(); + } + e.printStackTrace(); + + } finally { + rSemaphore.release(); + } + + return svgString; + } + + /** + *

Evaluate a graph command in R and return the corresponding Scalable + * Vector Graphics (svg) image via Cairo.

+ * + *

The image is exported via the 'svg' function, which is sometimes faster + * than 'gridSVG' and works also with traditional graphics. In turn, modern + * svg functionality does not work (and some images that use vectorized grid + * commands might not work). To use 'gridSVG', call + * {@link RContainer#getGridSvgString(String, int, int, Integer)}. + * + * @param RPlotCall + * the String to be evaluated by R + * @param width + * the width of the image in inches (as reported by R) + * @param height + * the height of the image in inches (as reported by R) + * @param res + * Resolution parameter for R. If null, defaults to 72 dpi + * @return The svg image as String + */ + public String getSvgString(String RPlotCall, int width, int height, + Integer pointsize) { + + String svgString = null; + + if (pointsize == null) { + /* Default resolution in R */ + pointsize = 12; + } + + try { + rSemaphore.acquire(); + + rc.parseAndEval("svg( filename='tmp.svg', width=" + width + + ",height=" + height + ", pointsize=" + pointsize + " )"); + + /* Plot the image and write it temporarily to disk */ + rc.parseAndEval(RPlotCall); + rc.parseAndEval("dev.off()"); + + svgString = rc.parseAndEval( + "readChar('tmp.svg', " + "file.info('tmp.svg')$size)") + .asString(); + + rc.parseAndEval("unlink('tmp.svg')"); + + } catch (Exception e) { + if (verboseErrors) { + showGeneralRError(); + } + e.printStackTrace(); + + } finally { + rSemaphore.release(); + } + + return svgString; + } + /** * * @param rs @@ -1103,7 +1238,6 @@ public RTable getRTable(String rs) { return new RTable(df, colNames); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); return null; }