複数選択
複数選択コンポーネントは、ユーザーにリストから複数の項目を選択するように求めます。次のリストは例を示しています。
@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
です。次の表に、そのコンテキスト変数を示します。
キー | 説明 |
---|---|
| コンポーネントが存在する場合に返される値。 |
| 表示されているアイテム。行には、名前、選択済み、行上、有効なアイテムのマップが含まれています。 |
| 親コンテキスト変数 ( SelectorComponentContext テンプレート変数を参照)。 |