Example usage for org.jfree.chart.fx ChartViewer getScene

List of usage examples for org.jfree.chart.fx ChartViewer getScene

Introduction

In this page you can find the example usage for org.jfree.chart.fx ChartViewer getScene.

Prototype

public final Scene getScene() 

Source Link

Usage

From source file:io.github.mzmine.util.jfreechart.JFreeChartUtils.java

public static void showSaveDialog(ChartViewer chartNode, ImgFileType fileType) {
    FileChooser fileChooser = new FileChooser();
    switch (fileType) {

    case JPG:/*from  ww w.  ja  va2s . c o m*/
        fileChooser.setTitle("Export to JPG");
        fileChooser.getExtensionFilters().add(new ExtensionFilter("JPEG", "*.jpg"));
        break;

    case PNG:
        fileChooser.setTitle("Export to PNG");
        fileChooser.getExtensionFilters().add(new ExtensionFilter("Portable Network Graphics (PNG)", "*.png"));
        break;

    case SVG:
        fileChooser.setTitle("Export to SVG");
        fileChooser.getExtensionFilters().add(new ExtensionFilter("Scalable Vector Graphics (SVG)", "*.svg"));
        break;

    case PDF:
        fileChooser.setTitle("Export to PDF");
        fileChooser.getExtensionFilters().add(new ExtensionFilter("Portable Document Format (PDF)", "*.pdf"));
        break;

    case EMF:
        fileChooser.setTitle("Export to EMF");
        fileChooser.getExtensionFilters().add(new ExtensionFilter("EMF image", "*.emf"));
        break;

    case EPS:
        fileChooser.setTitle("Export to EPS");
        fileChooser.getExtensionFilters().add(new ExtensionFilter("EPS Image", "*.eps"));
        break;
    }

    // Remember last directory
    if (lastSaveDirectory != null && lastSaveDirectory.isDirectory())
        fileChooser.setInitialDirectory(lastSaveDirectory);

    // Show the file chooser
    File file = fileChooser.showSaveDialog(chartNode.getScene().getWindow());

    // If nothing was chosen, quit
    if (file == null)
        return;

    // Save the last open directory
    lastSaveDirectory = file.getParentFile();

    // Do the export in a new thread
    final File finalFile = file;
    new Thread(() -> {
        exportToImageFile(chartNode, finalFile, fileType);
    }).start();
}