package org.tessell.place.history;
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.SimplerEventBus;
public class StubHistory implements IsHistory, HasValueChangeHandlers<String> {
private final EventBus handlers = new SimplerEventBus();
private String token;
public void setToken(final String token) {
this.token = token;
}
@Override
public HandlerRegistration addValueChangeHandler(final ValueChangeHandler<String> handler) {
return handlers.addHandler(ValueChangeEvent.getType(), handler);
}
@Override
public void fireCurrentHistoryState() {
ValueChangeEvent.fire(this, token);
}
@Override
public String getToken() {
return token;
}
@Override
public void newItem(final String historyToken, final boolean issueEvent) {
token = historyToken;
if (issueEvent) {
ValueChangeEvent.fire(this, token);
}
}
@Override
public void fireEvent(final GwtEvent<?> event) {
handlers.fireEvent(event);
}
}