EventLoop

EventLoop は、コンポーネントのライフサイクルに合わせてすべてのイベント処理が調整される中心的な場所です。通常、再描画やコンポーネントの状態更新のタイミングに関してオーケストレーションが必要になります。

イベントループ内のすべては Spring メッセージとして表されます。

TerminalUI ui = new TerminalUI(terminal);
EventLoop eventLoop = ui.getEventLoop();
Flux<? extends Message<?>> events = eventLoop.events();
events.subscribe();

キーイベントの選択には、組み込みのフィルタリングメソッド keyEvents() を使用します。

TerminalUI ui = new TerminalUI(terminal);
EventLoop eventLoop = ui.getEventLoop();
eventLoop.keyEvents()
	.doOnNext(event -> {
		// do something with key event
	})
	.subscribe();