From: <ha...@us...> - 2014-03-27 21:34:15
|
Revision: 19530 http://sourceforge.net/p/jmol/code/19530 Author: hansonr Date: 2014-03-27 21:34:12 +0000 (Thu, 27 Mar 2014) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/srcjsv/jspecview/api/JSVAppletInterface.java trunk/Jmol/srcjsv/jspecview/api/JSVExporter.java trunk/Jmol/srcjsv/jspecview/app/JSVApp.java trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java trunk/Jmol/srcjsv/jspecview/appletjs/JSVApplet.java trunk/Jmol/srcjsv/jspecview/application/MainFrame.java trunk/Jmol/srcjsv/jspecview/common/JSViewer.java trunk/Jmol/srcjsv/jspecview/export/AMLExporter.java trunk/Jmol/srcjsv/jspecview/export/CMLExporter.java trunk/Jmol/srcjsv/jspecview/export/Exporter.java trunk/Jmol/srcjsv/jspecview/export/JDXExporter.java trunk/Jmol/srcjsv/jspecview/export/SVGExporter.java Modified: trunk/Jmol/srcjsv/jspecview/api/JSVAppletInterface.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/api/JSVAppletInterface.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/api/JSVAppletInterface.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -154,5 +154,7 @@ public abstract void setVisible(boolean b); public abstract boolean runScriptNow(String script); + + public abstract String print(String fileName); } Modified: trunk/Jmol/srcjsv/jspecview/api/JSVExporter.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/api/JSVExporter.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/api/JSVExporter.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -18,10 +18,11 @@ * @param startIndex not relevant for PDF, JPG, PNG * @param endIndex not relevant for PDF, JPG, PNG * @param pd only for SVG/SVGI + * @param asBase64 TODO * @return message or text * @throws Exception */ String exportTheSpectrum(JSViewer viewer, ExportType type, - OC out, Spectrum spec, int startIndex, int endIndex, PanelData pd) throws Exception; + OC out, Spectrum spec, int startIndex, int endIndex, PanelData pd, boolean asBase64) throws Exception; } Modified: trunk/Jmol/srcjsv/jspecview/app/JSVApp.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/app/JSVApp.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/app/JSVApp.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -841,4 +841,9 @@ loadInline(data); } + @Override + public String print(String fileName) { + return vwr.print(fileName); + } + } Modified: trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -556,4 +556,8 @@ return app; } + @Override + public String print(String fileName) { + return app.print(fileName); + } } Modified: trunk/Jmol/srcjsv/jspecview/appletjs/JSVApplet.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/appletjs/JSVApplet.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/appletjs/JSVApplet.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -431,6 +431,11 @@ return app.runScriptNow(script); } + @Override + public String print(String fileName) { + return app.print(fileName); + } + // private DropTargetListener dtl; // private Component spectrumPanel; // private JFrame offWindowFrame; Modified: trunk/Jmol/srcjsv/jspecview/application/MainFrame.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/application/MainFrame.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/application/MainFrame.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -1102,4 +1102,9 @@ // not implemented for MainFrame } + @Override + public String print(String fileName) { + return vwr.print(fileName); + } + } Modified: trunk/Jmol/srcjsv/jspecview/common/JSViewer.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/common/JSViewer.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/common/JSViewer.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -1786,6 +1786,10 @@ label); } + public String print(String fileName) { + return execWrite("PDF \"" + fileName + "\""); + } + private String execWrite(String value) { if (isJS && value == null) value = "PDF"; @@ -1807,7 +1811,7 @@ try { return ((ExportInterface) JSViewer .getInterface("jspecview.export.Exporter")).exportTheSpectrum(this, - ExportType.getType(type), null, spec, 0, spec.getXYCoords().length - 1, null); + ExportType.getType(type), null, spec, 0, spec.getXYCoords().length - 1, null, false); } catch (Exception e) { Logger.error(e.toString()); return null; @@ -1833,7 +1837,7 @@ * */ { - os = (fileName == null ? null : new FileOutputStream(fileName)); + os = (fileName == null || fileName.equals(";base64,") ? null : new FileOutputStream(fileName)); } return new OC().setParams(this, fileName, !isBinary, os); } Modified: trunk/Jmol/srcjsv/jspecview/export/AMLExporter.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/export/AMLExporter.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/export/AMLExporter.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -41,17 +41,17 @@ /** * Exports the Spectrum that is displayed by JSVPanel to a file given by fileName * If display is zoomed then export the current view - * @param mode TODO - * @param out - * @param spec the spectrum to export - * @param startIndex the starting point of the spectrum - * @param endIndex the end point + * @param out + * @param spec the spectrum to export + * @param startIndex the starting point of the spectrum + * @param endIndex the end point + * @param mode TODO * @return data if fileName is null * @throws IOException */ @Override public String exportTheSpectrum(JSViewer viewer, ExportType mode, OC out, Spectrum spec, - int startIndex, int endIndex, PanelData pd) throws IOException { + int startIndex, int endIndex, PanelData pd, boolean asBase64) throws IOException { if (!setup(viewer, spec, out, startIndex, endIndex)) return null; Modified: trunk/Jmol/srcjsv/jspecview/export/CMLExporter.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/export/CMLExporter.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/export/CMLExporter.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -41,17 +41,17 @@ /** * Exports the Spectrum that is displayed by JSVPanel to a file given by fileName * If display is zoomed then export the current view - * @param mode TODO * @param out * @param spec the spectrum to export * @param startIndex the starting point of the spectrum * @param endIndex the end point + * @param mode TODO * @return data if fileName is null * @throws IOException */ @Override public String exportTheSpectrum(JSViewer viewer, ExportType mode, OC out, Spectrum spec, - int startIndex, int endIndex, PanelData pd) throws IOException { + int startIndex, int endIndex, PanelData pd, boolean asBase64) throws IOException { if (!setup(viewer, spec, out, startIndex, endIndex)) return null; Modified: trunk/Jmol/srcjsv/jspecview/export/Exporter.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/export/Exporter.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/export/Exporter.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -33,7 +33,7 @@ public String write(JSViewer viewer, List<String> tokens, boolean forInkscape) { // MainFrame or applet WRITE command if (tokens == null) - return printPDF(viewer, null); + return printPDF(viewer, null, false); String type = null; String fileName = null; @@ -55,7 +55,7 @@ case PDF: case PNG: case JPG: - return exportTheSpectrum(viewer, eType, null, null, -1, -1, null); + return exportTheSpectrum(viewer, eType, null, null, -1, -1, null, false); default: // select a spectrum viewer.fileHelper.setFileChooser(eType); @@ -80,7 +80,9 @@ } String ext = fileName.substring(fileName.lastIndexOf(".") + 1) .toUpperCase(); - if (ext.equals("JDX")) { + if (ext.equals("BASE64")) { + fileName = ";base64,"; + } else if (ext.equals("JDX")) { if (type == null) type = "XY"; } else if (ExportType.isExportMode(ext)) { @@ -121,7 +123,10 @@ int endIndex = pd.getEndingPointIndex(index); String msg = null; try { - msg = exportTheSpectrum(viewer, eType, out, spec, startIndex, endIndex, pd); + boolean asBase64 = out.isBase64(); + msg = exportTheSpectrum(viewer, eType, out, spec, startIndex, endIndex, pd, asBase64); + if (asBase64) + return msg; if (msg.startsWith("OK")) return "OK - Exported " + eType.name() + ": " + out.getFileName() + msg.substring(2); } catch (Exception ioe) { @@ -133,7 +138,7 @@ @Override public String exportTheSpectrum(JSViewer viewer, ExportType mode, OC out, Spectrum spec, int startIndex, int endIndex, - PanelData pd) throws Exception { + PanelData pd, boolean asBase64) throws Exception { JSVPanel jsvp = viewer.selectedPanel; String type = mode.name(); switch (mode) { @@ -187,7 +192,7 @@ } return jsvp.saveImage(type.toLowerCase(), file); case PDF: - return printPDF(viewer, "PDF"); + return printPDF(viewer, "PDF", asBase64); case SOURCE: if (jsvp == null) return null; @@ -197,16 +202,15 @@ } return ((JSVExporter) JSViewer.getInterface("jspecview.export." + type.toUpperCase() + "Exporter")).exportTheSpectrum(viewer, mode, - out, spec, startIndex, endIndex, null); + out, spec, startIndex, endIndex, null, false); } @SuppressWarnings("resource") - private String printPDF(JSViewer viewer, String pdfFileName) { - if (!viewer.si.isSigned()) + private String printPDF(JSViewer viewer, String pdfFileName, boolean isBase64) { + + boolean isJob = (pdfFileName == null || pdfFileName.length() == 0); + if (!isBase64 && !viewer.si.isSigned()) return "Error: Applet must be signed for the PRINT command."; - boolean isJob = (pdfFileName == null || pdfFileName.length() == 0); - boolean isBase64 = (!isJob && pdfFileName.toLowerCase() - .startsWith("base64")); PanelData pd = viewer.pd(); if (pd == null) return null; Modified: trunk/Jmol/srcjsv/jspecview/export/JDXExporter.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/export/JDXExporter.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/export/JDXExporter.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -68,14 +68,14 @@ * Exports spectrum in one of several formats * @param type * @param out - * @param spectrum the spectrum * @param startIndex * @param endIndex + * @param spectrum the spectrum * @return data if path is null * @throws IOException */ @Override - public String exportTheSpectrum(JSViewer viewer, ExportType type, OC out, Spectrum spectrum, int startIndex, int endIndex, PanelData pd) throws IOException{ + public String exportTheSpectrum(JSViewer viewer, ExportType type, OC out, Spectrum spectrum, int startIndex, int endIndex, PanelData pd, boolean asBase64) throws IOException{ this.out = out; this.type = type; this.spectrum = spectrum; Modified: trunk/Jmol/srcjsv/jspecview/export/SVGExporter.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/export/SVGExporter.java 2014-03-27 21:20:24 UTC (rev 19529) +++ trunk/Jmol/srcjsv/jspecview/export/SVGExporter.java 2014-03-27 21:34:12 UTC (rev 19530) @@ -70,7 +70,6 @@ /** * Export a Graph as SVG to a file given by fileName - * * @param out * the file path * @param spec @@ -79,13 +78,14 @@ * @param endIndex * @param mode * TODO + * * @return data if fileName is null * @throws IOException */ @Override public String exportTheSpectrum(JSViewer viewer, ExportType mode, OC out, Spectrum spec, int startIndex, int endIndex, - PanelData pd) throws IOException { + PanelData pd, boolean asBase64) throws IOException { initForm(viewer, out); GenericColor plotAreaColor, backgroundColor, plotColor, gridColor, titleColor, scaleColor, unitsColor; if (pd == null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |