package pl.net.bluesoft.rnd.processtool.ui.widgets.event; import pl.net.bluesoft.rnd.processtool.ui.widgets.ProcessToolWidget; import java.util.ArrayList; import java.util.List; /** * User: POlszewski * Date: 2012-08-23 * Time: 14:45 */ public class WidgetEventBus { private List<ProcessToolWidget> widgets = new ArrayList<ProcessToolWidget>(); public void subscribe(ProcessToolWidget widget) { if (!widgets.contains(widget)) { widgets.add(widget); } } public void unsubscribe(ProcessToolWidget widget) { widgets.remove(widget); } public void broadcast(WidgetEvent event) { for (ProcessToolWidget widget : new ArrayList<ProcessToolWidget>(widgets)) { widget.handleWidgetEvent(event); } } }