此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3! |
列表视图
ListView 是一个基本实现,提供绘制项目列表的功能。继承 BoxView。
ListView<T> 被类型化为它的项,并且可以接受任何对象。进一步的项处理发生在 CellFactory 中。为了方便起见,有一个支持 对于通用的更高级别列表功能,将选中状态显示为 Normal Check 和 Radio Types。本质上,您可以拥有的是 按原样显示的项目,显示任何项目都可以选中 state 或只有一个项目可以具有 checked 状态。
ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));
默认项样式为 nocheck,但可以更改。
支持NOCHECK
, `CHECK
and `RADIO`
ListView<String> view = new ListView<>(ItemStyle.CHECKED);
定制
单个单元格的显示方式取决于 CellFactory。默认实现
只使用其方法显示 item。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());
}
}
并将其设置为 factory:
ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));
默认绑定
默认视图命令为:
命令 | 描述 |
---|---|
LINE_UP |
选择向上移动。 |
LINE_DOWN |
选择向下移动。 |
默认密钥 bindig 为:
命令 | 描述 |
---|---|
向上光标 |
Bound ViewCommand LINE_UP |
CursorDown (向下光标) |
Bound ViewCommand LINE_DOWN |
进入 |
选择 active item(活动项目)。 |
空间 |
更改活动项选择状态。 |
默认鼠标 bindig 是:
命令 | 描述 |
---|---|
车轮 |车轮 |
Bound ViewCommand LINE_UP |
车轮 |WheelDown 系列 |
Bound ViewCommand LINE_DOWN |
已发布 |按钮 1 |
选择项目 |
事件
根据使用的列表类型发送事件。
事件 | 描述 |
---|---|
ListViewOpenSelectedItemEvent |
请求打开活动项。 |
ListViewSelectedItemChangedEvent |
活动项已更改。 |