Changeset 2618 in josm for trunk/src/org/openstreetmap/josm/data/Preferences.java
- Timestamp:
- 2009-12-12T16:38:28+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/Preferences.java
r2542 r2618 24 24 import java.util.TreeMap; 25 25 import java.util.Map.Entry; 26 import java.util.concurrent.CopyOnWriteArrayList; 26 27 import java.util.regex.Matcher; 27 28 import java.util.regex.Pattern; … … 50 51 private File preferencesDirFile = null; 51 52 53 public static interface PreferenceChangeEvent{ 54 public String getKey(); 55 public String getOldValue(); 56 public String getNewValue(); 57 } 58 52 59 public static interface PreferenceChangedListener { 53 void preferenceChanged(String key, String newValue); 60 void preferenceChanged(PreferenceChangeEvent e); 61 } 62 63 private static class DefaultPreferenceChangeEvent implements PreferenceChangeEvent { 64 private String key; 65 private String oldValue; 66 private String newValue; 67 68 public DefaultPreferenceChangeEvent(String key, String oldValue, String newValue) { 69 this.key = key; 70 this.oldValue = oldValue; 71 this.newValue = newValue; 72 } 73 74 public String getKey() { 75 return key; 76 } 77 public void setKey(String key) { 78 this.key = key; 79 } 80 public String getOldValue() { 81 return oldValue; 82 } 83 public void setOldValue(String oldValue) { 84 this.oldValue = oldValue; 85 } 86 public String getNewValue() { 87 return newValue; 88 } 89 public void setNewValue(String newValue) { 90 this.newValue = newValue; 91 } 54 92 } 55 93 … … 96 134 } 97 135 98 public final ArrayList<PreferenceChangedListener> listener = new ArrayList<PreferenceChangedListener>(); 136 private final CopyOnWriteArrayList<PreferenceChangedListener> listeners = new CopyOnWriteArrayList<PreferenceChangedListener>(); 137 138 139 public void addPreferenceChangeListener(PreferenceChangedListener listener) { 140 if (listener != null && ! listeners.contains(listener)) { 141 listeners.add(listener); 142 } 143 } 144 145 public void removePreferenceChangeListener(PreferenceChangedListener listener) { 146 if (listener != null && listeners.contains(listener)) { 147 listeners.remove(listener); 148 } 149 } 150 151 protected void firePrefrenceChanged(String key, String oldValue, String newValue) { 152 PreferenceChangeEvent evt = new DefaultPreferenceChangeEvent(key, oldValue, newValue); 153 for (PreferenceChangedListener l : listeners) { 154 l.preferenceChanged(evt); 155 } 156 } 99 157 100 158 /** … … 289 347 System.out.println(tr("Warning: failed to persist preferences to ''{0}''", getPreferenceFile().getAbsoluteFile())); 290 348 } 291 firePref erenceChanged(key, value);349 firePrefrenceChanged(key, oldvalue, value); 292 350 return true; 293 351 } … … 311 369 } 312 370 313 private final void firePreferenceChanged(final String key, final String value) {314 for (final PreferenceChangedListener l : listener) {315 l.preferenceChanged(key, value);316 }317 }318 371 319 372 /** … … 618 671 synchronized public String getCollectionAsString(final String key) { 619 672 String s = get(key); 620 if(s != null && s.length() != 0) 673 if(s != null && s.length() != 0) { 621 674 s = s.replaceAll("\u001e",","); 675 } 622 676 return s; 623 677 }
Note:
See TracChangeset
for help on using the changeset viewer.
