此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3spring-doc.cn

列表视图

ListView 是一个基本实现,提供绘制项目列表的功能。继承 BoxViewspring-doc.cn

ListView<T> 被类型化为它的,并且可以接受任何对象。进一步的处理发生在 CellFactory 中。为了方便起见,有一个支持 对于通用的更高级别列表功能,将选中状态显示为 Normal CheckRadio Types。本质上,您可以拥有的是 按原样显示的项目,显示任何项目都可以选中 state 或只有一个项目可以具有 checked 状态。spring-doc.cn

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

默认项样式为 nocheck,但可以更改。spring-doc.cn

支持NOCHECK, `CHECK and `RADIO`spring-doc.cn

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

定制

单个单元格的显示方式取决于 CellFactory。默认实现 只使用其方法显示 itemtoString()spring-doc.cn

它可以通过修改已使用的 CellFactory 进行自定义。spring-doc.cn

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

并将其设置为 factory:spring-doc.cn

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

默认绑定

默认视图命令为:spring-doc.cn

表 1.ViewCommands
命令 描述

LINE_UPspring-doc.cn

选择向上移动。spring-doc.cn

LINE_DOWNspring-doc.cn

选择向下移动。spring-doc.cn

默认密钥 bindig 为:spring-doc.cn

表 2.钥匙
命令 描述

向上光标spring-doc.cn

Bound ViewCommand LINE_UPspring-doc.cn

CursorDown (向下光标)spring-doc.cn

Bound ViewCommand LINE_DOWNspring-doc.cn

进入spring-doc.cn

选择 active item(活动项目)。spring-doc.cn

空间spring-doc.cn

更改活动项选择状态。spring-doc.cn

默认鼠标 bindig 是:spring-doc.cn

表 3.鼠
命令 描述

车轮 |车轮spring-doc.cn

Bound ViewCommand LINE_UPspring-doc.cn

车轮 |WheelDown 系列spring-doc.cn

Bound ViewCommand LINE_DOWNspring-doc.cn

已发布 |按钮 1spring-doc.cn

选择项目spring-doc.cn

事件

根据使用的列表类型发送事件。spring-doc.cn

表 4.ListView 事件
事件 描述

ListViewOpenSelectedItemEventspring-doc.cn

请求打开活动项。spring-doc.cn

ListViewSelectedItemChangedEventspring-doc.cn

活动项已更改。spring-doc.cn