Example usage for javafx.stage FileChooser showSaveDialog

List of usage examples for javafx.stage FileChooser showSaveDialog

Introduction

In this page you can find the example usage for javafx.stage FileChooser showSaveDialog.

Prototype

public File showSaveDialog(final Window ownerWindow) 

Source Link

Document

Shows a new file save dialog.

Usage

From source file:com.chart.SwingChart.java

/**
 * /*from w  w w.  j a v  a2 s .  com*/
 * @param name Chart name
 * @param parent Skeleton parent
 * @param axes Configuration of axes
 * @param abcissaName Abcissa name
 */
public SwingChart(String name, final Skeleton parent, List<AxisChart> axes, String abcissaName) {
    this.skeleton = parent;
    this.axes = axes;
    this.name = name;

    this.abcissaFormat = NumberFormat.getInstance(Locale.getDefault());
    this.ordinateFormat = NumberFormat.getInstance(Locale.getDefault());

    plot = new XYPlot();
    plot.setBackgroundPaint(scene2awtColor(javafx.scene.paint.Color.web(strChartBackgroundColor)));
    plot.setDomainGridlinePaint(scene2awtColor(javafx.scene.paint.Color.web(strGridlineColor)));
    plot.setRangeGridlinePaint(scene2awtColor(javafx.scene.paint.Color.web(strGridlineColor)));
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));

    abcissaAxis = new NumberAxis(abcissaName);
    ((NumberAxis) abcissaAxis).setAutoRangeIncludesZero(false);
    abcissaAxis.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12));
    abcissaAxis.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
    abcissaAxis.setLabelPaint(scene2awtColor(javafx.scene.paint.Color.web(strTickColor)));
    abcissaAxis.setTickLabelPaint(scene2awtColor(javafx.scene.paint.Color.web(strTickColor)));
    abcissaAxis.setAutoRange(true);
    abcissaAxis.setLowerMargin(0.0);
    abcissaAxis.setUpperMargin(0.0);
    abcissaAxis.setTickLabelsVisible(true);
    abcissaAxis.setLabelFont(abcissaAxis.getLabelFont().deriveFont(fontSize));
    abcissaAxis.setTickLabelFont(abcissaAxis.getLabelFont().deriveFont(fontSize));

    plot.setDomainAxis(abcissaAxis);

    for (int i = 0; i < axes.size(); i++) {
        AxisChart categoria = axes.get(i);
        addAxis(categoria.getName());

        for (int j = 0; j < categoria.configSerieList.size(); j++) {
            SimpleSeriesConfiguration cs = categoria.configSerieList.get(j);
            addSeries(categoria.getName(), cs);
        }
    }
    chart = new JFreeChart("", new Font("SansSerif", Font.BOLD, 16), plot, false);

    chart.setBackgroundPaint(scene2awtColor(javafx.scene.paint.Color.web(strBackgroundColor)));

    chartPanel = new ChartPanel(chart);
    chartPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4),
            BorderFactory.createLineBorder(scene2awtColor(javafx.scene.paint.Color.web(strBackgroundColor)))));

    chartPanel.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "escape");
    chartPanel.getActionMap().put("escape", new AbstractAction() {

        @Override
        public void actionPerformed(java.awt.event.ActionEvent e) {
            for (int i = 0; i < plot.getDatasetCount(); i++) {
                XYDataset test = plot.getDataset(i);
                XYItemRenderer r = plot.getRenderer(i);
                r.removeAnnotations();
            }
        }
    });

    chartPanel.addChartMouseListener(cml = new ChartMouseListener() {
        @Override
        public void chartMouseClicked(ChartMouseEvent event) {
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
            try {
                XYItemEntity xyitem = (XYItemEntity) event.getEntity(); // get clicked entity
                XYDataset dataset = (XYDataset) xyitem.getDataset(); // get data set    
                double x = dataset.getXValue(xyitem.getSeriesIndex(), xyitem.getItem());
                double y = dataset.getYValue(xyitem.getSeriesIndex(), xyitem.getItem());

                final XYPlot plot = chart.getXYPlot();
                for (int i = 0; i < plot.getDatasetCount(); i++) {
                    XYDataset test = plot.getDataset(i);
                    XYItemRenderer r = plot.getRenderer(i);
                    r.removeAnnotations();
                    if (test == dataset) {
                        NumberAxis ejeOrdenada = AxesList.get(i);
                        double y_max = ejeOrdenada.getUpperBound();
                        double y_min = ejeOrdenada.getLowerBound();
                        double x_max = abcissaAxis.getUpperBound();
                        double x_min = abcissaAxis.getLowerBound();
                        double angulo;
                        if (y > (y_max + y_min) / 2 && x > (x_max + x_min) / 2) {
                            angulo = 3.0 * Math.PI / 4.0;
                        } else if (y > (y_max + y_min) / 2 && x < (x_max + x_min) / 2) {
                            angulo = 1.0 * Math.PI / 4.0;
                        } else if (y < (y_max + y_min) / 2 && x < (x_max + x_min) / 2) {
                            angulo = 7.0 * Math.PI / 4.0;
                        } else {
                            angulo = 5.0 * Math.PI / 4.0;
                        }

                        CircleDrawer cd = new CircleDrawer((Color) r.getSeriesPaint(xyitem.getSeriesIndex()),
                                new BasicStroke(2.0f), null);
                        //XYAnnotation bestBid = new XYDrawableAnnotation(dataset.getXValue(xyitem.getSeriesIndex(), xyitem.getItem()), dataset.getYValue(xyitem.getSeriesIndex(), xyitem.getItem()), 11, 11, cd);
                        String txt = "X:" + abcissaFormat.format(x) + ", Y:" + ordinateFormat.format(y);
                        XYPointerAnnotation anotacion = new XYPointerAnnotation(txt,
                                dataset.getXValue(xyitem.getSeriesIndex(), xyitem.getItem()),
                                dataset.getYValue(xyitem.getSeriesIndex(), xyitem.getItem()), angulo);
                        anotacion.setTipRadius(10.0);
                        anotacion.setBaseRadius(35.0);
                        anotacion.setFont(new Font("SansSerif", Font.PLAIN, 10));

                        if (Long.parseLong((strChartBackgroundColor.replace("#", "")), 16) > 0xffffff / 2) {
                            anotacion.setPaint(Color.black);
                            anotacion.setArrowPaint(Color.black);
                        } else {
                            anotacion.setPaint(Color.white);
                            anotacion.setArrowPaint(Color.white);
                        }

                        //bestBid.setPaint((Color) r.getSeriesPaint(xyitem.getSeriesIndex()));
                        r.addAnnotation(anotacion);
                    }
                }

                //LabelValorVariable.setSize(LabelValorVariable.getPreferredSize());
            } catch (NullPointerException | ClassCastException ex) {

            }
        }
    });

    chartPanel.setPopupMenu(null);
    chartPanel.setBackground(scene2awtColor(javafx.scene.paint.Color.web(strBackgroundColor)));

    SwingNode sn = new SwingNode();
    sn.setContent(chartPanel);
    chartFrame = new VBox();
    chartFrame.getChildren().addAll(sn, legendFrame);
    VBox.setVgrow(sn, Priority.ALWAYS);
    VBox.setVgrow(legendFrame, Priority.NEVER);

    chartFrame.getStylesheets().addAll(SwingChart.class.getResource("overlay-chart.css").toExternalForm());

    legendFrame.setStyle("marco: " + strBackgroundColor + ";-fx-background-color: marco;");

    MenuItem mi;
    mi = new MenuItem("Print");
    mi.setOnAction((ActionEvent t) -> {
        print(chartFrame);
    });
    contextMenuList.add(mi);

    sn.setOnMouseClicked((MouseEvent t) -> {
        if (menu != null) {
            menu.hide();
        }
        if (t.getClickCount() == 2) {
            backgroundEdition();
        }
    });

    mi = new MenuItem("Copy to clipboard");
    mi.setOnAction((ActionEvent t) -> {
        copyClipboard(chartFrame);
    });
    contextMenuList.add(mi);

    mi = new MenuItem("Export values");
    mi.setOnAction((ActionEvent t) -> {
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("Export to file");
        fileChooser.getExtensionFilters()
                .addAll(new FileChooser.ExtensionFilter("Comma Separated Values", "*.csv"));

        Window w = null;
        try {
            w = parent.getScene().getWindow();
        } catch (NullPointerException e) {

        }
        File file = fileChooser.showSaveDialog(w);
        if (file != null) {
            export(file);
        }
    });
    contextMenuList.add(mi);

    chartFrame.setOnContextMenuRequested((ContextMenuEvent t) -> {
        if (menu != null) {
            menu.hide();
        }
        menu = new ContextMenu();
        menu.getItems().addAll(contextMenuList);
        menu.show(chartFrame, t.getScreenX(), t.getScreenY());
    });

}

