public void actionPerformed()

in src/main/java/org/apache/log4j/chainsaw/FileSaveAction.java [73:124]


    public void actionPerformed(ActionEvent e) {

        if (chooser == null) {
            chooser = new JFileChooser();
        }

        chooser.setAcceptAllFileFilterUsed(true);
        chooser.setDialogTitle("Save displayed events (XML or .zipped XML)...");
        chooser.showSaveDialog(parent);

        File selectedFile = chooser.getSelectedFile();

        if (selectedFile != null) {
            List v = parent.getCurrentLogPanel().getFilteredEvents();

            if (((v != null) && (v.size() == 0)) || (v == null)) {
                //no events to save
                return;
            }

//            XMLLayout layout = new XMLLayout();
//            layout.setProperties(true);
            boolean saveAsZip = selectedFile.getName().toLowerCase(Locale.ENGLISH).endsWith(".zip");
            Writer writer = null;
            try {
                if (saveAsZip) {
                    ZipOutputStream zipOutput = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(selectedFile)));
                    ZipEntry entry = new ZipEntry(selectedFile.getName().substring(0, selectedFile.getName().length() - ".zip".length()) + ".xml");
                    zipOutput.putNextEntry(entry);
                    writer = new OutputStreamWriter(zipOutput);
                } else {
                    writer = new BufferedWriter(new FileWriter(selectedFile));
                }
                for (Object aV : v) {
                    LoggingEventWrapper loggingEventWrapper = (LoggingEventWrapper) aV;
//                    layout.setLocationInfo(loggingEventWrapper.getLoggingEvent().getThrowableInformation() != null);
//                    writer.write(layout.format(loggingEventWrapper.getLoggingEvent()));
                }
            } catch (IOException ioe) {
                logger.warn("Unable to save file", ioe);
            } finally {
                if (writer != null) {
                    try {
                        writer.flush();
                        writer.close();
                    } catch (IOException e1) {
                        //ignore
                    }
                }
            }
        }
    }