package sk.stuba.fiit.perconik.core.ui.preferences; import java.util.Map; import org.eclipse.swt.widgets.Shell; import sk.stuba.fiit.perconik.core.persistence.data.ResourcePersistenceData; import sk.stuba.fiit.perconik.core.preferences.ResourcePreferences; import sk.stuba.fiit.perconik.utilities.configuration.Options; public final class ResourceOptionsDialog extends AbstractOptionsDialog<ResourcePreferences, ResourcePersistenceData> { public ResourceOptionsDialog(final Shell parent) { super(parent); } @Override String name() { return "resource"; } @Override ResourcePreferences defaultPreferences() { return ResourcePreferences.getDefault(); } @Override Options options(final ResourcePreferences preferences, final ResourcePersistenceData registration) { return preferences.getResourceConfigurationData().get(registration.getResourceName()); } @Override void apply() { ResourcePreferences preferences = this.getPreferences(); ResourcePersistenceData registration = this.getRegistration(); Map<String, Options> data = preferences.getResourceConfigurationData(); String name = registration.getResourceName(); Options options = writeToOptions(this.options(preferences, registration), this.customOptions()); preferences.setResourceConfigurationData(updateData(data, name, options)); } @Override void load(final ResourcePreferences preferences, final ResourcePersistenceData registration) { this.setResourcePreferences(preferences); this.setResourceRegistration(registration); } public void setResourcePreferences(final ResourcePreferences preferences) { this.setPreferences(preferences); } public void setResourceRegistration(final ResourcePersistenceData registration) { this.setRegistration(registration); this.updateStatusBy(registration.getResource()); this.map = readFromOptions(this.options(this.defaultPreferences(), registration), this.options(this.getPreferences(), registration)); } public ResourcePreferences getResourcePreferences() { return this.getPreferences(); } public ResourcePersistenceData getResourceRegistration() { return this.getRegistration(); } }