class UIExporterGEXF implements ExporterUI {

    private final ExporterGEXFSettings settings = new ExporterGEXFSettings();
    private UIExporterGEXFPanel panel;
    private ExporterGEXF exporterGEXF;

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

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

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

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

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

    private static class ExporterGEXFSettings extends AbstractExporterSettings {

        // Preference names
        private final static String NORMALIZE = "GEXF_normalize";
        private final static String EXPORT_COLORS = "GEXF_exportColors";
        private final static String EXPORT_POSITION = "GEXF_exportPosition";
        private final static String EXPORT_ATTRIBUTES = "GEXF_exportAttributes";
        private final static String EXPORT_SIZE = "GEXF_exportSize";
        private final static String EXPORT_DYNAMICS = "GEXF_exportDynamics";
        private final static String EXPORT_META = "GEXF_exportMeta";
        private final static String INCLUDE_NULL_ATT_VALUES = "GEXF_includeNullAttValues";
        // Default
        private final static ExporterGEXF DEFAULT = new ExporterGEXF();

        private void save(ExporterGEXF exporterGEXF) {
            put(NORMALIZE, exporterGEXF.isNormalize());
            put(EXPORT_COLORS, exporterGEXF.isExportColors());
            put(EXPORT_POSITION, exporterGEXF.isExportPosition());
            put(EXPORT_SIZE, exporterGEXF.isExportSize());
            put(EXPORT_ATTRIBUTES, exporterGEXF.isExportAttributes());
            put(EXPORT_DYNAMICS, exporterGEXF.isExportDynamic());
            put(EXPORT_META, exporterGEXF.isExportMeta());
            put(INCLUDE_NULL_ATT_VALUES, exporterGEXF.isIncludeNullAttValues());
        }

        private void load(ExporterGEXF exporterGEXF) {
            exporterGEXF.setNormalize(get(NORMALIZE, DEFAULT.isNormalize()));
            exporterGEXF.setExportColors(get(EXPORT_COLORS, DEFAULT.isExportColors()));
            exporterGEXF.setExportAttributes(get(EXPORT_ATTRIBUTES, DEFAULT.isExportAttributes()));
            exporterGEXF.setExportPosition(get(EXPORT_POSITION, DEFAULT.isExportPosition()));
            exporterGEXF.setExportSize(get(EXPORT_SIZE, DEFAULT.isExportSize()));
            exporterGEXF.setExportDynamic(get(EXPORT_DYNAMICS, DEFAULT.isExportDynamic()));
            exporterGEXF.setExportMeta(get(EXPORT_META, DEFAULT.isExportMeta()));
            exporterGEXF.setIncludeNullAttValues(get(INCLUDE_NULL_ATT_VALUES, DEFAULT.isIncludeNullAttValues()));
        }
    }
}

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