From 27c813244a3611ab65e05c128f4866974e22a189 Mon Sep 17 00:00:00 2001 From: gmungoc Date: Thu, 19 Jul 2018 11:46:04 +0100 Subject: [PATCH] JAL-3048 inlined 1-line methods, small refactor of ImageMaker.TYPE --- src/jalview/gui/AlignFrame.java | 25 ++++++++++------- src/jalview/gui/AlignmentPanel.java | 31 ++++----------------- src/jalview/util/ImageMaker.java | 51 ++++++++++++++++++++++++----------- 3 files changed, 56 insertions(+), 51 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index f8e5e30..145653a 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -87,6 +87,7 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemes; import jalview.schemes.ResidueColourScheme; import jalview.schemes.TCoffeeColourScheme; +import jalview.util.ImageMaker.TYPE; import jalview.util.MessageManager; import jalview.util.dialogrunner.RunResponse; import jalview.viewmodel.AlignmentViewport; @@ -1399,33 +1400,39 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /** - * DOCUMENT ME! + * Creates a PNG image of the alignment and writes it to the given file. If + * the file is null, the user is prompted to choose a file. * - * @param e - * DOCUMENT ME! + * @param f */ @Override public void createPNG(File f) { - alignPanel.makePNG(f); + alignPanel.makeAlignmentImage(TYPE.PNG, f); } /** - * DOCUMENT ME! + * Creates an EPS image of the alignment and writes it to the given file. If + * the file is null, the user is prompted to choose a file. * - * @param e - * DOCUMENT ME! + * @param f */ @Override public void createEPS(File f) { - alignPanel.makeEPS(f); + alignPanel.makeAlignmentImage(TYPE.EPS, f); } + /** + * Creates an SVG image of the alignment and writes it to the given file. If + * the file is null, the user is prompted to choose a file. + * + * @param f + */ @Override public void createSVG(File f) { - alignPanel.makeSVG(f); + alignPanel.makeAlignmentImage(TYPE.SVG, f); } @Override diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 065d0c3..e1d4800 100644 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -36,6 +36,7 @@ import jalview.math.AlignmentDimension; import jalview.schemes.ResidueProperties; import jalview.structure.StructureSelectionManager; import jalview.util.Comparison; +import jalview.util.ImageMaker; import jalview.util.MessageManager; import jalview.util.Platform; import jalview.viewmodel.ViewportListenerI; @@ -1298,14 +1299,14 @@ public class AlignmentPanel extends GAlignmentPanel implements AlignmentDimension aDimension = getAlignmentDimension(); try { - jalview.util.ImageMaker im; + ImageMaker im; final String imageAction, imageTitle; - if (type == jalview.util.ImageMaker.TYPE.PNG) + if (type == ImageMaker.TYPE.PNG) { imageAction = "Create PNG image from alignment"; imageTitle = null; } - else if (type == jalview.util.ImageMaker.TYPE.EPS) + else if (type == ImageMaker.TYPE.EPS) { imageAction = "Create EPS file from alignment"; imageTitle = alignFrame.getTitle(); @@ -1316,8 +1317,7 @@ public class AlignmentPanel extends GAlignmentPanel implements imageTitle = alignFrame.getTitle(); } - im = new jalview.util.ImageMaker(this, type, imageAction, - aDimension.getWidth(), + im = new ImageMaker(this, type, imageAction, aDimension.getWidth(), aDimension.getHeight() + boarderBottomOffset, file, imageTitle, alignFrame, pSessionId, headless); Graphics graphics = im.getGraphics(); @@ -1398,27 +1398,6 @@ public class AlignmentPanel extends GAlignmentPanel implements } - /** - * DOCUMENT ME! - */ - public void makeEPS(File epsFile) - { - makeAlignmentImage(jalview.util.ImageMaker.TYPE.EPS, epsFile); - } - - /** - * DOCUMENT ME! - */ - public void makePNG(File pngFile) - { - makeAlignmentImage(jalview.util.ImageMaker.TYPE.PNG, pngFile); - } - - public void makeSVG(File svgFile) - { - makeAlignmentImage(jalview.util.ImageMaker.TYPE.SVG, svgFile); - } - public void makePNGImageMap(File imgMapFile, String imageName) { // /////ONLY WORKS WITH NON WRAPPED ALIGNMENTS diff --git a/src/jalview/util/ImageMaker.java b/src/jalview/util/ImageMaker.java index 284b7be..493e210 100755 --- a/src/jalview/util/ImageMaker.java +++ b/src/jalview/util/ImageMaker.java @@ -20,6 +20,7 @@ */ package jalview.util; +import jalview.bin.Cache; import jalview.bin.Jalview; import jalview.gui.IProgressIndicator; import jalview.gui.LineartOptions; @@ -77,22 +78,26 @@ public class ImageMaker public enum TYPE { - EPS("EPS", MessageManager.getString("label.eps_file"), getEPSChooser()), - PNG("PNG", MessageManager.getString("label.png_image"), - getPNGChooser()), - SVG("SVG", "SVG", getSVGChooser()); + EPS("EPS", MessageManager.getString("label.eps_file"), EPS_EXTENSION, + EPS_DESCRIPTION), + PNG("PNG", MessageManager.getString("label.png_image"), PNG_EXTENSION, + PNG_DESCRIPTION), + SVG("SVG", "SVG", SVG_EXTENSION, SVG_DESCRIPTION); - private JalviewFileChooser chooser; + public final String name; - private String name; + public final String label; - private String label; + public final String extension; - TYPE(String name, String label, JalviewFileChooser chooser) + public final String description; + + TYPE(String name, String label, String ext, String desc) { this.name = name; this.label = label; - this.chooser = chooser; + this.extension = ext; + this.description = desc; } public String getName() @@ -102,7 +107,7 @@ public class ImageMaker public JalviewFileChooser getChooser() { - return chooser; + return new JalviewFileChooser(extension, description); } public String getLabel() @@ -112,6 +117,21 @@ public class ImageMaker } + /** + * Constructor builds the image and writes it to file. If the supplied file + * name is null, the user is prompted for the output file. + * + * @param parent + * @param type + * @param title + * @param width + * @param height + * @param file + * @param fileTitle + * @param pIndicator + * @param pSessionId + * @param headless + */ public ImageMaker(Component parent, TYPE type, String title, int width, int height, File file, String fileTitle, IProgressIndicator pIndicator, long pSessionId, boolean headless) @@ -120,10 +140,8 @@ public class ImageMaker this.type = type; this.pSessionId = pSessionId; this.headless = headless; - if (file == null) + if (file == null && !Jalview.isHeadlessMode()) { - // TODO: JAL-3048 export SVG/EPS/PNG- not required for Jalview-JS - setProgressMessage(MessageManager.formatMessage( "status.waiting_for_user_to_select_output_file", type.name)); JalviewFileChooser chooser; @@ -133,9 +151,9 @@ public class ImageMaker chooser.setToolTipText(MessageManager.getString("action.save")); int value = chooser.showSaveDialog(parent); - if (value == jalview.io.JalviewFileChooser.APPROVE_OPTION) + if (value == JalviewFileChooser.APPROVE_OPTION) { - jalview.bin.Cache.setProperty("LAST_DIRECTORY", + Cache.setProperty("LAST_DIRECTORY", chooser.getSelectedFile().getParent()); file = chooser.getSelectedFile(); } @@ -214,7 +232,7 @@ public class ImageMaker { boolean accurateText = true; - String renderStyle = jalview.bin.Cache.getDefault("EPS_RENDERING", + String renderStyle = Cache.getDefault("EPS_RENDERING", "Prompt each time"); // If we need to prompt, and if the GUI is visible then @@ -253,6 +271,7 @@ public class ImageMaker .formatMessage("status.export_complete", type.getName())); } catch (Exception ex) { + System.err.println("Error writing PNG: " + ex.toString()); } } -- 1.7.10.2