+ if(listener != null) {
+ synchronized(listeners) {
+ ArrayList<UpdateListener> list = listeners.get(moduleName);
+ if(list == null) {
+ list = new ArrayList<UpdateListener>(2);
+ listeners.put(moduleName, list);
+ }
+ list.add(listener);
+ }
+ listener.addObservable(new Observable() {
+ @Override
+ public void removeListener(UpdateListener listener) {
+ synchronized(listeners) {
+ ArrayList<UpdateListener> list = listeners.get(moduleName);
+ if(list != null) {
+ list.remove(listener);
+ if(list.isEmpty())
+ listeners.remove(moduleName);
+ }
+ }
+ }
+ });
+ }