best maneira de combinar guava eventbus e tratamento de encadeamento de eventos AWT

Quando você possui um barramento de eventos assíncrono e dispara eventos, digamos que dentro do modelo capturado na interface do usuário, você provavelmente tenha o seguinte problema:

O manipulador registrado é executado em um encadeamento de trabalho, mas todas as alterações de balanço da interface do usuário precisam ser executadas no encadeamento de eventos do AWT. Isso significa que você precisa envolver todo o seu clode de manipulador emEventQueue.invokeLater(...).

Isto parece muito código de placa de caldeira. Gostaria de saber se existe uma solução mais inteligente para esse problem

E uma extensão do barramento de eventos da goiaba que marca um manipulador para execução em um encadeamento especial? Isso pode ser marcado com uma anotação, p.@ExecuteWithinEDT:

class EventBusChangeRecorder {
  @Subscribe @ExecuteWithinEDT void recordCustomerChange(ChangeEvent e) {
    recordChange(e.getChange());
  }
}

questionAnswers(4)

yourAnswerToTheQuestion