class UIExporterGDF implements ExporterUI {

    private final ExporterGDFSettings settings = new ExporterGDFSettings();
    private UIExporterGDFPanel panel;
    private ExporterGDF exporterGDF;

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

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

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

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

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

    private static class ExporterGDFSettings extends AbstractExporterSettings {

        // Preference names
        private final static String NORMALIZE = "GDF_normalize";
        private final static String SIMPLE_QUOTES = "GDF_simpleQuotes";
        private final static String USE_QUOTES = "GDF_useQuotes";
        private final static String EXPORT_COLORS = "GDF_exportColors";
        private final static String EXPORT_POSITION = "GDF_exportPosition";
        private final static String EXPORT_ATTRIBUTES = "GDF_exportAttributes";
        private final static String EXPORT_VISIBILITY = "GDF_exportVisibility";
        // Default
        private final static ExporterGDF DEFAULT = new ExporterGDF();

        private void save(ExporterGDF exporterGDF) {
            put(NORMALIZE, exporterGDF.isNormalize());
            put(SIMPLE_QUOTES, exporterGDF.isSimpleQuotes());
            put(USE_QUOTES, exporterGDF.isUseQuotes());
            put(EXPORT_COLORS, exporterGDF.isExportColors());
            put(EXPORT_POSITION, exporterGDF.isExportPosition());
            put(EXPORT_ATTRIBUTES, exporterGDF.isExportAttributes());
            put(EXPORT_VISIBILITY, exporterGDF.isExportVisibility());
        }

        private void load(ExporterGDF exporterGDF) {
            exporterGDF.setNormalize(get(NORMALIZE, DEFAULT.isNormalize()));
            exporterGDF.setSimpleQuotes(get(SIMPLE_QUOTES, DEFAULT.isSimpleQuotes()));
            exporterGDF.setUseQuotes(get(USE_QUOTES, DEFAULT.isUseQuotes()));
            exporterGDF.setExportColors(get(EXPORT_COLORS, DEFAULT.isExportColors()));
            exporterGDF.setExportAttributes(get(EXPORT_ATTRIBUTES, DEFAULT.isExportAttributes()));
            exporterGDF.setExportPosition(get(EXPORT_POSITION, DEFAULT.isExportPosition()));
            exporterGDF.setExportVisibility(get(EXPORT_VISIBILITY, DEFAULT.isExportVisibility()));
        }
    }
}

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