package org.tessell.util; import org.tessell.place.events.PlaceChangedEvent; import org.tessell.place.events.PlaceChangedHandler; import com.google.gwt.user.client.ui.HasText; import com.google.web.bindery.event.shared.EventBus; import com.google.web.bindery.event.shared.HandlerRegistration; /** Updates a {@code HasText} with the name of the place we're on, for testing. */ public class PlaceWatcher { private final HasText placeNameText; public PlaceWatcher(HasText placeNameText) { this.placeNameText = placeNameText; } public HandlerRegistration listenTo(EventBus eventBus) { return eventBus.addHandler(PlaceChangedEvent.getType(), new OnPlaceChanged()); } /** Change place. */ private class OnPlaceChanged implements PlaceChangedHandler { public void onPlaceChanged(PlaceChangedEvent event) { placeNameText.setText(event.getRequest().getName()); } } }