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

ListView

ListView は、項目のリストを描画する機能を提供する基本実装です。ListViewBoxView から継承されます。

ListView<T>アイテムとして型指定され、任意のオブジェクトを取得できます。アイテムの以降の処理は CellFactory で行われます。利便性のため、チェック状態を通常のチェック型およびラジオボタン型として表示する、汎用性の高い高レベルリスト機能がサポートされています。基本的に、アイテムのリストはそのまま表示され、すべてのアイテムがチェック状態になるか、1 つのアイテムのみがチェック状態になるかが表示されます。

ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));

デフォルトの項目スタイルは nocheck ですが、変更できます。

NOCHECK, `CHECK および `RADIO` をサポート

ListView<String> view = new ListView<>(ItemStyle.CHECKED);

カスタマイズ

個々のセルがどのように表示されるかは、CellFactory によって異なります。デフォルトの実装では、toString() メソッドを使用して項目が表示されるだけです。

中古 CellFactory を改造することでカスタム可能です。

record ExampleData(String name) {
};

static class ExampleListCell extends AbstractListCell<ExampleData> {

	public ExampleListCell(ExampleData item) {
		super(item);
	}

	@Override
	public void draw(Screen screen) {
		Rectangle rect = getRect();
		Writer writer = screen.writerBuilder().style(getStyle()).build();
		writer.text(getItem().name(), rect.x(), rect.y());
		writer.background(rect, getBackgroundColor());
	}

}

そしてそれをファクトリとして設定します。

ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));

デフォルトのバインディング

デフォルトの表示コマンドは次のとおりです。

表 1: ViewCommands
コマンド 説明

LINE_UP

選択範囲が上に移動します。

LINE_DOWN

選択範囲が下に移動します。

デフォルトのキーバインディングは次のとおりです。

表 2: キー
コマンド 説明

CursorUp

バインド ViewCommand LINE_UP

CursorDown

バインド ViewCommand LINE_DOWN

Enter

アクティブなアイテムを選択します。

スペース

アクティブな項目の選択状態を変更します。

デフォルトのマウスバインディングは次のとおりです。

表 3: マウス動作の詳細
コマンド 説明

車輪 | WheelUp

バインド ViewCommand LINE_UP

車輪 | WheelDown

バインド ViewCommand LINE_DOWN

リリース済み | ボタン 1

項目を選択してください

イベント

イベントは、使用されるリストの種類に応じて送信されます。

表 4: ListView イベント
イベント 説明

ListViewOpenSelectedItemEvent

アクティブなアイテムを開くようにリクエストされます。

ListViewSelectedItemChangedEvent

アクティブなアイテムが変更されます。