GWTP でUpdateDiagramBoxEvent
以下のコードを送信していますが、ハンドラーが 2 回実行されます。つまり、 はsendUpdateDiagramBoxEvent()
1 回しか実行されていませんが、2 回受信されていることがわかります。私のコードの他の多くのイベントでも同じことが起こっています。何が悪いのか、どうすればこの動作を回避できますか? ありがとう。
イベントを受け取る
UpdateDiagramBoxHandler updateDiagramBoxHandler = new UpdateDiagramBoxHandler() {
@Override
public void onUpdateDiagramBox(UpdateDiagramBoxEvent event) {
doSomething();
}
};
イベントを送信
EventUtil.sendUpdateDiagramBoxEvent(CellTableManager.this.eventBus,
BasicConstants.EventSubscriptors.VIEW, 0,
BasicConstants.EditableTableFields.DIAGRAMTYPE,
ClientState.getCurrentDiagramType().name());
public static void sendUpdateDiagramBoxEvent(final EventBus eventBus,
final BasicConstants.EventSubscriptors recipient,
final int index, final BasicConstants.EditableTableFields field,
final String value){
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
UpdateDiagramBoxEvent updateDiagramBoxEvent =
new UpdateDiagramBoxEvent(transactionNumber, recipient,
field.toString(), value, index);
eventBus.fireEvent(updateDiagramBoxEvent);
}
});
}
イベント ハンドラーを登録する (MyProjectPresenter.java から)
@Inject PlaceManager placeManager;
@Override
protected void onBind() {
[...]
registerHandler(getEventBus().addHandler(UpdateDiagramBoxEvent.getType(),
updateDiagramBoxHandler));
}