@Override public boolean unregister(CommUser commUser) { checkArgument(contains(commUser), "CommModel does not contain %s.", commUser); final CommDevice unregDevice = usersDevices.remove(commUser); unregDevice.unregister(); unregisteredUsersDevices.put(commUser, unregDevice); usersHasChanged = true; if (eventDispatcher.hasListenerFor(EventTypes.REMOVE_COMM_USER)) { eventDispatcher.dispatchEvent(new CommModelEvent( EventTypes.REMOVE_COMM_USER, this, unregDevice, commUser)); } return true; }
/** * Test event dispatching. */ @Test public void testEvent() { final ListenerEventHistory history = new ListenerEventHistory(); model.getEventAPI().addListener(history, EventTypes.ADD_COMM_USER); final CommUser agent6 = new RangedAgent(new Point(6, 6), 4); model.register(agent6); assertEquals(1, history.getHistory().size()); assertTrue(history.getHistory().get(0) instanceof CommModelEvent); final CommModelEvent event = (CommModelEvent) history.getHistory().get(0); assertSame(agent6, event.getUser()); assertSame(model, event.getIssuer()); assertSame(agent6, model.getUsersAndDevices().inverse().get(event.getDevice())); }
void addDevice(CommDevice device, CommUser user) { usersDevices.put(user, device); usersHasChanged = true; if (eventDispatcher.hasListenerFor(EventTypes.ADD_COMM_USER)) { eventDispatcher.dispatchEvent(new CommModelEvent( EventTypes.ADD_COMM_USER, this, device, user)); } }
@Override public void handleEvent(Event e) { verify(e instanceof CommModelEvent); final CommModelEvent event = (CommModelEvent) e; if (e.getEventType() == CommModel.EventTypes.ADD_COMM_USER) { addUIObject(event.getUser(), event.getDevice()); } else { removeUIObject(event.getUser()); } } }, CommModel.EventTypes.ADD_COMM_USER,