From source file:net.sourceforge.entrainer.gui.EntrainerFX.java

private void showSaveLabSettings() {
    FileChooser chooser = getLabFileChooser("Save");

    File labfile = chooser.showSaveDialog(null);
    if (labfile != null)
        saveLab(labfile);//ww w  .j a  va2s  . c  o m
}

From source file:UI.MainStageController.java

/**
 * exports the created table to a .csv file
 * uses a fileChooser to determine where to save the .csv file
 *
 * @param tableValues//from  w  w w  .  j  av  a2  s.c  o m
 * @param isPValue
 */
private void exportTableToCSV(String[][] tableValues, boolean isPValue) {
    //We'll split up the table values into two parts - if we need correlations, we take the 0th one,
    // if we want p values, we take the 1st
    int splitNumber;
    splitNumber = isPValue ? 1 : 0;

    FileChooser chooser = new FileChooser();
    chooser.setInitialDirectory(new File((String) UserSettings.userSettings.get("defaultFileChooserLocation")));
    File outputFile = chooser.showSaveDialog(getPrimaryStage());
    try {
        BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));

        //Write names into first row
        writer.write(",");
        for (int i = 0; i < tableValues.length; i++) {
            writer.write(tableValues[i][0] + ",");
        }
        writer.write("\n");

        for (String[] tableRow : tableValues) {
            for (String s : tableRow) {
                String[] split = s.split("\n");

                //                    System.out.println(s + split.length);
                //                    for (String s1 : split) {
                //                        System.out.println(s1);
                //                    }
                if (split.length > 1)
                    writer.write(split[splitNumber] + ",");
                else
                    writer.write(split[0] + ",");
            }
            writer.write("\n");
        }

        writer.flush();
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:org.beryx.viewreka.fxapp.Viewreka.java

