|
此版本仍在开发中,尚未被认为是稳定版。请使用最新稳定版 Spring Shell 4.0.1! |
列表视图
ListView 是一个基本实现,提供了绘制项目列表的功能。ListView 继承自 BoxView.
ListView<T> 是泛型的,并且其 item 也是类型化的,可以接受任何对象。进一步的 item 处理发生在 CellFactory 中。为了方便起见,还支持显示选中状态(正常的选择框和单选按钮类型的)这种高级列表功能。本质上你可以拥有一系列的项目,这些项目可以原样显示,并且任何项目都可以有被选中的状态,或者只有一个项目可以被选中。
ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));
默认项样式为不检查状态,但可以更改。
支持 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());
}
}
并将其设置为工厂:
ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));
默认绑定
默认视图命令是:
| 命令 | 描述 |
|---|---|
LINE_UP |
选中项向上移动。 |
LINE_DOWN |
Selection moves down. |
默认的快捷键是:
| 命令 | 描述 |
|---|---|
CursorUp |
Bound ViewCommand LINE_UP |
CursorDown |
Bound ViewCommand LINE_DOWN |
输入 |
选择当前项。 |
更改激活项选择状态。 |
默认的 鼠标绑定 是:
| 命令 | 描述 |
|---|---|
轮子 | 轮子UP |
Bound ViewCommand LINE_UP |
轮子 | 轮子下移 |
Bound ViewCommand LINE_DOWN |
发布的日期 | 按钮1 |
选择项 |
事件
事件根据使用的列表类型发送。
| 事件 | 描述 |
|---|---|
ListViewOpenSelectedItemEvent |
当前请求的项目需要打开。 |
ListViewSelectedItemChangedEvent |
Active item is changed. |