多項選擇
多項選擇元件允許使用者從列表中選擇多個項。以下清單展示了一個示例
@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;
}
}
以下截圖影片展示了一個典型的多項選擇元件
上下文物件是 MultiItemSelectorContext
。下表描述了其上下文變數
鍵 | 描述 |
---|---|
|
元件退出時返回的值。 |
|
可見的項,其中rows包含name、selected、on-row和enabled項的對映。 |
|
父上下文變數(參見 SelectorComponentContext 模板變數)。 |