/** * Injects listeners into the underlying ADTs that translate their events into * primitive-supplement events. * * @param wid * @param listener */ private void installListeners(final WaveletId wid, final Listener listener) { threadStates.addListener(new ObservableBasicMap.Listener<String, ThreadState>() { @Override public void onEntrySet(String key, ThreadState oldValue, ThreadState newValue) { listener.onThreadStateChanged(wid, key, oldValue, newValue); } }); }
/** * Injects listeners into the underlying ADTs that translate their events * into primitive-supplement events. * * @param gadgetId ID of the gadget. * @param listener Listener to notify. */ private void installListeners(final String gadgetId, final Listener listener) { state.addListener(new ObservableBasicMap.Listener<String, String>() { @Override public void onEntrySet(String key, String oldValue, String newValue) { listener.onGadgetStateChanged(gadgetId, key, oldValue, newValue); } }); }
/** Tests listeners get events. */ public void testEvents() { Listener listener1 = new Listener(); Listener listener2 = new Listener(); map.addListener(listener1); // New values map.put("A", 100); listener1.check(1, "A", null, 100); map.put("B", 200); listener1.check(2, "B", null, 200); map.put("A", 300); listener1.check(3, "A", 100, 300); // No change map.put("B", 200); listener1.check(3); // Add a second listener - both should get same event map.addListener(listener2); listener2.check(0); map.put("B", 400); listener1.check(4, "B", 200, 400); listener2.check(1, "B", 200, 400); // Remove one listener map.removeListener(listener1); map.put("A", 500); listener1.check(4); // no more events here listener2.check(2, "A", 300, 500); // but one here }
/** Tests listeners get events. */ public void testEvents() { Listener listener1 = new Listener(); Listener listener2 = new Listener(); map.addListener(listener1); // New values map.put("A", 100); listener1.check(1, "A", null, 100); map.put("B", 200); listener1.check(2, "B", null, 200); map.put("A", 300); listener1.check(3, "A", 100, 300); // No change map.put("B", 200); listener1.check(3); // Add a second listener - both should get same event map.addListener(listener2); listener2.check(0); map.put("B", 400); listener1.check(4, "B", 200, 400); listener2.check(1, "B", 200, 400); // Remove one listener map.removeListener(listener1); map.put("A", 500); listener1.check(4); // no more events here listener2.check(2, "A", 300, 500); // but one here }