public void exportChart() {
    ViewPane<?> viewPane = getCurrentViewPane();
    if (viewPane == null)
        return;//from w ww . ja  v a  2 s .  co  m

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Export chart");

    List<String> acceptedFormats = Arrays.asList("png", "gif");
    ObservableList<ExtensionFilter> extensionFilters = fileChooser.getExtensionFilters();
    acceptedFormats
            .forEach(ext -> extensionFilters.add(new FileChooser.ExtensionFilter("PNG files", "*." + ext)));
    GuiSettings guiSettings = guiSettingsManager.getSettings();
    String initialDirPath = guiSettings.getProperty(PROP_CHART_EXPORT_DIR,
            guiSettings.getMostRecentProjectDir().getAbsolutePath(), false);
    File initialDir = new File(initialDirPath);

    fileChooser.setInitialDirectory(initialDir);
    File file = fileChooser.showSaveDialog(getScene().getWindow());
    if (file == null)
        return;

    if (file.getParentFile() != null) {
        guiSettings.setProperty(PROP_CHART_EXPORT_DIR, file.getParent());
    }

    String extension = FilenameUtils.getExtension(file.getName()).toLowerCase();
    if (!acceptedFormats.contains(extension)) {
        extension = acceptedFormats.get(0);
    }

    WritableImage chartImage = viewPane.getChartImage();

    try {
        ImageIO.write(SwingFXUtils.fromFXImage(chartImage, null), extension, file);
    } catch (IOException e) {
        Dialogs.error("Chart export failed", "Cannot export the chart image", e);
    }
}

