diff -r ed1d52c5aa94 -r 763d3961400b project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/util/ObservableTreeMap.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/util/ObservableTreeMap.java Sat Aug 18 00:47:51 2012 +0200 @@ -0,0 +1,43 @@ +package org.hedgewars.hedgeroid.util; + +import java.util.Collections; +import java.util.Map; +import java.util.TreeMap; + +import android.database.DataSetObservable; + +public class ObservableTreeMap extends DataSetObservable { + private final Map map = new TreeMap(); + + public void replaceContent(Map newMap) { + map.clear(); + map.putAll(newMap); + notifyChanged(); + } + + public void put(K key, V value) { + map.put(key, value); + notifyChanged(); + } + + public V get(K key) { + return map.get(key); + } + + public void remove(K key) { + if(map.remove(key) != null) { + notifyChanged(); + } + } + + public void clear() { + if(!map.isEmpty()) { + map.clear(); + notifyChanged(); + } + } + + public Map getMap() { + return Collections.unmodifiableMap(map); + } +}