|
该版本仍在开发中,尚未被视为稳定。最新稳定版本请使用Spring Shell 3.4.1! |
多重选择
多重选择组件要求用户从列表中选择多个项目。 以下列表展示了一个示例:
@Command
public class ComponentCommands extends AbstractShellComponent {
@Command(command = "component multi", description = "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;
}
}
以下屏幕播放展示了典型的多选组件:
上下文对象为MultiItemSelectorContext.下表描述了其上下文变量:
| 钥匙 | 描述 |
|---|---|
|
当组件存在时返回的值。 |
|
可见项,行中包含已选中、列中和启用项的地图。 |
|
父上下文变量(参见 SelectorComponentContext 模板变量)。 |