diff -r 45b9f25ff611 -r 2fb781bbdd51 project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ObservableTreeMap.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ObservableTreeMap.java Mon Aug 06 22:39:36 2012 +0200 @@ -0,0 +1,43 @@ +package org.hedgewars.hedgeroid.netplay; + +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); + } +}