class UIExporterSVG implements ExporterUI {

    private final ExporterSVGSettings settings = new ExporterSVGSettings();
    private UIExporterSVGPanel panel;
    private SVGExporter exporterSVG;

    @Override
    public void setup(Exporter exporter) {<FILL_FUNCTION_BODY>}

    @Override
    public void unsetup(boolean update) {
        if (update) {
            panel.unsetup(exporterSVG);
            settings.save(exporterSVG);
        }
        panel = null;
        exporterSVG = null;
    }

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

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

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

    private static class ExporterSVGSettings extends AbstractExporterSettings {

        // Preference names
        private final static String SCALE_STROKES = "SVG_strokeScale";
        private final static String MARGIN = "SVG_margin";
        // Default
        private final static SVGExporter DEFAULT = new SVGExporter();

        void load(SVGExporter exporter) {
            exporter.setScaleStrokes(get(SCALE_STROKES, DEFAULT.isScaleStrokes()));
            exporter.setMargin(get(MARGIN, DEFAULT.getMargin()));
        }

        void save(SVGExporter exporter) {
            put(SCALE_STROKES, exporter.isScaleStrokes());
            put(MARGIN, exporter.getMargin());
        }
    }
}

        exporterSVG = (SVGExporter) exporter;
        settings.load(exporterSVG);
        if (panel != null) {
            panel.setup(exporterSVG);
        }
    
<no_super_class>