Changeset 14977 in josm for trunk/src/org/openstreetmap/josm/data/Preferences.java
- Timestamp:
- 2019-04-09T01:32:56+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/Preferences.java
r14153 r14977 16 16 import java.nio.file.InvalidPathException; 17 17 import java.util.ArrayList; 18 import java.util.Arrays; 18 19 import java.util.Collection; 19 20 import java.util.Collections; … … 44 45 import org.openstreetmap.josm.spi.preferences.AbstractPreferences; 45 46 import org.openstreetmap.josm.spi.preferences.Config; 47 import org.openstreetmap.josm.spi.preferences.DefaultPreferenceChangeEvent; 46 48 import org.openstreetmap.josm.spi.preferences.IBaseDirectories; 47 49 import org.openstreetmap.josm.spi.preferences.ListSetting; 50 import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent; 48 51 import org.openstreetmap.josm.spi.preferences.Setting; 49 52 import org.openstreetmap.josm.tools.CheckParameterUtil; … … 51 54 import org.openstreetmap.josm.tools.Logging; 52 55 import org.openstreetmap.josm.tools.PlatformManager; 56 import org.openstreetmap.josm.tools.ReflectionUtils; 53 57 import org.openstreetmap.josm.tools.Utils; 54 58 import org.xml.sax.SAXException; … … 120 124 121 125 /** 126 * Preferences classes calling directly the method {@link #putSetting(String, Setting)}. 127 * This collection allows us to exclude them when searching the business class who set a preference. 128 * The found class is used as event source when notifying event listeners. 129 */ 130 private static final Collection<Class<?>> preferencesClasses = Arrays.asList( 131 Preferences.class, PreferencesUtils.class, AbstractPreferences.class); 132 133 /** 122 134 * Constructs a new {@code Preferences}. 123 135 */ … … 216 228 217 229 protected void firePreferenceChanged(String key, Setting<?> oldValue, Setting<?> newValue) { 218 final org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent evt =219 new org.openstreetmap.josm.spi.preferences.DefaultPreferenceChangeEvent(key, oldValue, newValue);230 final PreferenceChangeEvent evt = 231 new DefaultPreferenceChangeEvent(ReflectionUtils.findCallerClass(preferencesClasses), key, oldValue, newValue); 220 232 listeners.fireEvent(listener -> listener.preferenceChanged(evt)); 221 233
Note:
See TracChangeset
for help on using the changeset viewer.