このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring Shell 3.4.1 を使用してください! |
ListView
ListView は、項目のリストを描画する機能を提供する基本実装です。ListView は BoxView から継承されます。
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));デフォルトのバインディング
デフォルトの表示コマンドは次のとおりです。
| コマンド | 説明 |
|---|---|
LINE_UP | 選択範囲が上に移動します。 |
LINE_DOWN | 選択範囲が下に移動します。 |
デフォルトのキーバインディングは次のとおりです。
| コマンド | 説明 |
|---|---|
CursorUp | バインド ViewCommand LINE_UP |
CursorDown | バインド ViewCommand LINE_DOWN |
Enter | アクティブなアイテムを選択します。 |
スペース | アクティブな項目の選択状態を変更します。 |
デフォルトのマウスバインディングは次のとおりです。
| コマンド | 説明 |
|---|---|
車輪 | WheelUp | バインド ViewCommand LINE_UP |
車輪 | WheelDown | バインド ViewCommand LINE_DOWN |
リリース済み | ボタン 1 | 項目を選択してください |