このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring Shell 3.4.1 を使用してください!

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();