class UIExporterCSV implements ExporterUI {

    private final ExporterCSVSettings settings = new ExporterCSVSettings();
    private UIExporterCSVPanel panel;
    private ExporterCSV exporterCSV;

    @Override
    public void setup(Exporter exporter) {
        exporterCSV = (ExporterCSV) exporter;
        settings.load(exporterCSV);
        if (panel != null) {
            panel.setup(exporterCSV);
        }
    }

    @Override
    public void unsetup(boolean update) {<FILL_FUNCTION_BODY>}

    @Override
    public JPanel getPanel() {
        panel = new UIExporterCSVPanel();
        return panel;
    }

    @Override
    public boolean isUIForExporter(Exporter exporter) {
        return exporter instanceof ExporterCSV;
    }

    @Override
    public String getDisplayName() {
        return NbBundle.getMessage(UIExporterCSV.class, "UIExporterCSV.name");
    }

    private static class ExporterCSVSettings extends AbstractExporterSettings {

        // Preference names
        private final static String EDGE_WEIGHT = "CSV_edgeWeight";
        private final static String WRITE_ZERO = "CSV_writeZero";
        private final static String HEADER = "CSV_header";
        private final static String LIST = "CSV_list";
        // Default
        private final static ExporterCSV DEFAULT = new ExporterCSV();

        private void save(ExporterCSV exporterCSV) {
            put(EDGE_WEIGHT, exporterCSV.isEdgeWeight());
            put(WRITE_ZERO, exporterCSV.isWriteZero());
            put(HEADER, exporterCSV.isHeader());
            put(LIST, exporterCSV.isList());
        }

        private void load(ExporterCSV exporterCSV) {
            exporterCSV.setEdgeWeight(get(EDGE_WEIGHT, DEFAULT.isEdgeWeight()));
            exporterCSV.setWriteZero(get(WRITE_ZERO, DEFAULT.isWriteZero()));
            exporterCSV.setHeader(get(HEADER, DEFAULT.isHeader()));
            exporterCSV.setList(get(LIST, DEFAULT.isList()));
        }
    }
}

        if (update) {
            panel.unsetup(exporterCSV);
            settings.save(exporterCSV);
        }
        panel = null;
        exporterCSV = null;
    
<no_super_class>