Move towards one of two designs: have EventNavigatorTableSource take the playback AND step and create a new one each time like you are here, OR keep the same table source after creation and call tableSource.invalidate().