跳到主要内容

多选

QWen Max 中英对照 Multi Select

多选组件要求用户从列表中选择多个项目。以下示例展示了这一点:

@ShellComponent
public class ComponentCommands extends AbstractShellComponent {

@ShellMethod(key = "component multi", value = "Multi selector", group = "Components")
public String multiSelector() {
List<SelectorItem<String>> items = new ArrayList<>();
items.add(SelectorItem.of("key1", "value1"));
items.add(SelectorItem.of("key2", "value2", false, true));
items.add(SelectorItem.of("key3", "value3"));
MultiItemSelector<String, SelectorItem<String>> component = new MultiItemSelector<>(getTerminal(),
items, "testSimple", null);
component.setResourceLoader(getResourceLoader());
component.setTemplateExecutor(getTemplateExecutor());
MultiItemSelectorContext<String, SelectorItem<String>> context = component
.run(MultiItemSelectorContext.empty());
String result = context.getResultItems().stream()
.map(si -> si.getItem())
.collect(Collectors.joining(","));
return "Got value " + result;
}
}
java

以下屏幕录制显示了一个典型的多选组件:

上下文对象是 MultiItemSelectorContext。下表描述了其上下文变量:

表 1. MultiItemSelectorContext 模板变量

Key描述
values当组件存在时返回的值。
rows可见的项目,其中行包含名称、选中状态、行内状态和启用状态的映射。
model父上下文变量(参见SelectorComponentContext 模板变量)。