class DynamicNbNodesUI implements StatisticsUI {

    private final StatSettings settings = new StatSettings();
    private DynamicNbNodes nbNodes;
    private DynamicNbNodesPanel panel;

    @Override
    public JPanel getSettingsPanel() {
        panel = new DynamicNbNodesPanel();
        return panel;
    }

    @Override
    public void setup(Statistics statistics) {
        this.nbNodes = (DynamicNbNodes) statistics;
        if (panel != null) {
            settings.load(nbNodes);
        }
    }

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

    @Override
    public Class<? extends Statistics> getStatisticsClass() {
        return DynamicNbNodes.class;
    }

    @Override
    public String getValue() {
        return "";
    }

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

    @Override
    public String getCategory() {
        return StatisticsUI.CATEGORY_DYNAMIC;
    }

    @Override
    public int getPosition() {
        return 100;
    }

    @Override
    public String getShortDescription() {
        return NbBundle.getMessage(getClass(), "DynamicNbNodesUI.shortDescription");
    }

    private static class StatSettings {

        private double window = 0.0;
        private double tick = 0.0;

        private void save(DynamicNbNodes stat) {
            this.window = stat.getWindow();
            this.tick = stat.getTick();
        }

        private void load(DynamicNbNodes stat) {
            stat.setWindow(window);
            stat.setTick(tick);
        }
    }
}

        if (panel != null) {
            settings.save(nbNodes);
        }
        nbNodes = null;
    
<no_super_class>