package com.revolsys.swing.preferences; import java.util.LinkedHashSet; import java.util.Set; import com.revolsys.datatype.DataType; import com.revolsys.swing.field.Field; public class SimplePreferencesPanel extends AbstractPreferencesPanel { private static final long serialVersionUID = 1L; private final Set<Preference> preferences = new LinkedHashSet<>(); public SimplePreferencesPanel(final String title) { super(title, null); } public void addPreference(final String applicationName, final String path, final String propertyName, final DataType valueClass, final Object defaultValue) { final Preference preference = new Preference(applicationName, path, propertyName, valueClass, defaultValue); if (!this.preferences.contains(preference)) { this.preferences.add(preference); addField(preference.getField()); } } public Preference addPreference(final String applicationName, final String path, final String propertyName, final DataType valueClass, final Object defaultValue, final Field field) { final Preference preference = new Preference(applicationName, path, propertyName, valueClass, defaultValue, field); if (this.preferences.contains(preference)) { for (final Preference preference2 : this.preferences) { if (preference2.equals(preference)) { return preference2; } } return preference; } else { this.preferences.add(preference); addField(preference.getField()); return preference; } } @Override public void cancelChanges() { for (final Preference preference : this.preferences) { preference.cancelChanges(); } } @Override protected void doSavePreferences() { for (final Preference preference : this.preferences) { preference.saveChanges(); } } }