class HistoryEventHandlerService implements ValueChangeHandler<String> {

    protected void processMessageFilterOptions(HistoryToken token) {
        EditorFilter newEditorToken = getEditorFilterFromToken(token);
        EditorFilter oldEditorToken =
                getEditorFilterFromToken(currentHistoryState);
        boolean editorFilterChanged =
                !Objects.equal(newEditorToken, oldEditorToken);
        if (!equal(token.isFilterUntranslated(),
                currentHistoryState.isFilterUntranslated())
                || !equal(token.isFilterFuzzy(),
                        currentHistoryState.isFilterFuzzy())
                || !equal(token.isFilterTranslated(),
                        currentHistoryState.isFilterTranslated())
                || !equal(token.isFilterApproved(),
                        currentHistoryState.isFilterApproved())
                || !equal(token.isFilterRejected(),
                        currentHistoryState.isFilterRejected())
                || !equal(token.isFilterHasError(),
                        currentHistoryState.isFilterHasError())
                || !equal(token.isFilterMT(), currentHistoryState.isFilterMT())
                || editorFilterChanged) {
            Log.info("[gwt-history] message filter has changed");

            eventBus.fireEvent(UserConfigChangeEvent.EDITOR_CONFIG_CHANGE_EVENT);
            eventBus.fireEvent(new FilterViewEvent(token.isFilterTranslated(),
                token.isFilterFuzzy(), token.isFilterUntranslated(), token
                .isFilterApproved(), token.isFilterRejected(),
                token.isFilterHasError(), token.isFilterMT(), newEditorToken,
                false));
        }
    }

    @Inject public  HistoryEventHandlerService(EventBus eventBus,
            DocumentListPresenter documentListPresenter,
            AppPresenter appPresenter,
            SearchResultsPresenter searchResultsPresenter,
            GetTransUnitActionContextHolder getTransUnitActionContextHolder,
            ModalNavigationStateHolder modalStateHolder,
            UserConfigHolder configHolder);

}