From source file:net.rptools.tokentool.controller.TokenTool_Controller.java

private void saveToken() {
    FileChooser fileChooser = new FileChooser();

    try {/*from w w w . j  a  va2  s  .  co  m*/
        File tokenFile = fileSaveUtil.getFileName(false, useFileNumberingCheckbox.isSelected(),
                fileNameTextField.getText(), fileNameSuffixTextField);
        fileChooser.setInitialFileName(tokenFile.getName());
        if (tokenFile.getParentFile() != null)
            if (tokenFile.getParentFile().isDirectory())
                fileChooser.setInitialDirectory(tokenFile.getParentFile());
    } catch (IOException e1) {
        log.error("Error writing token!", e1);
    }

    fileChooser.getExtensionFilters().addAll(AppConstants.IMAGE_EXTENSION_FILTER);
    fileChooser.setTitle(I18N.getString("TokenTool.save.filechooser.title"));
    fileChooser.setSelectedExtensionFilter(AppConstants.IMAGE_EXTENSION_FILTER);

    File tokenSaved = fileChooser.showSaveDialog(saveOptionsPane.getScene().getWindow());

    if (tokenSaved == null)
        return;

    writeTokenImage(tokenSaved);

    updateFileNameTextField(FilenameUtils.getBaseName(tokenSaved.getName()));
    FileSaveUtil.setLastFile(tokenSaved);
    updateOverlayTreeViewRecentFolder(true);
}

From source file:view.FXApplicationController.java

@FXML
protected void exportHypnogrammAction() {
    FileChooser fileChooser = new FileChooser();

    //Open directory from existing directory 
    File dir = null;//from  w w w .  j a v a2 s .  c  om
    dir = tools.Util.loadDir(new File(
            new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile(),
            "LastDirectory.txt"));

    if (dir != null) {
        fileChooser.setInitialDirectory(dir);
    }

    //Set extension filter
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("TXT files (*.txt)", "*.txt");
    fileChooser.getExtensionFilters().add(extFilter);

    //Show save file dialog
    File file = fileChooser.showSaveDialog(primaryStage);

    Util.saveDir(file, new File(
            new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile(),
            "LastDirectory.txt"));

    if (file != null) {
        featureController.saveFile(file);
    }
}

From source file:view.FXApplicationController.java

@FXML
protected void saveAsAction() {

    FileChooser fileChooser = new FileChooser();

    //Open directory from existing directory 
    File dir = null;/*from w  w w.  j  av  a 2s.c  o m*/
    dir = tools.Util.loadDir(new File(
            new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile(),
            "LastDirectory.txt"));

    if (dir != null) {
        fileChooser.setInitialDirectory(dir);
    }

    //Set extension filter
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("AS files (*.as)", "*.as");
    fileChooser.getExtensionFilters().add(extFilter);

    //Show save file dialog
    File file = fileChooser.showSaveDialog(primaryStage);

    Util.saveDir(file, new File(
            new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile(),
            "LastDirectory.txt"));

    if (file != null) {
        featureModel.setProjectFile(file);
        ModelReaderWriterController modelReaderWriter = new ModelReaderWriterController(featureModel, file,
                true);
        modelReaderWriter.start();
    }

}

From source file:de.bayern.gdi.gui.Controller.java

/**
 * Handle config saving.//w  ww  . j  av  a  2 s .  c  o m
 *
 * @param event The event.
 */
