package org.openrosa.client; import java.util.ArrayList; import java.util.List; import org.openrosa.client.controller.IDataTypeChangeListener; import org.openrosa.client.model.IFormElement; /** * Bus for managing global events. * * @author daniel * */ public class EventBus { private List<IDataTypeChangeListener> dataTypeChangeListeners = new ArrayList<IDataTypeChangeListener>(); public void addDataTypeChangeListener(IDataTypeChangeListener dataTypeChangeListener){ dataTypeChangeListeners.add(dataTypeChangeListener); } public void removeDataTypeChangeListener(IDataTypeChangeListener dataTypeChangeListener){ dataTypeChangeListeners.remove(dataTypeChangeListener); } public void fireDataTypeChangeEvent(IFormElement element, int prevDataType){ for(IDataTypeChangeListener listener : dataTypeChangeListeners) listener.onDataTypeChanged(element, prevDataType); } }