@FXML
protected void handleSaveConfig(ActionEvent event) {
    extractStoredQuery();
    extractBoundingBox();
    extractCql();
    if (validateInput() && validateCqlInput()) {
        FileChooser fileChooser = new FileChooser();
        DirectoryChooser dirChooser = new DirectoryChooser();
        File downloadDir;
        File initDir;

        dirChooser.setTitle(I18n.getMsg("gui.save-dir"));

        if (downloadConfig == null) {
            downloadDir = dirChooser.showDialog(getPrimaryStage());
            String basedir = Config.getInstance().getServices().getBaseDirectory();
            initDir = new File(basedir.isEmpty() ? System.getProperty(USER_DIR) : basedir);
            File uniqueName = Misc.uniqueFile(downloadDir, "config", "xml", null);
            fileChooser.setInitialFileName(uniqueName.getName());
        } else {
            File downloadInitDir = new File(downloadConfig.getDownloadPath());
            if (!downloadInitDir.exists()) {
                downloadInitDir = new File(System.getProperty(USER_DIR));
            }
            dirChooser.setInitialDirectory(downloadInitDir);
            downloadDir = dirChooser.showDialog(getPrimaryStage());

            String path = downloadConfig.getFile().getAbsolutePath();
            path = path.substring(0, path.lastIndexOf(File.separator));
            initDir = new File(path);
            fileChooser.setInitialFileName(downloadConfig.getFile().getName());
        }
        fileChooser.setInitialDirectory(initDir);
        FileChooser.ExtensionFilter xmlFilter = new FileChooser.ExtensionFilter("xml files (*.xml)", "*.xml");
        fileChooser.getExtensionFilters().add(xmlFilter);
        fileChooser.setSelectedExtensionFilter(xmlFilter);
        fileChooser.setTitle(I18n.getMsg("gui.save-conf"));
        File configFile = fileChooser.showSaveDialog(getPrimaryStage());
        if (configFile == null) {
            return;
        }

        if (!configFile.toString().endsWith(".xml")) {
            configFile = new File(configFile.toString() + ".xml");
        }

        this.dataBean.setProcessingSteps(extractProcessingSteps());

        String savePath = downloadDir.getPath();
        DownloadStep ds = dataBean.convertToDownloadStep(savePath);
        try {
            ds.write(configFile);
        } catch (IOException ex) {
            log.warn(ex.getMessage(), ex);
        }
    }
}

From source file:snpviewer.SnpViewer.java

public void drawPaneToPng() {
    if (chromosomeSelector.getSelectionModel().isEmpty()) {
        return;/*from ww w  . ja  va2 s  .c om*/
    }
    FileChooser fileChooser = new FileChooser();
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PNG Image Files (*.png)", "*.png");
    fileChooser.getExtensionFilters().add(extFilter);
    fileChooser.setTitle("Save View as Image (.png) File...");
    File pngFile = fileChooser.showSaveDialog(mainWindow);
    if (pngFile == null) {
        return;
    } else if (!pngFile.getName().endsWith(".png")) {
        pngFile = new File(pngFile.getAbsolutePath() + ".png");
    }
    WritableImage image = chromSplitPane.snapshot(null, null);
    if (image == null) {
        Dialogs.showErrorDialog(null, "Error attempting to convert" + " dynamic view to image file",
                "PNG conversion failed", "SNP Viewer");
        return;
    }
    try {
        ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", pngFile);
        Dialogs.showInformationDialog(null, "Sucessfully saved current view " + "to " + pngFile.getName(),
                "Image Saved", "SNP Viewer");
    } catch (IOException ex) {
        Dialogs.showErrorDialog(null, "Error attempting to convert" + " dynamic view to image file",
                "PNG conversion failed", "SNP Viewer", ex);
    }
}

From source file:snpviewer.SnpViewer.java

public void saveColours(ActionEvent e) {
    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Save Colour Scheme (.svcols) As...");
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("SNP Viewer Colour Scheme",
            "*.svcols");
    fileChooser.getExtensionFilters().add(extFilter);
    File colorFile = fileChooser.showSaveDialog(mainWindow);
    if (colorFile != null) {
        if (!colorFile.getName().endsWith(".svcols")) {
            colorFile = new File(colorFile.getAbsolutePath() + ".svcols");
        }/*from   w  w w .  j  a  v a 2  s. c  o m*/

        try {
            FileOutputStream fos = new FileOutputStream(colorFile);
            try (ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(fos))) {
                for (Color c : colorComp) {
                    out.writeObject(c.toString());
                }
                out.close();
                projectLabel.setText("Project: " + projectFile.getName());
            }
        } catch (IOException ex) {
            Dialogs.showErrorDialog(null, "Could not save colour scheme - IO error", "Save Failed",
                    "SNP Viewer", ex);
        }
    }
}